)]}'
{"mistral/engine/workflows.py":[{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"1397dd1efeb8bea220ba4ad2eb61f0002151778e","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            from mistral.engine import task_handler"},{"line_number":147,"context_line":"            task_handler.schedule_on_action_update(self.wf_ex)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def resume(self, env\u003dNone):"},{"line_number":152,"context_line":"        \"\"\"Resume workflow."}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_e2586b57","line":149,"updated":"2017-08-08 12:34:39.000000000","message":"nit: return isn\u0027t needed.","commit_id":"8b642e985622f5a8fdf520664a5a6a86ccf353e8"}],"mistral/tests/unit/engine/test_direct_workflow.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"7d52f3131e766a829657311a5ec0af0c9e6c1918","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            self.engine.resume_workflow(wf_ex.id).state"},{"line_number":157,"context_line":"        )"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.assertEqual("},{"line_number":160,"context_line":"            states.SUCCESS,"},{"line_number":161,"context_line":"            self.engine.pause_workflow(wf_ex.id).state"},{"line_number":162,"context_line":"        )"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self.assertEqual("},{"line_number":165,"context_line":"            states.SUCCESS,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_acd00ecb","line":162,"range":{"start_line":159,"start_character":8,"end_line":162,"end_character":9},"updated":"2017-08-07 08:16:24.000000000","message":"So you made it less strict. I think that\u0027s ok.","commit_id":"56d99034715295938cd707f822a910d76c271831"},{"author":{"_account_id":5558,"name":"Winson Chan","email":"wcchan@stackstorm.com","username":"winson-c-chan"},"change_message_id":"72ad26ed9b83954a3c9ac1a061e3690cd0dfa092","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            self.engine.resume_workflow(wf_ex.id).state"},{"line_number":157,"context_line":"        )"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.assertEqual("},{"line_number":160,"context_line":"            states.SUCCESS,"},{"line_number":161,"context_line":"            self.engine.pause_workflow(wf_ex.id).state"},{"line_number":162,"context_line":"        )"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self.assertEqual("},{"line_number":165,"context_line":"            states.SUCCESS,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_62733be9","line":162,"range":{"start_line":159,"start_character":8,"end_line":162,"end_character":9},"in_reply_to":"bf3e73b7_acd00ecb","updated":"2017-08-07 20:48:38.000000000","message":"I rethink this and I changed this back to raise error. We should raise an error if we can\u0027t pause the workflow. This was initially changed to work around pausing subworkflows. I added some more logic to ensure we don\u0027t pause a sub workflow that is already completed.","commit_id":"56d99034715295938cd707f822a910d76c271831"}],"mistral/tests/unit/engine/test_subworkflows_pause_resume.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"7d52f3131e766a829657311a5ec0af0c9e6c1918","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        version: \u00272.0\u0027"},{"line_number":28,"context_line":"        name: wb"},{"line_number":29,"context_line":"        workflows:"},{"line_number":30,"context_line":"            wf1:"},{"line_number":31,"context_line":"                tasks:"},{"line_number":32,"context_line":"                    task1:"},{"line_number":33,"context_line":"                        workflow: wf2"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_0c7ddab0","line":30,"range":{"start_line":30,"start_character":8,"end_line":30,"end_character":12},"updated":"2017-08-07 08:16:24.000000000","message":"Soft: We usually use 2 chars for indentation.","commit_id":"56d99034715295938cd707f822a910d76c271831"},{"author":{"_account_id":5558,"name":"Winson Chan","email":"wcchan@stackstorm.com","username":"winson-c-chan"},"change_message_id":"72ad26ed9b83954a3c9ac1a061e3690cd0dfa092","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        version: \u00272.0\u0027"},{"line_number":28,"context_line":"        name: wb"},{"line_number":29,"context_line":"        workflows:"},{"line_number":30,"context_line":"            wf1:"},{"line_number":31,"context_line":"                tasks:"},{"line_number":32,"context_line":"                    task1:"},{"line_number":33,"context_line":"                        workflow: wf2"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_78f9aa7e","line":30,"range":{"start_line":30,"start_character":8,"end_line":30,"end_character":12},"in_reply_to":"bf3e73b7_0c7ddab0","updated":"2017-08-07 20:48:38.000000000","message":"Done","commit_id":"56d99034715295938cd707f822a910d76c271831"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"7d52f3131e766a829657311a5ec0af0c9e6c1918","unresolved":false,"context_lines":[{"line_number":971,"context_line":""},{"line_number":972,"context_line":"        # Check state of wf2 (1) subworkflow execution."},{"line_number":973,"context_line":"        self.assertEqual(states.RUNNING, wf_1_task_1_action_exs[0].state)"},{"line_number":974,"context_line":"        self.assertEqual(wf_1_task_1_action_exs[0].id, wf_2_ex_1.id)"},{"line_number":975,"context_line":"        self.assertEqual(states.RUNNING, wf_2_ex_1.state)"},{"line_number":976,"context_line":"        self.assertEqual(1, len(wf_2_ex_1_task_execs))"},{"line_number":977,"context_line":"        self.assertEqual(states.RUNNING, wf_2_ex_1_task_1_ex.state)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_df2772b6","line":974,"range":{"start_line":974,"start_character":25,"end_line":974,"end_character":50},"updated":"2017-08-07 08:16:24.000000000","message":"Can we have a problem with the order? In this example you use \u0027with-items\u0027 which generates 3 action executions so we need to be sure that you\u0027re accessing the right one. Neither db_api methods no task_ex.action_executions guarantee the same order every time.","commit_id":"56d99034715295938cd707f822a910d76c271831"},{"author":{"_account_id":5558,"name":"Winson Chan","email":"wcchan@stackstorm.com","username":"winson-c-chan"},"change_message_id":"72ad26ed9b83954a3c9ac1a061e3690cd0dfa092","unresolved":false,"context_lines":[{"line_number":971,"context_line":""},{"line_number":972,"context_line":"        # Check state of wf2 (1) subworkflow execution."},{"line_number":973,"context_line":"        self.assertEqual(states.RUNNING, wf_1_task_1_action_exs[0].state)"},{"line_number":974,"context_line":"        self.assertEqual(wf_1_task_1_action_exs[0].id, wf_2_ex_1.id)"},{"line_number":975,"context_line":"        self.assertEqual(states.RUNNING, wf_2_ex_1.state)"},{"line_number":976,"context_line":"        self.assertEqual(1, len(wf_2_ex_1_task_execs))"},{"line_number":977,"context_line":"        self.assertEqual(states.RUNNING, wf_2_ex_1_task_1_ex.state)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_f8135ab7","line":974,"range":{"start_line":974,"start_character":25,"end_line":974,"end_character":50},"in_reply_to":"bf3e73b7_df2772b6","updated":"2017-08-07 20:48:38.000000000","message":"Ok. I will fix and add sort to the wf_1_task_1_action_exs by runtime context index.","commit_id":"56d99034715295938cd707f822a910d76c271831"}],"mistral/tests/unit/engine/test_task_pause_resume.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"7d52f3131e766a829657311a5ec0af0c9e6c1918","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        self.assertEqual(1, len(task_execs))"},{"line_number":210,"context_line":"        self.assertEqual(states.PAUSED, task_1_ex.state)"},{"line_number":211,"context_line":"        self.assertEqual(3, len(task_1_action_exs))"},{"line_number":212,"context_line":"        self.assertEqual(states.PAUSED, task_1_action_exs[0].state)"},{"line_number":213,"context_line":"        self.assertEqual(states.RUNNING, task_1_action_exs[1].state)"},{"line_number":214,"context_line":"        self.assertEqual(states.RUNNING, task_1_action_exs[2].state)"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_cc67d225","line":212,"range":{"start_line":212,"start_character":40,"end_line":212,"end_character":60},"updated":"2017-08-07 08:16:24.000000000","message":"Potentially this random access (by index) can be a problem because there\u0027s no guarantee that db_api method will be returning action executions in the same order each time. I\u0027d use some other filter to guarantee that you\u0027re checking the same object\u0027s state for PAUSED.","commit_id":"56d99034715295938cd707f822a910d76c271831"},{"author":{"_account_id":5558,"name":"Winson Chan","email":"wcchan@stackstorm.com","username":"winson-c-chan"},"change_message_id":"72ad26ed9b83954a3c9ac1a061e3690cd0dfa092","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        self.assertEqual(1, len(task_execs))"},{"line_number":210,"context_line":"        self.assertEqual(states.PAUSED, task_1_ex.state)"},{"line_number":211,"context_line":"        self.assertEqual(3, len(task_1_action_exs))"},{"line_number":212,"context_line":"        self.assertEqual(states.PAUSED, task_1_action_exs[0].state)"},{"line_number":213,"context_line":"        self.assertEqual(states.RUNNING, task_1_action_exs[1].state)"},{"line_number":214,"context_line":"        self.assertEqual(states.RUNNING, task_1_action_exs[2].state)"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf3e73b7_3d59d459","line":212,"range":{"start_line":212,"start_character":40,"end_line":212,"end_character":60},"in_reply_to":"bf3e73b7_cc67d225","updated":"2017-08-07 20:48:38.000000000","message":"Ok. I added a sort by the index in runtime_context on the task_1_action_exs.","commit_id":"56d99034715295938cd707f822a910d76c271831"}]}
