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