15:02:51 #startmeeting mistral 15:02:53 Meeting started Mon Oct 9 15:02:51 2017 UTC and is due to finish in 60 minutes. The chair is d0ugal. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:02:53 is it now that we start highfiving ? 15:02:54 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:02:55 o/ 15:02:57 The meeting name has been set to 'mistral' 15:03:01 \o 15:03:13 o/ 15:03:20 o/ 15:03:29 Hey all 15:03:34 Who else is here for the mistral meeting? 15:03:39 I believe rakhmerov will join us soon 15:04:36 hi, just 2 mins please 15:05:10 can you maybe give updates in the mean time? 15:05:35 what was done, what you're currently doing, plans 15:05:58 #chair rakhmerov 15:05:59 Current chairs: d0ugal rakhmerov 15:06:27 Sure. 15:06:38 Please share your statuses. 15:06:44 I have been mostly trying to move forward with https://bugs.launchpad.net/mistral/+bug/1718353 15:06:46 Launchpad bug 1718353 in Mistral "The "context" parameter of Action.run() isn't filled properly for asynchronous actions" [High,In progress] - Assigned to Dougal Matthews (d0ugal) 15:06:57 Which is a bug related to a limitation in the design of mistral-lib 15:07:08 apetrich, toure, bobh - do you have any statuses to share? 15:07:11 Working on spec - https://review.openstack.org/#/c/510248/ 15:07:18 so dynamic actions names landed 15:07:23 also a couple of bugs 15:07:27 * toure typing status 15:07:29 apetrich: \o/ 15:07:32 o/ 15:07:44 and proposal to extract expressions module needs discussion 15:07:44 thrash: we are just sharing statuses if you have anything 15:07:50 o/ 15:07:50 thrash: Renat will be joining us shortly. 15:07:55 d0ugal: ack. 15:08:02 d0ugal: just zuulv3 stuff. 15:08:12 thrash: :) 15:08:23 d0ugal: which is not so pressing atm considering the rollback 15:08:37 bobh: interesting, thanks - I'll have to read that spec. I have not looked at the specs for a while. 15:08:44 sometime next week I will take time to do some work on https://blueprints.launchpad.net/mistral/+spec/mistral-workflow-executions-yaql-function 15:09:25 status: working on unit test for https://review.openstack.org/#/c/506652/ and https://review.openstack.org/#/c/506653/, still making forward progress on https://review.openstack.org/#/c/455447/ 15:09:48 my status: I keep fixing bugs so that Mistral could work with multiple engine reliably 15:10:02 and struggle with CI 15:10:11 reviewed a number of patches too 15:10:29 thrash: yeah, thanks for doing this 15:10:31 appreciate 15:10:59 seems like zuul v3 jobs are mostly running fine for us, right 15:11:01 I also need to check with Winson on the status of https://review.openstack.org/#/c/455083/ 15:11:32 bobh: that would be good, it was very active for a while and then stalled. 15:11:53 d0ugal: we discussed with him at the PTG and agreed on a plan 15:11:57 thrash: do we still need to merge https://review.openstack.org/#/c/509184/ ? 15:12:14 I remember that similar patches to other repos were reverted by the infra team 15:12:38 bobh: good luck :) I mean Winson 15:12:47 rakhmerov: :-) 15:12:52 he doesn't talk much to us, but I can try to help with that ) 15:12:53 rakhmerov: yes... I had feedback from the infra team. 15:13:24 rakhmerov: but I need to see what the problem with the failed job is. 15:13:41 bobh: yeah, he usually does what he's supposed to, he's just a little disconnected from the community 15:13:41 but it looks like it's failing under zv2 and zv3 15:13:50 thrash: ok 15:14:02 rakhmerov: W-1 for now 15:14:09 ack 15:15:06 d0ugal: is there anything that you think is ready for review related to action context? 15:15:27 did the release of mistral-lib come out? 15:15:40 rakhmerov: yes, it did - 0.3.0 is released 15:15:44 ok 15:15:48 rakhmerov: The patches need work, I have some updates locally I am testing 15:16:03 d0ugal: ok, ping us once you need something 15:16:05 rakhmerov: but I was going to try and ping you tomorrow morning (my time) with some questions 15:16:16 sure, let's do it 15:16:27 thanks. 15:16:30 bobh, d0ugal: so let's discuss expressions? ) 15:16:38 Sure 15:16:42 rakhmerov: great 15:17:09 I had thought of making it a separate library but wasn't sure if that wasn't too big a step 15:17:16 but maybe the right step 15:17:31 what is the issue? 15:17:49 apetrich: I'd like to be able to use the expressions logic in other applications 15:17:49 First we should give some context to everyone else. 15:18:05 Yeah, that is the context basically :) 15:18:23 honestly, I'm now kind of confused. I really see that this code would be useful for other projects and sub projects if we moved it to a lib. But I also agree with d0ugal that once we do that we'll have to be maintaining it, documenting and worry about backwards compatibility etc. etc 15:18:25 the logic for this is mostly under mistral.expressions 15:18:29 https://blueprints.launchpad.net/mistral/+spec/move-expressions-to-mistral-lib 15:19:02 It is mostly decoupled from mistral itself other than the task, tasks and expressions functions 15:19:35 well, btw making a separate lib just for expressions would still mean that we'll have to maintain it etc. ) 15:19:43 it doesn't matter where it is 15:19:50 bobh: I think it would be good to clarify exactly what you need - do you also want support for the custom yaql/jinja functions etc.? 15:20:03 and possibly add in the future other expressions that might not be used in mistral 15:20:05 ? 15:20:11 yep, good question 15:20:18 d0ugal: yes - the custom functions is useful too 15:20:28 I agree this is a rabbit hole 15:22:01 hmm, it is tricky. 15:22:06 bobh: so, if you'd like to use the same stuff in your project? 15:22:18 I wonder if there is a clear enough scope for a oslo. project. 15:22:19 ..remove "if".. 15:22:39 d0ugal: ooh, that may be a good idea 15:22:47 Yes - I have a templating scheme that will benefit from the ability to process expressions 15:23:02 however, we'd still need to maintain it unless we convince someone else to 15:23:19 rakhmerov: sure, I am less worried about maintaining it really 15:23:20 bobh: ok 15:23:43 Since I'm the one raising the issue I feel obligated to help with maintaining it 15:23:52 bobh: and you want to use YAQL? I'm asking because lots of people just use pure Jinja 2 15:23:53 If I just copied the code into my project I'd have to maintain it anyway 15:23:54 rakhmerov: I am worried about having to fix bugs in $project and then releasing it before mistral can use it 15:24:03 which is exactly for this purpose, templating 15:24:23 d0ugal: true 15:24:42 as long as it's small it's fine but if it grows it may become a problem 15:25:11 rakhmerov: I haven't considered just using Jinja - it's a possibility, until there is something that needs the power of YAQL that can't be done in Jinja 15:25:27 that's why we need to review it very very thoroughly before moving something to a lib and move only time and battle proven stuff 15:25:41 bobh: 15:25:43 ok 15:25:44 I can take that path for now (Jinja only) and see if we run into any issues 15:26:02 Maybe you could write a custom jinja function that calls YAQL, then you can have both :) 15:26:15 d0ugal: that may be the solution :-) 15:26:16 bobh: so, just one more clarification 15:26:56 bobh: I guess the main thing that's missing for you in Jinja maybe recursive evaluation over arbitrary structures? 15:27:20 rakhmerov: yes, that's probably the biggest difference 15:27:25 ok 15:27:26 I see 15:27:37 yeah, that's something that we could really share 15:27:48 and btw, the code is not so big that does that 15:27:51 rakhmerov: we use Jinja in most cases because it's faster, but it's not uncommon to find a case where we need YAQL 15:28:31 bobh: yeah, and, in fact, they are much different 15:28:36 in their nature 15:28:56 strictly speaking, Jinja is not primarily an expression language 15:29:00 it's a templating lang 15:29:04 Indeed, the way we use it in Mistral is strange :) 15:29:11 whereas YAQL is a pure expression and query languate 15:29:20 d0ugal: yes 15:29:37 rakhmerov: Yes, I just wish YAQL was as fast as Jinja 15:29:43 some of our contributors and users wanted it very much so we decided to include it 15:30:04 bobh: did you make any comparisons? 15:30:31 I did about 6 months ago and yes, on big structures Jinja was ~3 times faster 15:30:32 rakhmerov: we had a bunch of workflows that were heavily using YAQL and took about 5-6 minutes to run 15:30:40 ok 15:30:42 we converted to Jinja and they run in 1-2 minutes 15:30:50 ooh, ok 15:31:14 and that's leaving the complex stuff in YAQL so it's a mix - probably 90% Jinja/10% YAQL 15:31:33 I know that some performance improvements for YAQL were made a few months ago but I didn't retest after that 15:31:53 bobh: haha, I see ) 15:32:15 bobh: are you using Mistral Pike? 15:32:19 yes 15:32:22 or an older version? 15:32:25 ok 15:32:32 I haven't retested on Pike - we were on Ocata at the time I thinkg 15:32:41 then all YAQL improvements should be there.. 15:32:56 ooh, then I'd recommend to retest 15:33:11 you may see better results 15:33:49 I actually had a chat with the YAQL author in Atlanta and he explained me why it was slower 15:33:50 ok, I'll give it a try 15:34:04 and soon after that he made necessary changes to speed it up 15:34:09 ok 15:35:06 ok, so maybe I should just go with YAQL and skip Jinja :-) 15:35:08 d0ugal, bobh: so I'm just thinking what we decided ) 15:35:20 bobh: if it works for you 15:35:40 rakhmerov: leave it for now and revisit if needed? 15:36:02 d0ugal: so if we make sure that this expressions code is stable enough would it be ok to move it to mistral-lib? 15:36:14 so that we know that we won't need to maintain it much 15:36:20 rakhmerov: I still think it is a strange place for it to live 15:36:22 or it's not your biggest concern? 15:36:49 I liked mistral-lib being small and focused, we could tell people that they just needed to use that to extend mistral 15:36:52 strange why? Can you just state it clearly again please? 15:37:06 but then we need to tell them this other bit in there is for writing other random projects 15:37:24 hm... yes 15:37:35 hah.. 15:37:45 and where in mistral-lib should it go? 15:37:55 could extend mistral with other expression handlers? 15:38:19 d0ugal, bobh: now to me it feels a lot like we'd just need to create a totally new open source project and publish it on pypi 15:38:29 bobh: I guess, but I think that is just inventing a use-case :) 15:38:30 and include into global requirements 15:38:41 If you really want to put it in mistral-lib, I wont block it 15:38:54 but just prepare for me to moan each time we change it and have to make a new release for mistral to use it :P 15:38:55 bobh: yes, expression evaluators are now pluggable 15:39:09 we can write something else and easily plug it 15:39:19 rakhmerov: I agree a separate lib would be nice, minus the overhead, and I'd be willing to take it on if it makes sense to do it that way 15:40:05 well, since we're in the OpenStack community then the logical idea would be oslo umbrella, of course 15:40:10 it could also go in oslo, either as oslo.expressions or just expressions (or whatever) if they will take it 15:40:20 great minds type alike 15:40:21 like oslo.utils or something like this 15:40:29 :) 15:40:32 We should raise this idea with the oslo team and see what they think 15:40:40 yes, exactly 15:40:47 I am not familiar with how oslo projects are created/managed 15:40:57 bobh: how about writing an email to ML and ask oslo team directly? 15:41:03 sounds like a good plan 15:41:07 ok 15:41:11 I'll send it out today 15:41:49 this is my #1 candidate for now: https://github.com/openstack/oslo.utils 15:42:07 if they agree that it's a good place then we won't even need to create any new projects 15:42:17 we can just create a new package within this one 15:42:31 or a module 15:42:33 rakhmerov: that would be ideal 15:42:36 expression_utils.py 15:42:50 rakhmerov: lots of people use oslo.utils, I wonder if they will want to add jinja2 and yaql as requirements. 15:43:01 no, probably a package because we have several things 15:43:03 but, anyway.. 15:43:04 hah 15:43:06 https://github.com/openstack/oslo.utils/blob/master/requirements.txt#L5-L8 15:43:44 ooh, damn it.. 15:44:10 haaah.. what Doug wrote though is a pure practical thing to me 15:44:53 yeah 15:45:00 anyway, I guess an email will clarify this. 15:45:09 Then we can take it from there. 15:45:26 sounds good - thanks for the discussion - it's a big help 15:45:27 ok 15:45:28 yes 15:45:41 yeah, it's better to ask them directly and hear their feedback 15:45:58 having it will allow us to proceed at least' 15:46:25 so do we need anything else? 15:46:50 Nothing from me. 15:46:53 #action bobh: write an email to ML about adding expression utils to oslo 15:47:51 rakhmerov: I'd like to get feedback on https://review.openstack.org/#/c/510248/ - specifically the name of the new join action 15:47:59 I don't have much more for now, I'm focused on performance and stability now. Again realized that a number of places must be seriously changed to improve overall performance 15:48:20 bobh: yes, I saw it but didn't open yet 15:48:25 rakhmerov: np 15:48:33 #action rakhmerov: review https://review.openstack.org/#/c/510248/ 15:48:38 rakhmerov: no rush 15:48:39 will do 15:49:50 ok 15:50:19 so are we done then? 15:50:21 d0ugal: ? 15:50:33 rakhmerov: yup, I'm done :) 15:50:44 ok 15:50:49 thanks to all 15:50:56 Thanks! 15:50:58 have a good week 15:51:05 thanks! 15:51:09 thanks 15:51:12 thanks 15:51:33 #endmeeting