16:00:48 #startmeeting Mistral meeting 16:00:49 Meeting started Mon Jun 2 16:00:48 2014 UTC and is due to finish in 60 minutes. The chair is tnurlygayanov. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:50 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:52 The meeting name has been set to 'mistral_meeting' 16:01:01 Hi there! 16:01:07 Hi there! 16:01:08 hi ! 16:01:11 Hi 16:01:13 hey! 16:01:16 thanks for starting on time. 16:01:21 Welcome to Mistral weekly meeting :) 16:02:04 ok, so, let's review our progress from the previous week 16:02:50 no progress on my side or stackstorm side all together. We were finishing some internal stuff, now from June we will be able to pick work items. 16:03:28 we have many fixes in CI jobs, Angus, thank you! 16:04:13 dzimine, ok, we will wait and plan our roadmap based on this. 16:04:45 so, from my side - we reviewed all automated tests and found several issues with Mistral workflows 16:05:25 Renat worked on it and now Renat on the holidays 16:06:01 so, enykeev, bhavenst, NikolayM416, what about your progress on the previous week? 16:06:04 I fixed some bugs in REST API (error handling), helped with devstack tests, tried to implement OAuth in Mistral and move test launching to testr 16:06:27 I am interested in contributing to Mistral and we have posted a couple of blueprints. I'm working on getting up to speed and understanding the component and code so that I can start. 16:06:34 NikolayM416, cool 16:06:46 Will try to pick a bug and work on it as that seems the best way to get going. 16:06:48 tnurlygayanov, nothing from my side. As dzimine stated, we are busy with internal stuff atm. 16:06:49 so we discussed with Angus we won't add oauth right now 16:07:05 bhavenst, you are welcome! 16:07:10 thanks 16:07:45 ok 16:08:06 #info NikolayM416 fixed some bugs in REST API (error handling), helped with devstack tests, tried to implement OAuth in Mistral and move test launching to testr 16:08:41 #info dzimine, enykeev_ : no progress on my side or stackstorm side all together. We were finishing some internal stuff, now from June we will be able to pick work items. 16:09:33 #info bhavenst: I am interested in contributing to Mistral and we have posted a couple of blueprints. I'm working on getting up to speed and understanding the component and code so that I can start 16:09:53 ok, so, it was good week and do we have plans for the next week? 16:10:19 I know that Renat will work on incubation request after his holidays 16:10:51 Sounds good 16:11:30 we should fix some issues, and we work with CI right now, we plan to write new tests for workflow executions, Sergey Murashov works on it 16:11:43 cool 16:12:13 I see tests are working now, dsvm is passed 16:12:30 One question, any place to find info on how to integrate Mistral w/ Horizon? 16:12:55 #action Sergey Murashov & Timur Nurlygayanov: create more automated tests for Mistral devstack gates 16:12:56 (not sure if such a question is appropriate for the meeting or not, so sorry if not. :) 16:13:17 guys I have a request. Can you share more details on the blueprints? E.g., moving to testr: there is a blueprint with no info and the review with no explanations on why. No email, no context of why. 16:13:35 It will be good for community if you have some trail of these decisions somewhere open to community. 16:13:49 I am sure it’s good change, but please be more transparent. 16:14:17 bhavenst, yes, dzimine can describe how we can install horizon dashboard for Mistral 16:15:06 dzimine, sure, we will update blueprints, which assigned to the next milestone 16:15:17 so, I plan to do this on this week 16:15:40 bhavenst, have you already seen https://github.com/stackforge/python-mistralclient/blob/master/horizon_dashboard/README.rst ? 16:15:55 #action Timur Nurlygayanov & NikolayM416: update Mistral blueprints, which targeted to release 0.1 16:16:26 note that this is not TRUE integraion with existing Horizon dashboard, we will be working on this soon. 16:16:35 No, I haven't.. I assumed there might be instructions somewhere 16:16:48 I will give it a shot 16:16:56 Thanks 16:16:56 Yes, the instructions are in the readme. 16:17:02 on config clean up, as we agreed in the ML, i'm removing the keystone section and using the default keystone_authtoken config options. i can't find unit tests in Mistral for testing the keystone AuthProtocol middleware. i'll have to add that so it's taking more time than I like. once this patch is completed, i will regenerate the sample config file and finish up the config clean up. 16:17:16 good news: today I seen the patch sets to solum, which allows to integrate mistral and solum 16:17:50 https://review.openstack.org/#/q/status:open+project:stackforge/solum+branch:master+topic:new-api,n,z 16:18:02 dzimine, yes, we just discussed this with Renat (about testr) and I am going to update the blueprint 16:18:51 i'm also assigned https://blueprints.launchpad.net/mistral/+spec/mistral-engine-executor-protocol, so I'll be looking at notes to figure out what the details are and come up with proposal. 16:19:32 m4dcoder: good. Reach out to enykeev if you have any questions on his notes. 16:19:46 ok 16:22:30 hm, ok, looks like we finished with action items for the next week 16:24:21 so, let's start the open discussion 16:24:32 #topic Open Discussion 16:25:06 I have several questions about Mistral workflows :) 16:25:51 we have tasks and we can update status of tasks manually - and statuses can be changed during the workflow execution 16:26:19 So, what if we have already finished task and user will try to change the status of this task? 16:26:34 should we allow this or we should deny this? 16:26:46 what about the workflows with periodic tasks? 16:27:06 We should deny this, I think 16:27:16 the task status can’t be changed after the task is complete. 16:27:34 so, and what about the priodic tasks? 16:27:38 We can change the state of task to SUCCESS only 1 time, isn't it? 16:27:38 IDLE->RUNNING->[ERROR | SUCCESS] 16:27:54 for example, this task is already completed, but we should run it again 16:28:24 or it will be Running all the time? 16:29:24 it will be another task instance. In the audit log it will show this task executed twice (or N times). 16:29:49 yes, correct :) 16:30:13 dzimine, ok, now it is clear 16:30:17 If it’s REPEAT, than the task is considered to be running for the duration of repetitions, untill it succeeds or fails N times. 16:31:04 today we worked with workflows and looks like this is unclear for new users that we can not change statuses after the execution 16:31:09 In case of periodic task: if you mean “cron”, each time it triggers, it creates new workflow execution. 16:31:16 but we can chage status during the execution 16:31:42 dzimine, each iteration of repeat should produce new instance, correct? 16:32:06 no, it’s the same instance of task (although it is a different invocation of Action) 16:32:22 Sorry, RETRY, not repeat. 16:32:26 Repeat is not implemented yet. 16:32:28 so, I want to see how it will look in UI with logs for each executiong of workflows 16:32:36 ok, got it 16:33:28 I guess Timur ask us about async task only, when we can update the state of task via REST 16:33:42 Aha, now I see. 16:33:54 yes 16:34:04 so what if we change the state to SUCCESS, and then to RUNNING? 16:34:44 For Async tasks, the 3rd party server assumes that it runs the action, and responsible for posting the results back to the engine. 16:35:03 Once results posted, it’s DONE. 16:35:10 because now we work on automated tests and this is interesting - what the expected behaviour in different cases when we have some state and we want to change this state to another 16:35:18 is there are reason to allow changing state rather than from RUNNING to SUCESS or ERROR? 16:35:51 need to look what we should do when you call ‘convey-results’ to the action already completed. We may have a bug there. 16:36:10 and what it task can't pass the results to engine? we will set the timeout and move task to ERROR? 16:36:13 +1 to enykeev 16:36:50 so, during the excution we want to STOP task execution 16:37:04 oh, we should throw an error on [ERROR, SUCCESS] -> RUNNING transition 16:37:14 tnurlygayanov, the point of async execution is to run the task beyond the scope of timeout 16:37:56 so, no, i think we should not make automatic transition from RUNNING to ERROR 16:38:01 NikolayM416, yes, without 500 respose code :) 16:38:14 hm 16:38:32 we don’t support cancelling tasks yet. 16:38:37 enykeev_, so what meeans 'automatic'? How we should do this? 16:39:04 And it’s irrelevant for ASYNC tasks: the 3rd party server is running Action anyways. 16:39:12 dzimine, yes, but we plan to support it 16:39:27 The engine only need to know what is the result of the tasks, so it can compute the next patch and pass the data. 16:40:11 dzimine, ok 16:41:00 what if 3rd party task never returns? 16:41:59 m4dcoder, looks like engine should try to do this again 16:42:24 tnurlygayanov, by issuing the timeout to async task we then would need a way to prolong this timeout when needed 16:42:28 how many times before quitting? 16:42:37 and if this task is not idempotent, it will fail. 16:43:06 enykeev_ hm.... 16:43:08 m4dcoder, what do you mean? executing on 3rd party service can last a week or more 16:44:04 I recall there were some talks about external service that should control such things, watch dog of some sort. Anyway, this is a great question and we should spend some time investigating it. 16:45:20 ok, cool, I will write this ti action item 16:45:26 i was trying to understand what's stated here. say 3rd party task exceeded timeout (regardless how long), how will engine manage state of that task? 16:45:30 The obvious bug here is that API allows to arbitrarily update the task status. Instead, it shall only be called for RUNNING tasks, and accept SUCCESS or FAILURE + data. 16:45:56 Right now we don’t have a timeout on tasks. 16:46:03 #action I recall there were some talks about external service that should control such things, watch dog of some sort. Anyway, this is a great question and we should spend some time investigating it. 16:46:19 When we do, after timeout the task moves to ERROR and workflow continues running 16:46:44 #action rakmerov review the meeting minutes and create new blueprint if it's needed. 16:47:17 dzimine how workflow will continues to run if one task will in ERROR state? 16:47:53 it’s designed to have multiple ERRORS, 16:48:02 I think that ERROR with any task will couse an error of all execution / workflow - if we have no 'if' statements 16:48:08 ok 16:48:08 e.g., the task will have on-error: do-something-else 16:48:23 so, what if one task depends from another? 16:48:30 or, on-finish - which means that next task will run regardless of exit code. 16:48:34 and the first task will became to ERROR 16:49:05 it may depend with on-finish, than next task will execute regardless. 16:49:22 ok, yes, now it is clear 16:49:27 or it may be on-error: do-error-handling. 16:49:32 should timeout be more specific then just be generalized as error? maybe on-timeout: retry-or-do-something-else? 16:49:35 so, we will have just on-error 16:49:42 but if it’s on-success: do-somethign-good, this task won’t be run. 16:50:34 Manas had some thinking about result policies, essentially he stated that all categories fail into success | error | finish (aka everything). 16:50:36 on-timeout - it is interesting, but in the most use cases, which I know, the timeout is equal to error 16:50:40 timeout is a type of error. 16:51:10 if we will have separate type of error 'on-timeout', need to support user-defined states :) 16:51:20 ok. just putting that out for discussion. 16:51:37 let’s file a bug on task API and review the rest when Renat will be re-factoring engine. 16:51:58 #action: [20:51:48] let’s file a bug on task API and review the rest when Renat will be re-factoring engine. 16:52:16 dzimine, which bug do you mean? 16:54:10 so... ok, we can discuss it later. 16:55:36 Thanks everyone for meeting! 16:55:43 #endmeeting