)]}'
{"mistral/engine/action_handler.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"9cdd92b65b34d271071ea2272508191d09fb770a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    try:"},{"line_number":33,"context_line":"        action.complete(result)"},{"line_number":34,"context_line":"    except exc.MistralException:"},{"line_number":35,"context_line":"        msg \u003d (\"Failed to complete action [action\u003d%s, task\u003d%s]\" %"},{"line_number":36,"context_line":"               (action_ex.name, task_ex.name))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_841ce16a","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":11},"updated":"2016-06-02 04:36:33.000000000","message":"Yeah, it\u0027s not that simple here as we thought. Note that the message of that exact form is expected to get propagated to other layers so it eventually goes into \"state_info\" of task and workflow executions. That message must have info about \"cause\" exception by design. Having said that, I think we actually need to use LOG.error() in this particular case.","commit_id":"bfd1eabfe4a613eb3d2fd42f5832659e51ed1892"}],"mistral/engine/task_handler.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"9cdd92b65b34d271071ea2272508191d09fb770a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            (wf_ex, task_spec.get_name())"},{"line_number":49,"context_line":"        )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        LOG.exception(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        task.set_state(states.ERROR, msg)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_a42be580","line":51,"range":{"start_line":51,"start_character":12,"end_line":51,"end_character":21},"updated":"2016-06-02 04:36:33.000000000","message":"Same here (see action_handler.py).","commit_id":"bfd1eabfe4a613eb3d2fd42f5832659e51ed1892"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"9cdd92b65b34d271071ea2272508191d09fb770a","unresolved":false,"context_lines":[{"line_number":92,"context_line":"               \" action\u003d%s]\" %"},{"line_number":93,"context_line":"               (wf_ex.name, task_ex.name, action_ex.name))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        LOG.exception(msg)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        task.set_state(states.ERROR, msg)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_e4216d9f","line":95,"range":{"start_line":95,"start_character":12,"end_line":95,"end_character":21},"updated":"2016-06-02 04:36:33.000000000","message":"Same here (see action_handler.py).","commit_id":"bfd1eabfe4a613eb3d2fd42f5832659e51ed1892"}],"mistral/services/periodic.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"9cdd92b65b34d271071ea2272508191d09fb770a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                # Log and continue to next cron trigger."},{"line_number":71,"context_line":"                msg \u003d \"Failed to process cron trigger %s\" % (str(t))"},{"line_number":72,"context_line":"                LOG.exception(msg)"},{"line_number":73,"context_line":"            finally:"},{"line_number":74,"context_line":"                auth_ctx.set_ctx(None)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_844a2153","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":29},"updated":"2016-06-02 04:36:33.000000000","message":"Here it\u0027s totally ok to use LOG.exception().","commit_id":"bfd1eabfe4a613eb3d2fd42f5832659e51ed1892"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"0fc1773b3146685fb9cedd082885967d048b6e68","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                    )"},{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                # Log and continue to next cron trigger."},{"line_number":71,"context_line":"                msg \u003d \"Failed to process cron trigger %s\" % (str(t))"},{"line_number":72,"context_line":"                LOG.exception(msg)"},{"line_number":73,"context_line":"            finally:"},{"line_number":74,"context_line":"                auth_ctx.set_ctx(None)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_f30acd77","line":71,"range":{"start_line":71,"start_character":60,"end_line":71,"end_character":61},"updated":"2016-06-02 07:25:00.000000000","message":"Redundant parentheses","commit_id":"c291dfc5ec9ef52c74b9c56d0c5b229781561097"}]}
