08:00:16 #startmeeting mistral 08:00:17 Meeting started Fri Jul 13 08:00:16 2018 UTC and is due to finish in 60 minutes. The chair is d0ugal. Information about MeetBot at http://wiki.debian.org/MeetBot. 08:00:18 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 08:00:21 The meeting name has been set to 'mistral' 08:00:36 d0ugal: that's why the current behaviour should be the default one 08:00:38 Morning everyone! It is the Friday office hour slot! 08:00:42 hi! 08:00:46 Etherpad: https://etherpad.openstack.org/p/mistral-office-hours 08:00:53 ^ apetrich, bobh, mcdoker181818 08:01:03 rakhmerov: indeed, changing the default is bad. 08:01:18 rakhmerov: but couldn't the workflow DSL have something to control if it is merging or replacing? 08:01:28 d0ugal: yeah, but maybe just having a reserved env variable is enough 08:01:45 d0ugal: aaah, changing DSL again :) 08:02:00 my guts are against it.. 08:02:04 lol 08:02:14 :) 08:02:27 I guess we need somebody to come up with a proposal and then we can discuss it there 08:02:33 yep 08:02:43 Vitalii I guess ) 08:02:47 Indeed. 08:02:53 btw, I have something to discuss 08:02:55 https://blueprints.launchpad.net/mistral/+spec/mistral-http-action-binary-data 08:02:59 just created 08:03:27 my colleagues would like to have this ability in some form 08:03:32 Interesting 08:03:41 but I have doubts about how to implement it properly 08:03:42 yeah 08:04:06 working with a file system doesn't look right to me 08:04:15 so base64 encoding maybe 08:04:25 yeah, I would prefer base64 08:04:36 but I guess binary data can sometimes be large? that might be bad for the database? 08:05:25 d0ugal: of course.. 08:05:26 yes 08:05:35 Using Mistral with another service in the case might be best? Something like Swift could work 08:05:48 may be setting some limit would be reasonable 08:06:00 or something like this, yes.. 08:06:11 something that's specifically designed for that 08:06:15 for storing large data 08:06:29 Is this something you hope to do for rocky? 08:06:33 no 08:06:41 I don't think it's feasible 08:06:54 given all other things that i'm hoping to achieve 08:07:04 next cycle 08:07:40 :) 08:08:18 but that is good, then we have time to think about it more 08:08:26 yeah 08:08:41 using an external storage seems the best solution for me BUT 08:08:48 we need to have that external storage :) 08:09:04 lots of people (including us) don't care about OpenStack that much 08:09:04 Indeed 08:09:06 :) 08:09:09 I guess it could be pluggable 08:09:13 yes 08:09:17 through some interface 08:09:31 Yeah, and I guess the interface could be very simple 08:09:39 otherwise, our DB would be abused 08:09:45 (so easy to implement on other backends) 08:09:50 yep 08:10:04 The Mistral DB could even be a backend, but with with warnings and limitations 08:10:25 so it could look like just an additional option in std.http to store content into that storage 08:10:41 and then if it's needed we could have a YAQL/JINJA function to extract it 08:10:53 yeah, agree with your latest thought 08:10:54 yes 08:10:57 Sounds good 08:11:15 architecturally it would be more proper solution 08:11:53 I think I'll copy our conversation to the BP description 08:11:56 do you mind? 08:12:07 rakhmerov: sure, go for it 08:12:09 ok 08:12:14 it is in the meeting log anyway :) 08:14:07 other than that I don't seem to have anything else important 08:14:27 hello 08:14:28 I remember a bug/blueprint (but can't find it now) about passing files into workflows. I wonder if we could use the same storage mechanism to solve that 08:14:30 pgaxatte: hey 08:14:51 Found it. https://bugs.launchpad.net/mistral/+bug/1602599 08:14:51 Launchpad bug 1602599 in Mistral "Accept multipart file upload as input to Mistral workflows" [Low,Triaged] 08:15:51 d0ugal: yeah-yeah, I think it's all different sides of the same problem 08:16:27 the bottom line is that we need some kind of storage that better works with large data and binary files 08:16:31 Yup 08:16:58 and then we could reduce some of our db col sizes :) 08:17:03 yes 08:17:19 we've also considered using Glare for some related things too 08:17:28 oh yes, I remember that. 08:17:39 I have not heard about Glare in some time... 08:17:46 but, as it often happens, we didn't move too far with that 08:17:51 :) 08:17:58 for the storage part, could it be done with swift if you have it available on your cloud 08:18:00 ? 08:18:05 d0ugal: yeah, because Mike is now your colleague :) 08:18:27 pgaxatte: Swift, yes, don't see why not 08:19:07 rakhmerov: like a swift container as destination of a std.http action 08:19:16 oh, I didn't realise he was the main contributor 08:19:18 as destination or source 08:19:23 pgaxatte: we already have swift integration now (swift actions) but the tricky part is that this integration needs to be deeper 08:19:28 imagine std.http action 08:19:46 it needs to be smart enough to understand to store its result into Swift 08:19:55 w/o even using a swift action implicitly 08:20:19 otherwise, we again face the problem of keeping the result temporarily in the context 08:20:24 yes that's tricky :) 08:20:26 which is relational DB 08:20:28 yep 08:20:31 A very simple option would be to add specialised options std.http_swift for example 08:20:39 so, seems like just having swift actions doesn't help much 08:20:51 yes d0ugal that's what I was thinking 08:21:33 but I would prefer a more general solution I think 08:26:09 d0ugal, rakhmerov: I have a question on another subject: is it possible to use two different executors that would have different network access and different security levels and specify in a single workflow that an action should be run on the more secure executor 08:26:19 like a tag system 08:26:37 no tag = this action can run anywhere 08:26:54 specific tag = run on specific executor 08:27:36 pgaxatte: have you seen the target task attribute? 08:27:50 I have never actually used this, but it might do some of what you want 08:27:54 It isn't exactly the same... 08:27:58 https://docs.openstack.org/mistral/latest/user/wf_lang_v2.html#common-task-attributes 08:28:09 "target - String parameter. It defines an executor to which task action should be sent to. Target here physically means a name of executors group but task will be run only on one of them. Optional." 08:28:54 I can't find any other docs on it 08:29:43 d0ugal: yeah that could be what we're looking for 08:30:03 pgaxatte: https://github.com/openstack/mistral/blob/1e577ae73925f7703a5d4e4452855208d0788679/mistral/tests/unit/engine/test_environment.py#L53 08:30:12 It is used in the tests here :) 08:30:15 but how do you group the executors? I don't see the option in conf 08:30:24 I was wondering that too! 08:31:12 I'm sure rakhmerov knows, but lets see if I can find out before he responds :) 08:31:36 :D 08:34:04 sorry 08:34:09 I was out for a few mins.. 08:34:37 reading.. 08:36:00 pgaxatte: I think it's a problem of our doc again 08:36:30 rakhmerov: yeah this info is hard to find 08:36:35 there needs to be the "host" property in the executor config 08:36:43 if I'm not mistaken.. 08:36:56 but looks like it's not documented, gosh 08:37:31 https://github.com/openstack/mistral/blob/master/mistral/config.py#L147-L153 08:37:35 it's in the config template at least :D 08:37:47 # Name of the executor node. This can be an opaque identifier. It is 08:37:47 # not necessarily a hostname, FQDN, or IP address. (unknown value) 08:37:47 #host = 0.0.0.0 08:37:53 :) 08:37:56 yes, this is confusing 08:38:14 the thing is that several executors can have the same value here 08:38:22 like "executor_group_1" 08:38:42 and then if the "target" is specified, the action will be sent to one of such executors 08:38:49 maybe mentionning that this is related to the target option is a good start ^^ 08:38:56 it's just a matter of building a topic for rabbit 08:38:56 and if they have the same value, how are executions chosen? round robin? 08:39:03 pgaxatte: yep 08:39:11 d0ugal: yeah, pretty much 08:39:33 round robin by default, yes, it actually fully depends on the message broker 08:39:54 because on the client side (mistral engine), it's simply a non-empty topic for the messaging system 08:40:03 that's it 08:40:21 then MQ decides what receiver is chosen 08:40:55 rakhmerov: that's awesome because it is as simple as I was hoping :D 08:41:03 yeah :) 08:41:17 so, I have to admin that the doc is fairly bad for this 08:41:22 including the comment in the config 08:41:29 worth filing a bug 08:41:44 .. to admit.. 08:42:00 let me do it 08:43:44 Thanks :) 08:44:06 rakhmerov: are there any blueprints to reorganize the whole documentation? 08:45:05 pgaxatte: there is at least one :) 08:45:28 https://bugs.launchpad.net/mistral/+bug/1781556 08:45:28 Launchpad bug 1781556 in Mistral "Improve the doc for "target" task parameter" [Undecided,New] 08:46:25 pgaxatte: yeah, we keep improving the doc step by step but we've also discussed that we need to reorganize it 08:46:55 d0ugal: not sure where this BP is.. I remember someone filed it recently (a month ago may be) 08:47:12 I like how the heat documentation is structured: operating, using, developing 08:47:23 pgaxatte: yeah, we have discussed something like that several times. 08:47:52 The problem is finding somebody that knows Mistral well enough and has the time to write lots of documentation 08:47:58 so we end up stuck every time 08:48:53 d0ugal: yeah that's hard to find 08:48:56 there it is: https://blueprints.launchpad.net/mistral/+spec/mistral-new-docs 08:49:06 there's even a spec for this 08:49:11 see a link in the BP 08:49:23 Yup, the spec needs lots of discussion however 08:49:32 yes 08:50:17 I know I could do that well but I have no idea when I'll be able to have enough focus on that 08:50:45 this work requires a lot of focus during a month-two 09:02:04 #endmeeting