)]}'
{"watcher/applier/actions/migration.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"5f2989dfc64c551d08d7343b240099a959cf2e99","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return self.migrate(destination\u003dself.destination_node)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def revert(self):"},{"line_number":184,"context_line":"        if self.allow_rollback:"},{"line_number":185,"context_line":"            return self.migrate(destination\u003dself.source_node)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def abort(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_6c05ef0f","line":184,"range":{"start_line":184,"start_character":8,"end_line":184,"end_character":31},"updated":"2017-11-03 02:02:59.000000000","message":"suggest to add in https://github.com/openstack/watcher/blob/master/watcher/applier/workflow_engine/base.py#L254.\nThen it is valid for all action type","commit_id":"fa2b24e7cfc962e8c113cdb4d92bcfc64ca72ecd"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"592e4192f286c7b50a9e66b087b1b9bff7695149","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return self.migrate(destination\u003dself.destination_node)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def revert(self):"},{"line_number":184,"context_line":"        if self.allow_rollback:"},{"line_number":185,"context_line":"            return self.migrate(destination\u003dself.source_node)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def abort(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_4c859306","line":184,"range":{"start_line":184,"start_character":8,"end_line":184,"end_character":31},"in_reply_to":"3f4b6375_6c05ef0f","updated":"2017-11-03 02:35:16.000000000","message":"Good idea.","commit_id":"fa2b24e7cfc962e8c113cdb4d92bcfc64ca72ecd"}],"watcher/applier/workflow_engine/default.py":[{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"c98a3b8a043d245a8babafabfd88279da19290c3","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    def do_revert(self, *args, **kwargs):"},{"line_number":145,"context_line":"        # NOTE: Not rollback action plan"},{"line_number":146,"context_line":"        if not CONF.watcher_applier.rollback_actionplan:"},{"line_number":147,"context_line":"            LOG.warning(\"It wouldn\u0027t rollback the action plan, \""},{"line_number":148,"context_line":"                        \"so skip revert action: %s\", self.name)"},{"line_number":149,"context_line":"            return"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        LOG.warning(\"Revert action: %s\", self.name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_0ddaa776","line":148,"range":{"start_line":147,"start_character":25,"end_line":148,"end_character":47},"updated":"2017-12-12 12:29:15.000000000","message":"\"Rollback option is turned off. The following action will be skipped:\"","commit_id":"d41d32affad100b3a9c75df87a11f988d7dbc748"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"57fd73a4246732b6b404ae1e02eb3d966b51201e","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"class TaskFlowActionContainer(base.BaseTaskFlowActionContainer):"},{"line_number":132,"context_line":"    def __init__(self, db_action, engine):"},{"line_number":133,"context_line":"        self.name \u003d \"action_type:{0} uuid:{1}\".format(db_action.action_type,"},{"line_number":134,"context_line":"                                                      db_action.uuid)"},{"line_number":135,"context_line":"        super(TaskFlowActionContainer, self).__init__(self.name,"},{"line_number":136,"context_line":"                                                      db_action,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_fdb9a678","line":133,"range":{"start_line":133,"start_character":8,"end_line":133,"end_character":13},"updated":"2020-06-26 06:52:09.000000000","message":"why?","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"30ee403d9ab6ce318ecc255bb91fc9908856c7c8","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"class TaskFlowActionContainer(base.BaseTaskFlowActionContainer):"},{"line_number":132,"context_line":"    def __init__(self, db_action, engine):"},{"line_number":133,"context_line":"        self.name \u003d \"action_type:{0} uuid:{1}\".format(db_action.action_type,"},{"line_number":134,"context_line":"                                                      db_action.uuid)"},{"line_number":135,"context_line":"        super(TaskFlowActionContainer, self).__init__(self.name,"},{"line_number":136,"context_line":"                                                      db_action,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_5d3c0092","line":133,"range":{"start_line":133,"start_character":8,"end_line":133,"end_character":13},"in_reply_to":"bf51134e_fdb9a678","updated":"2020-06-28 01:19:26.000000000","message":"Consistent with line 142/147/162... \nIt\u0027s a long inheritance order for \u0027self.name\u0027. Simple change make it more obvious.","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"57fd73a4246732b6b404ae1e02eb3d966b51201e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    def __init__(self, db_action, engine):"},{"line_number":133,"context_line":"        self.name \u003d \"action_type:{0} uuid:{1}\".format(db_action.action_type,"},{"line_number":134,"context_line":"                                                      db_action.uuid)"},{"line_number":135,"context_line":"        super(TaskFlowActionContainer, self).__init__(self.name,"},{"line_number":136,"context_line":"                                                      db_action,"},{"line_number":137,"context_line":"                                                      engine)"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_5db41280","line":135,"range":{"start_line":135,"start_character":54,"end_line":135,"end_character":58},"updated":"2020-06-26 06:52:09.000000000","message":"ditto","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"30ee403d9ab6ce318ecc255bb91fc9908856c7c8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    def __init__(self, db_action, engine):"},{"line_number":133,"context_line":"        self.name \u003d \"action_type:{0} uuid:{1}\".format(db_action.action_type,"},{"line_number":134,"context_line":"                                                      db_action.uuid)"},{"line_number":135,"context_line":"        super(TaskFlowActionContainer, self).__init__(self.name,"},{"line_number":136,"context_line":"                                                      db_action,"},{"line_number":137,"context_line":"                                                      engine)"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_bd3f1c85","line":135,"range":{"start_line":135,"start_character":54,"end_line":135,"end_character":58},"in_reply_to":"bf51134e_5db41280","updated":"2020-06-28 01:19:26.000000000","message":"as above","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"57fd73a4246732b6b404ae1e02eb3d966b51201e","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    def do_revert(self, *args, **kwargs):"},{"line_number":166,"context_line":"        # NOTE: Not rollback action plan"},{"line_number":167,"context_line":"        if not CONF.watcher_applier.rollback_actionplan:"},{"line_number":168,"context_line":"            LOG.warning(\"Rollback option is turned off, and the following \""},{"line_number":169,"context_line":"                        \"action will be skipped: %s\", self.name)"},{"line_number":170,"context_line":"            return"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_9d918af4","line":168,"range":{"start_line":168,"start_character":16,"end_line":168,"end_character":23},"updated":"2020-06-26 06:52:09.000000000","message":"info is better","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"30ee403d9ab6ce318ecc255bb91fc9908856c7c8","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    def do_revert(self, *args, **kwargs):"},{"line_number":166,"context_line":"        # NOTE: Not rollback action plan"},{"line_number":167,"context_line":"        if not CONF.watcher_applier.rollback_actionplan:"},{"line_number":168,"context_line":"            LOG.warning(\"Rollback option is turned off, and the following \""},{"line_number":169,"context_line":"                        \"action will be skipped: %s\", self.name)"},{"line_number":170,"context_line":"            return"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_9d42180e","line":168,"range":{"start_line":168,"start_character":16,"end_line":168,"end_character":23},"in_reply_to":"bf51134e_9d918af4","updated":"2020-06-28 01:19:26.000000000","message":"ok","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"}],"watcher/conf/applier.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"cd28572cd959f4ed86eb13e78d8b099de1c0b539","unresolved":false,"context_lines":[{"line_number":44,"context_line":"]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_migrate\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"},{"line_number":49,"context_line":"                help\u003d\u0027If set true, rollback migrate actions \u0027"},{"line_number":50,"context_line":"                     \u0027when action_plan fails.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f485f77_bcc26784","line":47,"range":{"start_line":47,"start_character":17,"end_line":47,"end_character":33},"updated":"2017-11-13 02:04:53.000000000","message":"I prefer it\u0027s a option for all actions, not only migrate,\nbut i don\u0027t know other\u0027s idea.","commit_id":"5f53625646c06a292447a395c847208e8a0bbb8b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"5462a21f87a86a1a801ee5c1f2d6b6fb5bb9f514","unresolved":false,"context_lines":[{"line_number":44,"context_line":"]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_migrate\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"},{"line_number":49,"context_line":"                help\u003d\u0027If set true, rollback migrate actions \u0027"},{"line_number":50,"context_line":"                     \u0027when action_plan fails.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f485f77_4b0ffee0","line":47,"range":{"start_line":47,"start_character":17,"end_line":47,"end_character":33},"in_reply_to":"1f485f77_bcc26784","updated":"2017-11-14 13:58:26.000000000","message":"Agree with licanwei, it would be good to have unified way to rollback any action type.","commit_id":"5f53625646c06a292447a395c847208e8a0bbb8b"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"57fd73a4246732b6b404ae1e02eb3d966b51201e","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_actionplan\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"},{"line_number":49,"context_line":"                help\u003d\u0027If set False, not rollback actionplan when it fails.\u0027),"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_7df7565a","line":48,"range":{"start_line":48,"start_character":16,"end_line":48,"end_character":28},"updated":"2020-06-26 06:52:09.000000000","message":"I think the default should be False, there are many unexpected effect when revert the actions. and some actions don\u0027t implement the revert operation.","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"30ee403d9ab6ce318ecc255bb91fc9908856c7c8","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_actionplan\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"},{"line_number":49,"context_line":"                help\u003d\u0027If set False, not rollback actionplan when it fails.\u0027),"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_3d530ce4","line":48,"range":{"start_line":48,"start_character":16,"end_line":48,"end_character":28},"in_reply_to":"bf51134e_7df7565a","updated":"2020-06-28 01:19:26.000000000","message":"yes, \u0027False\u0027 is better.","commit_id":"102eec6a5692094f981b60491563a11b8ada3f10"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"409c2210946050de1e03700e198cc6cd1744755d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_actionplan\u0027,"},{"line_number":48,"context_line":"                default\u003dFalse,"},{"line_number":49,"context_line":"                help\u003d\u0027If set False, not rollback actionplan when it fails.\u0027),"},{"line_number":50,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_ded7434f","line":47,"range":{"start_line":47,"start_character":17,"end_line":47,"end_character":36},"updated":"2020-07-01 02:20:58.000000000","message":"This is a bit unclear, is revert_action better?\nThis flag is used to revert successful action when the actionplan failed.\nThe bp rollback-mechanism is intended to rollback actonplan.","commit_id":"b295837c980b327a4c6172847bc37a2dcc14e566"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"3bbb2e3094f862d59622a79cc8259a537d115ffc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_actionplan\u0027,"},{"line_number":48,"context_line":"                default\u003dFalse,"},{"line_number":49,"context_line":"                help\u003d\u0027If set False, not rollback actionplan when it fails.\u0027),"},{"line_number":50,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_6b3eb0b8","line":47,"range":{"start_line":47,"start_character":17,"end_line":47,"end_character":36},"in_reply_to":"bf51134e_ded7434f","updated":"2020-07-10 06:23:24.000000000","message":"\u0027rollback_when_actionplan_failed\u0027 looks more understood.","commit_id":"b295837c980b327a4c6172847bc37a2dcc14e566"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"409c2210946050de1e03700e198cc6cd1744755d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_actionplan\u0027,"},{"line_number":48,"context_line":"                default\u003dFalse,"},{"line_number":49,"context_line":"                help\u003d\u0027If set False, not rollback actionplan when it fails.\u0027),"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_5ed5f342","line":49,"range":{"start_line":49,"start_character":22,"end_line":49,"end_character":73},"updated":"2020-07-01 02:20:58.000000000","message":"wish to more clear, include default value","commit_id":"b295837c980b327a4c6172847bc37a2dcc14e566"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"3bbb2e3094f862d59622a79cc8259a537d115ffc","unresolved":false,"context_lines":[{"line_number":46,"context_line":"APPLIER_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027rollback_actionplan\u0027,"},{"line_number":48,"context_line":"                default\u003dFalse,"},{"line_number":49,"context_line":"                help\u003d\u0027If set False, not rollback actionplan when it fails.\u0027),"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_4b548cfe","line":49,"range":{"start_line":49,"start_character":22,"end_line":49,"end_character":73},"in_reply_to":"bf51134e_5ed5f342","updated":"2020-07-10 06:23:24.000000000","message":"Done","commit_id":"b295837c980b327a4c6172847bc37a2dcc14e566"}]}
