)]}'
{"mistral/engine/default_engine.py":[{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"6b3f6046ac5e645224440a3d3fc520339c788a9c","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            try:"},{"line_number":178,"context_line":"                cmds \u003d wf_ctrl.continue_workflow()"},{"line_number":179,"context_line":"            except exc.YaqlEvaluationException as e:"},{"line_number":180,"context_line":"                wf_handler.fail_workflow(wf_ex, str(e))"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"                LOG.error("},{"line_number":183,"context_line":"                    \u0027YAQL error occurred while calculating next workflow \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_00640e20","line":180,"updated":"2016-03-29 17:06:45.000000000","message":"Maybe first \"LOG.error\" (line 182) and then call wf_handler.fail_workflow? In case fail_workflow will also throw an exception at least we will have the log message of the cause","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"bc43824d6714dc3fec7627ec7c9216a835af5a16","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            try:"},{"line_number":178,"context_line":"                cmds \u003d wf_ctrl.continue_workflow()"},{"line_number":179,"context_line":"            except exc.YaqlEvaluationException as e:"},{"line_number":180,"context_line":"                wf_handler.fail_workflow(wf_ex, str(e))"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"                LOG.error("},{"line_number":183,"context_line":"                    \u0027YAQL error occurred while calculating next workflow \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_1c2460ad","line":180,"in_reply_to":"ba0121b8_00640e20","updated":"2016-03-30 04:52:04.000000000","message":"Done","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"6b3f6046ac5e645224440a3d3fc520339c788a9c","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"                wf_ex_id \u003d action_ex.task_execution.workflow_execution_id"},{"line_number":245,"context_line":"                wf_ex \u003d wf_handler.lock_workflow_execution(wf_ex_id)"},{"line_number":246,"context_line":"                task_ex \u003d action_ex.task_execution"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"                wf_spec \u003d spec_parser.get_workflow_spec(wf_ex.spec)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_205e7276","line":246,"updated":"2016-03-29 17:06:45.000000000","message":"task_ex is assigned again in line 250. Is this line needed?","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"bc43824d6714dc3fec7627ec7c9216a835af5a16","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"                wf_ex_id \u003d action_ex.task_execution.workflow_execution_id"},{"line_number":245,"context_line":"                wf_ex \u003d wf_handler.lock_workflow_execution(wf_ex_id)"},{"line_number":246,"context_line":"                task_ex \u003d action_ex.task_execution"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"                wf_spec \u003d spec_parser.get_workflow_spec(wf_ex.spec)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_fc4d2c73","line":246,"in_reply_to":"ba0121b8_205e7276","updated":"2016-03-30 04:52:04.000000000","message":"Done","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"6b3f6046ac5e645224440a3d3fc520339c788a9c","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        err_msg \u003d str(exc)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"        with db_api.transaction():"},{"line_number":467,"context_line":"            wf_ex \u003d db_api.load_workflow_execution(wf_ex_id)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"            if wf_ex is None:"},{"line_number":470,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_e3d3e45d","line":467,"updated":"2016-03-29 17:06:45.000000000","message":"Maybe replace this line with line 476? No need anymore to load and then load\u0026lock","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"bc43824d6714dc3fec7627ec7c9216a835af5a16","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        err_msg \u003d str(exc)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"        with db_api.transaction():"},{"line_number":467,"context_line":"            wf_ex \u003d db_api.load_workflow_execution(wf_ex_id)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"            if wf_ex is None:"},{"line_number":470,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_bcba9421","line":467,"in_reply_to":"ba0121b8_e3d3e45d","updated":"2016-03-30 04:52:04.000000000","message":"This is actually a trick to handle a situation when workflow execution object has not been yet created. Method load_xxx by design doesn\u0027t raise an exception if object does not exist whereas lock_xxx does. That\u0027s why we first check if it exists at all.\n\nI hate this myself but would prefer leave it as is for now, we may want to get rid of this method at all moving forward. There\u0027s still a lot of work that needs to get error handling into a good shape. I keep working on it.","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"}],"mistral/engine/default_executor.py":[{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"033c0b3d42bc19bfe07db5cdfe9f8862fc54e182","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        action_cls \u003d a_f.construct_action_class(action_class_str, attributes)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        # Instantiate action."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            action \u003d action_cls(**action_params)"},{"line_number":65,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_3df4bc85","line":62,"updated":"2016-03-28 07:52:04.000000000","message":"let\u0027s delete this empty line.","commit_id":"9af6f8d3a10baa3f68163b292f2d82dded155562"},{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"033c0b3d42bc19bfe07db5cdfe9f8862fc54e182","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            return send_error_back(msg)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # Run action."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        try:"},{"line_number":77,"context_line":"            result \u003d action.run()"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_9df3489e","line":75,"updated":"2016-03-28 07:52:04.000000000","message":"let\u0027s delete this empty line.","commit_id":"9af6f8d3a10baa3f68163b292f2d82dded155562"}],"mistral/engine/task_handler.py":[{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"6b3f6046ac5e645224440a3d3fc520339c788a9c","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        set_task_state(task_ex, states.ERROR, str(e))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        LOG.error("},{"line_number":106,"context_line":"            \u0027YAQL error while calculating task action inputs\u0027"},{"line_number":107,"context_line":"            \u0027 [task_execution_id\u003d%s]: %s\u0027,"},{"line_number":108,"context_line":"            task_ex.id, e"},{"line_number":109,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_83e828e4","line":106,"updated":"2016-03-29 17:06:45.000000000","message":"Message says \"YAQL error\" is it always YAQL errors here or can it be something else in certain cases?","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"bc43824d6714dc3fec7627ec7c9216a835af5a16","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        set_task_state(task_ex, states.ERROR, str(e))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        LOG.error("},{"line_number":106,"context_line":"            \u0027YAQL error while calculating task action inputs\u0027"},{"line_number":107,"context_line":"            \u0027 [task_execution_id\u003d%s]: %s\u0027,"},{"line_number":108,"context_line":"            task_ex.id, e"},{"line_number":109,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_3c7de46e","line":106,"in_reply_to":"ba0121b8_83e828e4","updated":"2016-03-30 04:52:04.000000000","message":"Done","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"6b3f6046ac5e645224440a3d3fc520339c788a9c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            ctx,"},{"line_number":137,"context_line":"            state\u003dstates.WAITING"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"def run_new_task(wf_cmd, wf_spec):"},{"line_number":142,"context_line":"    \"\"\"Runs a task.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_23b83ce5","line":139,"updated":"2016-03-29 17:06:45.000000000","message":"Method sometimes does not return anything. Is it valid?","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"bc43824d6714dc3fec7627ec7c9216a835af5a16","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            ctx,"},{"line_number":137,"context_line":"            state\u003dstates.WAITING"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"def run_new_task(wf_cmd, wf_spec):"},{"line_number":142,"context_line":"    \"\"\"Runs a task.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_1c80e045","line":139,"in_reply_to":"ba0121b8_23b83ce5","updated":"2016-03-30 04:52:04.000000000","message":"By default it would return None but I also prefer to make it explicit.\n\nDone","commit_id":"f805152279fec8cae21b6f0e0a7515df9fae1a0c"}],"mistral/tests/unit/engine/test_direct_workflow.py":[{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"576ee24308b047ef87f44e2212fe1ab39ff0b1b9","unresolved":false,"context_lines":[{"line_number":302,"context_line":"            state\u003dstates.ERROR"},{"line_number":303,"context_line":"        )"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        # \u0027task2\u0027 most not have action executions."},{"line_number":306,"context_line":"        self.assertEqual("},{"line_number":307,"context_line":"            0,"},{"line_number":308,"context_line":"            len(db_api.get_action_executions(task_execution_id\u003dtask_2_ex.id))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba0121b8_5fe7e3af","line":305,"range":{"start_line":305,"start_character":17,"end_line":305,"end_character":22},"updated":"2016-03-30 09:05:12.000000000","message":"typo: most -\u003e must (or should)","commit_id":"0e829857af4340f4e99909635b651c8ae0176fea"}]}
