16:00:19 <rakhmerov> #startmeeting Mistral 16:00:20 <openstack> Meeting started Mon Jul 7 16:00:19 2014 UTC and is due to finish in 60 minutes. The chair is rakhmerov. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:21 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:23 <openstack> The meeting name has been set to 'mistral' 16:00:25 <rakhmerov> hello 16:00:31 <akuznetsova> hi 16:00:31 <dzimine> Hi there! 16:00:37 <xazel> hey 16:01:14 <rakhmerov> ok, let's get started 16:01:39 <rakhmerov> agenda as usually at https://wiki.openstack.org/wiki/Meetings/MistralAgenda 16:02:25 <rakhmerov> #topic Review previous AIs 16:02:40 <rakhmerov> 1. ACTION: rakhmerov, skype Kirill on Tue and work with him on integrating mistral-demo examples into mistral-extra 16:02:44 <m4dcoder> hi 16:02:49 <rakhmerov> hey 16:02:50 <bhavenst> hi 16:02:59 <rakhmerov> hey Brian, nice to see you here 16:03:27 <bhavenst> thanks 16:03:35 <rakhmerov> xazel, we skyped many times last week but I'm not actually sure if we still need to do something on that AI 16:03:36 <rakhmerov> ? 16:03:38 <rakhmerov> :) 16:04:48 <xazel> we haven't fully integrated it since we had some problems with oslo.messaging. Guess we should get back to it after i finish with my current assignment. 16:04:49 <rakhmerov> bhavenst, sorry for misspelling your name, I believe the correct one is Bryan? 16:05:07 <rakhmerov> xazel, ok, makes sense 16:05:11 <bhavenst> Yep, Bryan, but no problem at all. 16:05:16 <rakhmerov> ok ) 16:05:31 <rakhmerov> 2. ACTION: rakhmerov, get in touch with Nastya and figure out the problem with Mistral installation 16:05:35 <rakhmerov> it's done 16:05:41 <akuznetsova> yes 16:05:57 <rakhmerov> #topic Current status (quickly by team members) 16:06:08 <xazel> Spent this week digging through engine-executor protocol. Half way through: managed to limit the amount of data executor need to know and was able to pass one task end-to-end, but it would require a lot of polishing and review. 16:07:00 <rakhmerov> my status is: A lot of communication with Kirill on Engine/Executor stuff, read tons of materials on workflows and workflow engines, started redesigning Mistral Engine, reviews, fixed several bugs 16:07:02 <xazel> came prepared today =) 16:07:12 <rakhmerov> cool :) 16:07:18 <rakhmerov> it felt like that 16:07:28 <rakhmerov> ok, guys? 16:07:32 <dzimine> xazel can you put your work up on review as work in progress for earyl feedback? 16:08:19 <dzimine> on my side: only reviews and some little input to Renat on workflow requirements. 16:08:26 <rakhmerov> ok 16:08:40 <xazel> dzimine, sure, I'll need one more day to actually figure out what stuff is absolutely essential. Expect WIP in a next couple of days. 16:08:41 <m4dcoder> i looked at bug https://bugs.launchpad.net/mistral/+bug/1331373 several times. i'm not able to reproduce the bug. 16:08:42 <uvirtbot> Launchpad bug 1331373 in mistral "greenlet transport plug is not always loading" [High,New] 16:08:49 <akuznetsova> I created blueprint for mistral-documentation and now I work on https://blueprints.launchpad.net/mistral/+spec/mistral-mistralclient-integration-tests. I uploaded first patch set 16:09:04 <rakhmerov> ok 16:09:14 <rakhmerov> guys, any roadblocks? 16:09:23 <rakhmerov> did you get stuck with anything? 16:10:13 <akuznetsova> I have a little problem with devstack gate job 16:11:00 <rakhmerov> m4dcoder, ok, I'm kind of worried about this bug but I'd suggest you stop looking at it for now since a lot of things are going to change anyway and it may get fixed on its own 16:11:12 <rakhmerov> akuznetsova, what kind of problem? 16:11:15 <m4dcoder> ok. 16:12:09 <akuznetsova> I am not sure how to configure it 16:12:38 <dzimine> member:akuznetsova: can you pls link etherpad with test plan/discussion to https://blueprints.launchpad.net/mistral/+spec/mistral-mistralclient-integration-tests. 16:12:39 <rakhmerov> ok, do you think it makes sense discuss it separately? 16:12:47 <akuznetsova> rakhmerov, yes 16:13:03 <akuznetsova> dzimine, yes, wait a sec 16:13:23 <rakhmerov> #action rakhmerov, communicate to akuznetsova on devstack gate job configuration problem 16:13:27 <akuznetsova> https://etherpad.openstack.org/p/MistralTests 16:13:46 <dzimine> I mean link it from the blueprint. 16:14:17 <rakhmerov> yes, you can do it later 16:14:27 <akuznetsova> ok 16:14:43 <dzimine> I just did it. 16:15:16 <rakhmerov> bhavenst, do you wanna discuss something now? Maybe you have some general/specific questions looking for their answers or something? 16:15:22 <akuznetsova> dzimine, thanks 16:15:35 <rakhmerov> or if it's more comfortable for you we can have a separate meeting 16:16:06 <bhavenst> I don't really have any specific questions at this point I don't think. Yeah, we can discuss offline and see what the best place to start is considering the current activities.. 16:16:24 <rakhmerov> ok, sounds good 16:16:42 <rakhmerov> I'll shoot an email with a few suggested times for the meeting 16:16:45 <bhavenst> great 16:17:05 <rakhmerov> but pls feel free to ask questions (or express your opinion) anytime 16:17:16 <rakhmerov> ok, let's move on 16:17:24 <bhavenst> sure 16:17:34 <rakhmerov> #topic Discuss some of questions on the current engine/executor design 16:18:07 <rakhmerov> dzimine, m4dcoder and others, I have a couple of questions on the current engine design 16:18:21 <dzimine> fire! 16:18:28 <rakhmerov> for example 16:18:47 <rakhmerov> I'm not really sure why we now configure engine and executor as plugins now? 16:19:01 <rakhmerov> m4dcoder, what's the value of this design decision? 16:19:22 <rakhmerov> is it just for assumed flexibility or there are some strong reasons why we have it 16:19:24 <rakhmerov> ? 16:19:47 <m4dcoder> i designed that way to allow flexibility for different engine implementations 16:20:06 <rakhmerov> ok 16:20:25 <rakhmerov> I just started digging it deeply and it all looks somewhat confusing to me 16:20:39 <rakhmerov> it feels like we'll never have alternative implementations :) 16:20:51 <rakhmerov> at least I don't really see why it may be needed now 16:21:13 <rakhmerov> previously we had local and distributed engine and that made sense but that's in the past 16:21:28 <rakhmerov> and the only difference is just transport 16:21:43 <rakhmerov> what do you think? 16:22:02 <rakhmerov> dzimine, do you see why we may want to have multiple engine implementations? 16:22:13 <dzimine> no, I don’t 16:22:38 <rakhmerov> it's not a major issue but anyway, I'm trying to refine all the project structure etc. and stumbled on that 16:22:40 <rakhmerov> ok 16:22:46 <dzimine> currently I think if anything, it will be an ‘engine library’ that is changable/pluggable. 16:22:52 <xazel> rakhmerov, in my current implementation both default.executor and default.engine is just a few lines... I doubt we need this modular structure atm 16:23:31 <rakhmerov> few lines?? How come? 16:24:43 <xazel> executer doesn't do much work now, just creates an action and runs it and default.engine was tiny even before that 16:25:20 <rakhmerov> dzimine, commenting what you said about engine library.. Yes, I keep that in mind. And there's one more thing: declarative vs imperative workflows but I came to a conclusion it shouldn't be a different engine implementation 16:25:44 <rakhmerov> it should be flexible on a different level 16:25:48 <rakhmerov> inside the engine 16:26:03 <rakhmerov> xazel, ok 16:26:19 <dzimine> declarative vs imperative is an attribute of a workflow, so it’s a diff level indieed. 16:26:23 <rakhmerov> executor will do more once we implement some advanced things as parallellism 16:26:38 <rakhmerov> dzimine, yes, right 16:26:55 <rakhmerov> so that actually was my next question I wanted to discuss 16:27:01 <rakhmerov> so that's ok 16:27:10 <rakhmerov> one more question/suggestion 16:27:39 <rakhmerov> I'd like to suggest I don't write tons of design documents for the work I'm doing now ) 16:28:12 <rakhmerov> not because I'm lazy (which is partially true :) ), but because most of this work is a research 16:28:47 <rakhmerov> and it seems to be much more productive to look at the existing code and code something up write in python 16:28:56 <m4dcoder> rakhmerov: can you clarify declarative vs. imperative workflow? i'm not following. must have missed a few design sessions... 16:29:05 <rakhmerov> so my suggestion is just to start commiting changes with all necessary comments 16:29:23 <dzimine> declarative is defining dependencies via ‘require’ 16:29:38 <dzimine> imperative is ‘on-success/on-error' 16:29:44 <rakhmerov> m4dcoder, "Dependency based model" (using "requires") vs "Direct transitions" (using on-success, on-error) 16:29:47 <dzimine> there’s more precise terms 16:29:49 <rakhmerov> yep 16:29:54 <m4dcoder> thanks! 16:30:40 <rakhmerov> just so you are aware: we made a decision some time ago to explicitly separate these two models and not to mix them within the same workflow 16:31:12 <m4dcoder> but we will support both types? 16:31:29 <rakhmerov> but at the same time we still will be able to build combinations of these two workflow types using workflow cross references (one workflow will be able to call another workflow) 16:31:33 <dzimine> member:rakhmerov: how do you plan to share your thinking? I am cool with you not writing the extensive docs, btw. 16:31:37 <rakhmerov> yes, we will 16:31:52 <akuznetsova> rakhmerov, how do you what to separate them? using tag or how? 16:32:07 <dzimine> it will be one of a workflow attributes. 16:32:15 <rakhmerov> dzimine, I'd suggest I just write huge commit message to make my intentions 100% clear 16:32:26 <rakhmerov> as well as comments in the code itself 16:33:08 <rakhmerov> seriously, I just feel that it will slow me down significantly if I get into writing/rewriting all these docs 16:33:29 <rakhmerov> it's been proved I think many times that any docs will become stale very quickly 16:34:07 <rakhmerov> akuznetsova, yes, just a workflow attribute 16:34:38 <rakhmerov> so let's try and see how that goes, ok? 16:35:12 <rakhmerov> if we see it's not ok for the team I'll be doing it in a more classic way 16:36:05 <rakhmerov> ok, let's move forward 16:36:06 <xazel> rakhmerov, one day we would need to start populating doc folder anyway. I'm not suggesting we start now, but if your commit message happen to be bigger than you anticipating, you should probably place it there 16:37:09 <rakhmerov> xazel, you're 100% true, I'm just talking about the period when nearly nothing is really clear and making docs seems to be even more challengable than writing sketches in the code 16:37:24 <m4dcoder> rakhmerov: can you elaborate when you mentioned that you concluded we don't need separate engine implementation for declarative vs. imperative? wouldn't separating the out as different engine plugins be cleaner? also, where does the taskflow integration fit into the engine changes we are currently making? 16:37:33 <rakhmerov> it, of course, doesn't cancel the need to write docs eventually 16:38:13 <dzimine> the taskflow integration fits at the library level. 16:38:24 <xazel> m4dcoder, instead of making engine-executor pluggable, we would need to do it with workflow types 16:38:28 <rakhmerov> m4dcoder, so as far as engine structure and different workflow types... 16:38:35 <dzimine> sorry to jump ahead of rakhmerov :) 16:38:51 <rakhmerov> I see that the engine should be the same for these types 16:39:08 <rakhmerov> because it'll contain lots of common things 16:39:28 <rakhmerov> db access, threading, notifications etc etc 16:39:36 <rakhmerov> validation 16:39:39 <dzimine> I see the types of workflow, just like in taskflow there’s a parallel, sequence, and directed graph. 16:40:01 <rakhmerov> yes 16:40:03 <rakhmerov> exactly 16:40:03 <dzimine> and different handlers with different control-flow rules can map to eacy type. 16:40:19 <rakhmerov> it's basically a State Design Pattern 16:40:24 <rakhmerov> yes 16:40:49 <rakhmerov> so, in other words, this flexibility should be made on a different arch level 16:40:57 <rakhmerov> as a part of engine implementation 16:41:18 <dzimine> or a “Strategy” pattern may be. 16:41:27 <rakhmerov> or Strategy, yes 16:41:38 <m4dcoder> makes sense. thanks for the clarifications. 16:42:12 <rakhmerov> State Pattern basically says "if we have this state, our logic will be like this. If we have that state, our logic will be like that" 16:42:15 <rakhmerov> ok 16:42:33 <rakhmerov> #topic Further plans 16:43:05 <rakhmerov> guys, I'd suggest you provide some estimates on what you're planning to do till the next meeting 16:43:11 <rakhmerov> your plans 16:44:36 <xazel> finish up with engine-executor protocol 16:44:40 <rakhmerov> #action rakhmerov plans is to finish with the overall engine structure (taking the new requirements into account like multiple workflows, workflow/action polymorphism, cross references etc.) 16:44:59 <rakhmerov> #action xazel, try to finish up with engine-executor protocol 16:45:04 <akuznetsova> continue to work with python-mistralclient tests 16:45:07 <xazel> =) 16:45:26 <xazel> good point 16:45:32 <rakhmerov> akuznetsova, what are you planning to achieve? :) 16:45:49 <rakhmerov> xazel, yes ) 16:46:17 <akuznetsova> cover all client methods and to figure out how to configure gate job 16:46:45 <rakhmerov> #action akuznetsova, cover all client methods and figure out how to configure gate job 16:47:04 <dzimine> member:akuznetsova what do you think of using python-client in integration tests and thus testing it? 16:47:11 <rakhmerov> m4dcoder, did you have the only bug to work on? 16:47:31 <m4dcoder> yes. 16:47:33 <rakhmerov> dzimine, yes, that's what she started working on 16:47:36 <akuznetsova> dzimine, do you mean in api integration tests? 16:48:17 <dzimine> don’t have prescription where exactly 16:48:37 <rakhmerov> m4dcoder, ok, if you don't mind can I ask you questions about your code if any? 16:48:51 <m4dcoder> np 16:48:56 <rakhmerov> dzimine, akuznetsova, you're at the same page :) 16:48:57 <dzimine> just to use python-mistralclient against runnign instance of mistral will give us both client testing and client-server integration 16:49:09 <rakhmerov> Nastya basically started doing what you mean Dmitri ) 16:49:22 <dzimine> ok, ok :) 16:49:27 <rakhmerov> :) 16:49:32 <rakhmerov> ok, thanks 16:49:34 <akuznetsova> ) 16:49:46 <rakhmerov> #topic Open discussion 16:49:52 <rakhmerov> anything else guys? 16:50:01 <rakhmerov> that you wanted to discuss 16:50:23 <rakhmerov> I'm out of ammo for today, too many unshaped thoughts in my head 16:51:02 <rakhmerov> so, let's finish then? 16:51:15 <rakhmerov> waiting 30 more seconds... 16:51:26 <rakhmerov> kind of last call ) 16:52:01 <rakhmerov> alright, thanks to everyone! Have a good week ) 16:52:05 <m4dcoder> thanks! bye. 16:52:06 <rakhmerov> bye 16:52:14 <akuznetsova> bye) 16:52:21 <xazel> thanks! 16:52:26 <rakhmerov> #endmeeting