)]}'
{"cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py":[{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"46e229d889dfc4d98a50e96643a1980724d8a921","unresolved":false,"context_lines":[{"line_number":8593,"context_line":"        self.driver.configuration.set_override(\u0027replication_device\u0027,"},{"line_number":8594,"context_line":"                                               [self.rep_target])"},{"line_number":8595,"context_line":"        self.driver.do_setup(self.ctxt)"},{"line_number":8596,"context_line":"        group \u003d self._create_test_rccg(self.rccg_type, [self.mm_type.id])"},{"line_number":8597,"context_line":"        mm_vol1, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8598,"context_line":"        mm_vol2, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8599,"context_line":"        mm_vol2[\u0027status\u0027] \u003d \u0027in-use\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_f9ce622b","line":8596,"range":{"start_line":8596,"start_character":21,"end_line":8596,"end_character":38},"updated":"2017-08-03 02:14:30.000000000","message":"Better to add case for gmcv_type rccg, because of different consistent_copying state and cycle_period_seconds compared with mm","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"01dcb6c545dbc00dc6f25eac0efa59b3c3e1ca68","unresolved":false,"context_lines":[{"line_number":8593,"context_line":"        self.driver.configuration.set_override(\u0027replication_device\u0027,"},{"line_number":8594,"context_line":"                                               [self.rep_target])"},{"line_number":8595,"context_line":"        self.driver.do_setup(self.ctxt)"},{"line_number":8596,"context_line":"        group \u003d self._create_test_rccg(self.rccg_type, [self.mm_type.id])"},{"line_number":8597,"context_line":"        mm_vol1, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8598,"context_line":"        mm_vol2, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8599,"context_line":"        mm_vol2[\u0027status\u0027] \u003d \u0027in-use\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_bbe2049f","line":8596,"range":{"start_line":8596,"start_character":21,"end_line":8596,"end_character":38},"in_reply_to":"df3967d1_f9ce622b","updated":"2017-08-07 11:27:29.000000000","message":"Hi Chengyong, thanks a lot for your comments. It will be addressed in new patch.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"46e229d889dfc4d98a50e96643a1980724d8a921","unresolved":false,"context_lines":[{"line_number":8678,"context_line":"        self.driver.configuration.set_override(\u0027replication_device\u0027,"},{"line_number":8679,"context_line":"                                               [self.rep_target])"},{"line_number":8680,"context_line":"        self.driver.do_setup(self.ctxt)"},{"line_number":8681,"context_line":"        group \u003d self._create_test_rccg(self.rccg_type, [self.mm_type.id])"},{"line_number":8682,"context_line":"        mm_vol1, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8683,"context_line":"        mm_vol2, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8684,"context_line":"        mm_vol2[\u0027status\u0027] \u003d \u0027in-use\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_b9dc5ae4","line":8681,"range":{"start_line":8681,"start_character":8,"end_line":8681,"end_character":13},"updated":"2017-08-03 02:14:30.000000000","message":"ditoo","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"01dcb6c545dbc00dc6f25eac0efa59b3c3e1ca68","unresolved":false,"context_lines":[{"line_number":8678,"context_line":"        self.driver.configuration.set_override(\u0027replication_device\u0027,"},{"line_number":8679,"context_line":"                                               [self.rep_target])"},{"line_number":8680,"context_line":"        self.driver.do_setup(self.ctxt)"},{"line_number":8681,"context_line":"        group \u003d self._create_test_rccg(self.rccg_type, [self.mm_type.id])"},{"line_number":8682,"context_line":"        mm_vol1, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8683,"context_line":"        mm_vol2, model_update \u003d self._create_test_volume(self.mm_type)"},{"line_number":8684,"context_line":"        mm_vol2[\u0027status\u0027] \u003d \u0027in-use\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_7bf25c72","line":8681,"range":{"start_line":8681,"start_character":8,"end_line":8681,"end_character":13},"in_reply_to":"df3967d1_b9dc5ae4","updated":"2017-08-07 11:27:29.000000000","message":"Hi Chengyong, thanks a lot for your comments. It will be addressed in new patch.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":2984,"context_line":"            ctxt, groups)"},{"line_number":2985,"context_line":"        volumes_update.extend(rep_vols_in_grp_update)"},{"line_number":2986,"context_line":""},{"line_number":2987,"context_line":"        unrep_volumes_update \u003d self._failover_unreplicated_volume("},{"line_number":2988,"context_line":"            unrep_volumes)"},{"line_number":2989,"context_line":"        volumes_update.extend(unrep_volumes_update)"},{"line_number":2990,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_0e3368ad","line":2987,"range":{"start_line":2987,"start_character":36,"end_line":2987,"end_character":65},"updated":"2017-08-01 02:33:17.000000000","message":"all of volumes are replication type. you don\u0027t need to failover unreplicated volumes.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"e881370772b79cc1e0e8cc96f7716198d6e6d459","unresolved":false,"context_lines":[{"line_number":2984,"context_line":"            ctxt, groups)"},{"line_number":2985,"context_line":"        volumes_update.extend(rep_vols_in_grp_update)"},{"line_number":2986,"context_line":""},{"line_number":2987,"context_line":"        unrep_volumes_update \u003d self._failover_unreplicated_volume("},{"line_number":2988,"context_line":"            unrep_volumes)"},{"line_number":2989,"context_line":"        volumes_update.extend(unrep_volumes_update)"},{"line_number":2990,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_3ed0951f","line":2987,"range":{"start_line":2987,"start_character":36,"end_line":2987,"end_character":65},"in_reply_to":"df3967d1_091922d6","updated":"2017-08-01 09:19:45.000000000","message":"it may be better to the rename the function _failover_unreplicated_volume, the status of replicated volume may be error, and it will enter into this function, and it will confuse user that driver want to fail over unreplicated volume.\n\nBTW, it seems that storwize doesn\u0027t want to failover replicated volumes which state are not available or in-use in the storage, it may be better to bypass these volumes and keep their status.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":2984,"context_line":"            ctxt, groups)"},{"line_number":2985,"context_line":"        volumes_update.extend(rep_vols_in_grp_update)"},{"line_number":2986,"context_line":""},{"line_number":2987,"context_line":"        unrep_volumes_update \u003d self._failover_unreplicated_volume("},{"line_number":2988,"context_line":"            unrep_volumes)"},{"line_number":2989,"context_line":"        volumes_update.extend(unrep_volumes_update)"},{"line_number":2990,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_091922d6","line":2987,"range":{"start_line":2987,"start_character":36,"end_line":2987,"end_character":65},"in_reply_to":"df3967d1_0e3368ad","updated":"2017-08-01 08:49:25.000000000","message":"Hi jiamin, thanks for your comments. Yes, all the volumes are repilcation type. Here it deals with replicated volumes which volume status is neither  available nor in-use.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"605d841e52963ffc595abd92b9fc205f8302f23c","unresolved":false,"context_lines":[{"line_number":2984,"context_line":"            ctxt, groups)"},{"line_number":2985,"context_line":"        volumes_update.extend(rep_vols_in_grp_update)"},{"line_number":2986,"context_line":""},{"line_number":2987,"context_line":"        unrep_volumes_update \u003d self._failover_unreplicated_volume("},{"line_number":2988,"context_line":"            unrep_volumes)"},{"line_number":2989,"context_line":"        volumes_update.extend(unrep_volumes_update)"},{"line_number":2990,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_7244111c","line":2987,"range":{"start_line":2987,"start_character":36,"end_line":2987,"end_character":65},"in_reply_to":"df3967d1_3ed0951f","updated":"2017-08-01 09:40:44.000000000","message":":), missed a point that the status of replicated volumes are only available and in-use, and in-use is enabled only when user specify --allow-attach-volume. so the change is a little big for this one.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/group/api.py#L1067","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"540409db62cd46cb2962f963b0098f6757044eab","unresolved":false,"context_lines":[{"line_number":2984,"context_line":"            ctxt, groups)"},{"line_number":2985,"context_line":"        volumes_update.extend(rep_vols_in_grp_update)"},{"line_number":2986,"context_line":""},{"line_number":2987,"context_line":"        unrep_volumes_update \u003d self._failover_unreplicated_volume("},{"line_number":2988,"context_line":"            unrep_volumes)"},{"line_number":2989,"context_line":"        volumes_update.extend(unrep_volumes_update)"},{"line_number":2990,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_86ea93a9","line":2987,"range":{"start_line":2987,"start_character":36,"end_line":2987,"end_character":65},"in_reply_to":"df3967d1_3ed0951f","updated":"2017-08-01 12:02:47.000000000","message":"Hi Jiamin, what the function _failover_unreplicated_volume does here is  by-pass those replicated volumes which state is neither available nor in-use and keep their status. I will rename the function name.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"540409db62cd46cb2962f963b0098f6757044eab","unresolved":false,"context_lines":[{"line_number":2984,"context_line":"            ctxt, groups)"},{"line_number":2985,"context_line":"        volumes_update.extend(rep_vols_in_grp_update)"},{"line_number":2986,"context_line":""},{"line_number":2987,"context_line":"        unrep_volumes_update \u003d self._failover_unreplicated_volume("},{"line_number":2988,"context_line":"            unrep_volumes)"},{"line_number":2989,"context_line":"        volumes_update.extend(unrep_volumes_update)"},{"line_number":2990,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_a699176f","line":2987,"range":{"start_line":2987,"start_character":36,"end_line":2987,"end_character":65},"in_reply_to":"df3967d1_7244111c","updated":"2017-08-01 12:02:47.000000000","message":"Hi jiamin, the code you specify is for failover_repication, only available or in-use replicated volume is sent to driver in failover_repication. But here is failover_host, all replicated volume is sent to driver, include available, in-use, error, etc.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3299,"context_line":"                  {\u0027volumes_update\u0027: volumes_update})"},{"line_number":3300,"context_line":"        return volumes_update"},{"line_number":3301,"context_line":""},{"line_number":3302,"context_line":"    def _failover_replica_groups(self, ctxt, groups):"},{"line_number":3303,"context_line":"        volumes_update \u003d []"},{"line_number":3304,"context_line":"        groups_update \u003d []"},{"line_number":3305,"context_line":"        for grp in groups:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_2e8f4c24","line":3302,"range":{"start_line":3302,"start_character":4,"end_line":3302,"end_character":53},"updated":"2017-08-01 02:33:17.000000000","message":"you may need to take care of groups have been failed over before failover host.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"540409db62cd46cb2962f963b0098f6757044eab","unresolved":false,"context_lines":[{"line_number":3299,"context_line":"                  {\u0027volumes_update\u0027: volumes_update})"},{"line_number":3300,"context_line":"        return volumes_update"},{"line_number":3301,"context_line":""},{"line_number":3302,"context_line":"    def _failover_replica_groups(self, ctxt, groups):"},{"line_number":3303,"context_line":"        volumes_update \u003d []"},{"line_number":3304,"context_line":"        groups_update \u003d []"},{"line_number":3305,"context_line":"        for grp in groups:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_660e8f3c","line":3302,"range":{"start_line":3302,"start_character":4,"end_line":3302,"end_character":53},"in_reply_to":"df3967d1_1ef5d183","updated":"2017-08-01 12:02:47.000000000","message":"Hi Jiamin, thanks for your comments. It is addressed in new patch.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3299,"context_line":"                  {\u0027volumes_update\u0027: volumes_update})"},{"line_number":3300,"context_line":"        return volumes_update"},{"line_number":3301,"context_line":""},{"line_number":3302,"context_line":"    def _failover_replica_groups(self, ctxt, groups):"},{"line_number":3303,"context_line":"        volumes_update \u003d []"},{"line_number":3304,"context_line":"        groups_update \u003d []"},{"line_number":3305,"context_line":"        for grp in groups:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_89699226","line":3302,"range":{"start_line":3302,"start_character":4,"end_line":3302,"end_character":53},"in_reply_to":"df3967d1_2e8f4c24","updated":"2017-08-01 08:49:25.000000000","message":"Yes, it\u0027s checked by _rep_grp_failover below, once the group has been failerover, _rep_grp_failover will do nothing and just return None.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"e881370772b79cc1e0e8cc96f7716198d6e6d459","unresolved":false,"context_lines":[{"line_number":3299,"context_line":"                  {\u0027volumes_update\u0027: volumes_update})"},{"line_number":3300,"context_line":"        return volumes_update"},{"line_number":3301,"context_line":""},{"line_number":3302,"context_line":"    def _failover_replica_groups(self, ctxt, groups):"},{"line_number":3303,"context_line":"        volumes_update \u003d []"},{"line_number":3304,"context_line":"        groups_update \u003d []"},{"line_number":3305,"context_line":"        for grp in groups:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_1ef5d183","line":3302,"range":{"start_line":3302,"start_character":4,"end_line":3302,"end_character":53},"in_reply_to":"df3967d1_89699226","updated":"2017-08-01 09:19:45.000000000","message":"I forgot to say that in _rep_grp_failover, you can not judge group is failed over or not via group.replication_status \u003d\u003d\nfields.ReplicationStatus.FAILED_OVER, because it will never failed-over, it is always failing-over, please refer to https://github.com/openstack/cinder/blob/master/cinder/group/api.py#L1096. so you need to take care of it.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3340,"context_line":""},{"line_number":3341,"context_line":"        return volumes_update, groups_update"},{"line_number":3342,"context_line":""},{"line_number":3343,"context_line":"    def _classify_volume(self, ctxt, volumes):"},{"line_number":3344,"context_line":"        unrep_volumes \u003d []"},{"line_number":3345,"context_line":"        replica_volumes \u003d []"},{"line_number":3346,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_ceb680da","line":3343,"range":{"start_line":3343,"start_character":8,"end_line":3343,"end_character":24},"updated":"2017-08-01 02:33:17.000000000","message":"you don\u0027t need to classify replicated volumes and unreplicated volumes any more, because all of volumes are replicated.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"540409db62cd46cb2962f963b0098f6757044eab","unresolved":false,"context_lines":[{"line_number":3340,"context_line":""},{"line_number":3341,"context_line":"        return volumes_update, groups_update"},{"line_number":3342,"context_line":""},{"line_number":3343,"context_line":"    def _classify_volume(self, ctxt, volumes):"},{"line_number":3344,"context_line":"        unrep_volumes \u003d []"},{"line_number":3345,"context_line":"        replica_volumes \u003d []"},{"line_number":3346,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_616af9b3","line":3343,"range":{"start_line":3343,"start_character":8,"end_line":3343,"end_character":24},"in_reply_to":"df3967d1_9e1781a4","updated":"2017-08-01 12:02:47.000000000","message":"Those replicated volumes which status is neither available nor in-use can not be remove here since they need to be bypassed in driver and their state will also need to be kept. I will rename them.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"e881370772b79cc1e0e8cc96f7716198d6e6d459","unresolved":false,"context_lines":[{"line_number":3340,"context_line":""},{"line_number":3341,"context_line":"        return volumes_update, groups_update"},{"line_number":3342,"context_line":""},{"line_number":3343,"context_line":"    def _classify_volume(self, ctxt, volumes):"},{"line_number":3344,"context_line":"        unrep_volumes \u003d []"},{"line_number":3345,"context_line":"        replica_volumes \u003d []"},{"line_number":3346,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_9e1781a4","line":3343,"range":{"start_line":3343,"start_character":8,"end_line":3343,"end_character":24},"in_reply_to":"df3967d1_c960ba35","updated":"2017-08-01 09:19:45.000000000","message":"maybe you can remove unrep_volumes, and leave their states just as they are. or rename unrep_volumes.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3340,"context_line":""},{"line_number":3341,"context_line":"        return volumes_update, groups_update"},{"line_number":3342,"context_line":""},{"line_number":3343,"context_line":"    def _classify_volume(self, ctxt, volumes):"},{"line_number":3344,"context_line":"        unrep_volumes \u003d []"},{"line_number":3345,"context_line":"        replica_volumes \u003d []"},{"line_number":3346,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_c960ba35","line":3343,"range":{"start_line":3343,"start_character":8,"end_line":3343,"end_character":24},"in_reply_to":"df3967d1_ceb680da","updated":"2017-08-01 08:49:25.000000000","message":"Yes, although all the volumes are replicated volumes, we still need to filters out those volume status is neither available nor in-use. The _get_volume_replicated_type can be removed here.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"        rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":3488,"context_line":"        if rccg:"},{"line_number":3489,"context_line":"            try:"},{"line_number":3490,"context_line":"                if rccg[\u0027primary\u0027] \u003d\u003d \u0027aux\u0027:"},{"line_number":3491,"context_line":"                    self._helpers.start_rccg(rccg_name, primary\u003d\u0027aux\u0027)"},{"line_number":3492,"context_line":"                else:"},{"line_number":3493,"context_line":"                    self._helpers.start_rccg(rccg_name)"},{"line_number":3494,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":3495,"context_line":"                model_update["},{"line_number":3496,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_2e798cfb","line":3493,"range":{"start_line":3490,"start_character":0,"end_line":3493,"end_character":55},"updated":"2017-08-01 02:33:17.000000000","message":"I am not sure about these code, do you mean that enable replication may be executed on primary or secondary? if yes, please note that after group has been failed over, user can not enable replication.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"        rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":3488,"context_line":"        if rccg:"},{"line_number":3489,"context_line":"            try:"},{"line_number":3490,"context_line":"                if rccg[\u0027primary\u0027] \u003d\u003d \u0027aux\u0027:"},{"line_number":3491,"context_line":"                    self._helpers.start_rccg(rccg_name, primary\u003d\u0027aux\u0027)"},{"line_number":3492,"context_line":"                else:"},{"line_number":3493,"context_line":"                    self._helpers.start_rccg(rccg_name)"},{"line_number":3494,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":3495,"context_line":"                model_update["},{"line_number":3496,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_89d63127","line":3493,"range":{"start_line":3490,"start_character":0,"end_line":3493,"end_character":55},"in_reply_to":"df3967d1_2e798cfb","updated":"2017-08-01 08:49:25.000000000","message":"No, The primary can have three values in svc, which are master, aux, and empty. This code is just used to specify the data copy direction. Although  user can not enable replication when group is failed over, this code is just to ensure the data is always synced between master and aux.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3494,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":3495,"context_line":"                model_update["},{"line_number":3496,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3497,"context_line":"                LOG.error(\"Failed to enable replcition group %(rccg)s. \""},{"line_number":3498,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3499,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3500,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_0e0b688e","line":3497,"range":{"start_line":3497,"start_character":44,"end_line":3497,"end_character":54},"updated":"2017-08-01 02:33:17.000000000","message":"replication?","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3494,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":3495,"context_line":"                model_update["},{"line_number":3496,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3497,"context_line":"                LOG.error(\"Failed to enable replcition group %(rccg)s. \""},{"line_number":3498,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3499,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3500,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_2f3ce5c6","line":3497,"range":{"start_line":3497,"start_character":44,"end_line":3497,"end_character":54},"in_reply_to":"df3967d1_0e0b688e","updated":"2017-08-01 08:49:25.000000000","message":"Hi jiamin, thanks for your comments. It is addressed in new patch.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3498,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3499,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3500,"context_line":"        else:"},{"line_number":3501,"context_line":"            LOG.error(\"Failed to enable replcition group: %(grp)s does not \""},{"line_number":3502,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3503,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3504,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_eeff0465","line":3501,"range":{"start_line":3501,"start_character":40,"end_line":3501,"end_character":50},"updated":"2017-08-01 02:33:17.000000000","message":"same","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3498,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3499,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3500,"context_line":"        else:"},{"line_number":3501,"context_line":"            LOG.error(\"Failed to enable replcition group: %(grp)s does not \""},{"line_number":3502,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3503,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3504,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_0f37e1e5","line":3501,"range":{"start_line":3501,"start_character":40,"end_line":3501,"end_character":50},"in_reply_to":"df3967d1_eeff0465","updated":"2017-08-01 08:49:25.000000000","message":"Hi jiamin, thanks for your comments. It is addressed in new patch.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3499,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3500,"context_line":"        else:"},{"line_number":3501,"context_line":"            LOG.error(\"Failed to enable replcition group: %(grp)s does not \""},{"line_number":3502,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3503,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3504,"context_line":""},{"line_number":3505,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_2e2bcceb","line":3502,"range":{"start_line":3502,"start_character":23,"end_line":3502,"end_character":27},"updated":"2017-08-01 02:33:17.000000000","message":"exist?","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3499,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3500,"context_line":"        else:"},{"line_number":3501,"context_line":"            LOG.error(\"Failed to enable replcition group: %(grp)s does not \""},{"line_number":3502,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3503,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3504,"context_line":""},{"line_number":3505,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_ef35bddb","line":3502,"range":{"start_line":3502,"start_character":23,"end_line":3502,"end_character":27},"in_reply_to":"df3967d1_2e2bcceb","updated":"2017-08-01 08:49:25.000000000","message":"Hi jiamin, thanks for your comments. It is addressed in new patch.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3504,"context_line":""},{"line_number":3505,"context_line":"        for vol in volumes:"},{"line_number":3506,"context_line":"            volumes_update.append("},{"line_number":3507,"context_line":"                {\u0027id\u0027: vol[\u0027id\u0027],"},{"line_number":3508,"context_line":"                 \u0027replication_status\u0027: model_update[\u0027replication_status\u0027]})"},{"line_number":3509,"context_line":"        LOG.debug(\u0027leave: enable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3510,"context_line":"        return model_update, volumes_update"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_ce39e041","line":3507,"range":{"start_line":3507,"start_character":23,"end_line":3507,"end_character":32},"updated":"2017-08-01 02:33:17.000000000","message":"vol.id?","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3504,"context_line":""},{"line_number":3505,"context_line":"        for vol in volumes:"},{"line_number":3506,"context_line":"            volumes_update.append("},{"line_number":3507,"context_line":"                {\u0027id\u0027: vol[\u0027id\u0027],"},{"line_number":3508,"context_line":"                 \u0027replication_status\u0027: model_update[\u0027replication_status\u0027]})"},{"line_number":3509,"context_line":"        LOG.debug(\u0027leave: enable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3510,"context_line":"        return model_update, volumes_update"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_af4d7573","line":3507,"range":{"start_line":3507,"start_character":23,"end_line":3507,"end_character":32},"in_reply_to":"df3967d1_ce39e041","updated":"2017-08-01 08:49:25.000000000","message":"Hi jiamin, thanks for your comments. It is addressed in new patch.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3527,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3528,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3529,"context_line":"        else:"},{"line_number":3530,"context_line":"            LOG.error(\"Failed to disable replcition group: %(grp)s does not \""},{"line_number":3531,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3532,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3533,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_ae6c5c36","line":3530,"range":{"start_line":3530,"start_character":41,"end_line":3530,"end_character":51},"updated":"2017-08-01 02:33:17.000000000","message":"replication?","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3527,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3528,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3529,"context_line":"        else:"},{"line_number":3530,"context_line":"            LOG.error(\"Failed to disable replcition group: %(grp)s does not \""},{"line_number":3531,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3532,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3533,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_a317cea3","line":3530,"range":{"start_line":3530,"start_character":41,"end_line":3530,"end_character":51},"in_reply_to":"df3967d1_ae6c5c36","updated":"2017-08-01 08:49:25.000000000","message":"Done","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3528,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3529,"context_line":"        else:"},{"line_number":3530,"context_line":"            LOG.error(\"Failed to disable replcition group: %(grp)s does not \""},{"line_number":3531,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3532,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3533,"context_line":""},{"line_number":3534,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_6e767409","line":3531,"range":{"start_line":3531,"start_character":23,"end_line":3531,"end_character":27},"updated":"2017-08-01 02:33:17.000000000","message":"exist?","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3528,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3529,"context_line":"        else:"},{"line_number":3530,"context_line":"            LOG.error(\"Failed to disable replcition group: %(grp)s does not \""},{"line_number":3531,"context_line":"                      \"exit in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3532,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3533,"context_line":""},{"line_number":3534,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_830e0a8b","line":3531,"range":{"start_line":3531,"start_character":23,"end_line":3531,"end_character":27},"in_reply_to":"df3967d1_6e767409","updated":"2017-08-01 08:49:25.000000000","message":"Done","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"ce0a8eba6395de752214bb28dd0b12bf6dfc783c","unresolved":false,"context_lines":[{"line_number":3533,"context_line":""},{"line_number":3534,"context_line":"        for vol in volumes:"},{"line_number":3535,"context_line":"            volumes_update.append("},{"line_number":3536,"context_line":"                {\u0027id\u0027: vol[\u0027id\u0027],"},{"line_number":3537,"context_line":"                 \u0027replication_status\u0027: model_update[\u0027replication_status\u0027]})"},{"line_number":3538,"context_line":"        LOG.debug(\u0027leave: disable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3539,"context_line":"        return model_update, volumes_update"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_4e73b016","line":3536,"range":{"start_line":3536,"start_character":23,"end_line":3536,"end_character":32},"updated":"2017-08-01 02:33:17.000000000","message":"vol.id?","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":3533,"context_line":""},{"line_number":3534,"context_line":"        for vol in volumes:"},{"line_number":3535,"context_line":"            volumes_update.append("},{"line_number":3536,"context_line":"                {\u0027id\u0027: vol[\u0027id\u0027],"},{"line_number":3537,"context_line":"                 \u0027replication_status\u0027: model_update[\u0027replication_status\u0027]})"},{"line_number":3538,"context_line":"        LOG.debug(\u0027leave: disable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3539,"context_line":"        return model_update, volumes_update"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_2323de07","line":3536,"range":{"start_line":3536,"start_character":23,"end_line":3536,"end_character":32},"in_reply_to":"df3967d1_4e73b016","updated":"2017-08-01 08:49:25.000000000","message":"Done","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b184c7a0e3297cc7ca29d955e0aede131757fa06","unresolved":false,"context_lines":[{"line_number":4644,"context_line":"                          \u0027replication group with non-replication volume\u0027"},{"line_number":4645,"context_line":"                          \u0027 type is not supported.\u0027)"},{"line_number":4646,"context_line":"                model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4647,"context_line":"                return model_update"},{"line_number":4648,"context_line":""},{"line_number":4649,"context_line":"        rccg_name \u003d storwize_const.RCCG_PREFIX + group.id"},{"line_number":4650,"context_line":"        rccg \u003d self._helpers.get_rccg(rccg_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_0c65afe1","line":4647,"updated":"2017-08-01 05:12:46.000000000","message":"return model_update, None, None?","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2bc6fdd341156e1aad085e6363bf4a85a9e073bb","unresolved":false,"context_lines":[{"line_number":4644,"context_line":"                          \u0027replication group with non-replication volume\u0027"},{"line_number":4645,"context_line":"                          \u0027 type is not supported.\u0027)"},{"line_number":4646,"context_line":"                model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4647,"context_line":"                return model_update"},{"line_number":4648,"context_line":""},{"line_number":4649,"context_line":"        rccg_name \u003d storwize_const.RCCG_PREFIX + group.id"},{"line_number":4650,"context_line":"        rccg \u003d self._helpers.get_rccg(rccg_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df3967d1_bdc7ef12","line":4647,"in_reply_to":"df3967d1_0c65afe1","updated":"2017-08-01 08:49:25.000000000","message":"Hi Yixuan, thanks for your comments. It\u0027s addressed in new patch.","commit_id":"b9ee1d87c371f4002b4015107681c6a0cbe36902"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"46e229d889dfc4d98a50e96643a1980724d8a921","unresolved":false,"context_lines":[{"line_number":377,"context_line":"        return self.run_ssh_info(ssh_cmd)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    # replication cg"},{"line_number":380,"context_line":"    def chrcrelationship(self, relationship, rccg, norccg\u003dFalse):"},{"line_number":381,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027chrcrelationship\u0027]"},{"line_number":382,"context_line":"        if rccg:"},{"line_number":383,"context_line":"            ssh_cmd.extend([\u0027-consistgrp\u0027, rccg])"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_54855e59","line":380,"updated":"2017-08-03 02:14:30.000000000","message":"Suggest to name as \"ch_rcrelationship_consistgrp\". Is it enough to use rccg to check -consistgrp or -noconsistgrp? Any reason we need both rccg and norccg here?","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"01dcb6c545dbc00dc6f25eac0efa59b3c3e1ca68","unresolved":false,"context_lines":[{"line_number":377,"context_line":"        return self.run_ssh_info(ssh_cmd)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    # replication cg"},{"line_number":380,"context_line":"    def chrcrelationship(self, relationship, rccg, norccg\u003dFalse):"},{"line_number":381,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027chrcrelationship\u0027]"},{"line_number":382,"context_line":"        if rccg:"},{"line_number":383,"context_line":"            ssh_cmd.extend([\u0027-consistgrp\u0027, rccg])"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_781ca277","line":380,"in_reply_to":"df3967d1_54855e59","updated":"2017-08-07 11:27:29.000000000","message":"Hi Chengyong, thanks for your comments. Yes, only rccg is enough here. It is addressed in new patch. All the function names here are the same with SVC CLI. So I still keep to use chrcrelationship here.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"46e229d889dfc4d98a50e96643a1980724d8a921","unresolved":false,"context_lines":[{"line_number":401,"context_line":"                   \u0027-cluster\u0027, system]"},{"line_number":402,"context_line":"        return self.run_ssh_check_created(ssh_cmd)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def rmrcconsistgrp(self, rccg):"},{"line_number":405,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027rmrcconsistgrp\u0027, \u0027-force\u0027, rccg]"},{"line_number":406,"context_line":"        return self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_14f476f1","line":404,"updated":"2017-08-03 02:14:30.000000000","message":"better to have force\u003dTrue","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"01dcb6c545dbc00dc6f25eac0efa59b3c3e1ca68","unresolved":false,"context_lines":[{"line_number":401,"context_line":"                   \u0027-cluster\u0027, system]"},{"line_number":402,"context_line":"        return self.run_ssh_check_created(ssh_cmd)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def rmrcconsistgrp(self, rccg):"},{"line_number":405,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027rmrcconsistgrp\u0027, \u0027-force\u0027, rccg]"},{"line_number":406,"context_line":"        return self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_9b174046","line":404,"in_reply_to":"df3967d1_14f476f1","updated":"2017-08-07 11:27:29.000000000","message":"Hi Chengyong, force will always be used here to remove rccg. However, it is better to add an option here in case it can be used in future. It is addressed in new patch.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"b403a872cf9b3ddccce02b45e78b48f66bd225ae","unresolved":false,"context_lines":[{"line_number":3083,"context_line":"                LOG.error(\u0027Fail to failback group %(grp)s during host \u0027"},{"line_number":3084,"context_line":"                          \u0027failback due to group does not exist on backend\u0027,"},{"line_number":3085,"context_line":"                          {\u0027grp\u0027: grp.id})"},{"line_number":3086,"context_line":"                grp_status \u003d fields.GroupStatus.ERROR"},{"line_number":3087,"context_line":""},{"line_number":3088,"context_line":"            # Update all the volumes\u0027 status in that group"},{"line_number":3089,"context_line":"            if grp_status:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_74b4e235","line":3086,"range":{"start_line":3086,"start_character":29,"end_line":3086,"end_character":53},"updated":"2017-08-02 04:29:44.000000000","message":"fields.ReplicationStatus.ERROR?","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"244e4755a52fa8b3fe3e53a303b6ef234ef8edaf","unresolved":false,"context_lines":[{"line_number":3083,"context_line":"                LOG.error(\u0027Fail to failback group %(grp)s during host \u0027"},{"line_number":3084,"context_line":"                          \u0027failback due to group does not exist on backend\u0027,"},{"line_number":3085,"context_line":"                          {\u0027grp\u0027: grp.id})"},{"line_number":3086,"context_line":"                grp_status \u003d fields.GroupStatus.ERROR"},{"line_number":3087,"context_line":""},{"line_number":3088,"context_line":"            # Update all the volumes\u0027 status in that group"},{"line_number":3089,"context_line":"            if grp_status:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_e4993b6e","line":3086,"range":{"start_line":3086,"start_character":29,"end_line":3086,"end_character":53},"in_reply_to":"df3967d1_74b4e235","updated":"2017-08-02 11:21:28.000000000","message":"Hi Jiamin, thanks for your comments. It\u0027s addressed in new patch.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"df736bf18c1d138782c9ed6c802292d991930669","unresolved":false,"context_lines":[{"line_number":3316,"context_line":"                                  if grp_update else None)"},{"line_number":3317,"context_line":"                except Exception as ex:"},{"line_number":3318,"context_line":"                    LOG.error(\u0027Fail to failover group %(grp)s during host \u0027"},{"line_number":3319,"context_line":"                              \u0027failover due to %(ex)s\u0027,"},{"line_number":3320,"context_line":"                              {\u0027grp\u0027: grp.id, \u0027error\u0027: ex})"},{"line_number":3321,"context_line":"                    grp_status \u003d fields.ReplicationStatus.ERROR"},{"line_number":3322,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_ee991a6e","line":3319,"updated":"2017-08-02 05:54:11.000000000","message":"\u0027failover due to %(error)s\u0027 ?","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"244e4755a52fa8b3fe3e53a303b6ef234ef8edaf","unresolved":false,"context_lines":[{"line_number":3316,"context_line":"                                  if grp_update else None)"},{"line_number":3317,"context_line":"                except Exception as ex:"},{"line_number":3318,"context_line":"                    LOG.error(\u0027Fail to failover group %(grp)s during host \u0027"},{"line_number":3319,"context_line":"                              \u0027failover due to %(ex)s\u0027,"},{"line_number":3320,"context_line":"                              {\u0027grp\u0027: grp.id, \u0027error\u0027: ex})"},{"line_number":3321,"context_line":"                    grp_status \u003d fields.ReplicationStatus.ERROR"},{"line_number":3322,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_64c66b4b","line":3319,"in_reply_to":"df3967d1_ee991a6e","updated":"2017-08-02 11:21:28.000000000","message":"Hi yixuan, thanks for your comments. It\u0027s addressed in new patch.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"b403a872cf9b3ddccce02b45e78b48f66bd225ae","unresolved":false,"context_lines":[{"line_number":3531,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":3532,"context_line":"                model_update["},{"line_number":3533,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3534,"context_line":"                LOG.error(\"Failed to disable replcition group %(rccg)s. \""},{"line_number":3535,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3536,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3537,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_745062d5","line":3534,"range":{"start_line":3534,"start_character":45,"end_line":3534,"end_character":55},"updated":"2017-08-02 04:29:44.000000000","message":"replication?","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"244e4755a52fa8b3fe3e53a303b6ef234ef8edaf","unresolved":false,"context_lines":[{"line_number":3531,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":3532,"context_line":"                model_update["},{"line_number":3533,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3534,"context_line":"                LOG.error(\"Failed to disable replcition group %(rccg)s. \""},{"line_number":3535,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":3536,"context_line":"                          {\u0027rccg\u0027: rccg_name, \u0027exception\u0027: err})"},{"line_number":3537,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_24de2311","line":3534,"range":{"start_line":3534,"start_character":45,"end_line":3534,"end_character":55},"in_reply_to":"df3967d1_745062d5","updated":"2017-08-02 11:21:28.000000000","message":"Hi Jiamin, thanks for your comments. It\u0027s addressed in new patch.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"46e229d889dfc4d98a50e96643a1980724d8a921","unresolved":false,"context_lines":[{"line_number":3716,"context_line":"                      \u0027primary\u003d%(primary)s\u0027,"},{"line_number":3717,"context_line":"                      {\u0027rccg\u0027: rccg[\u0027name\u0027], \u0027state\u0027: rccg[\u0027state\u0027],"},{"line_number":3718,"context_line":"                       \u0027primary\u0027: rccg[\u0027primary\u0027]})"},{"line_number":3719,"context_line":"            if rccg[\u0027state\u0027] \u003d\u003d storwize_const.REP_CONSIS_SYNC:"},{"line_number":3720,"context_line":"                return True"},{"line_number":3721,"context_line":"            if rccg[\u0027state\u0027] \u003d\u003d storwize_const.REP_IDL_DISC:"},{"line_number":3722,"context_line":"                msg \u003d (_(\u0027Wait synchronize failed. group: %(rccg)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_f3845f0e","line":3719,"range":{"start_line":3719,"start_character":12,"end_line":3719,"end_character":62},"updated":"2017-08-03 02:14:30.000000000","message":"To gmcv, the state will be storwize_const.REP_CONSIS_COPYING","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"01dcb6c545dbc00dc6f25eac0efa59b3c3e1ca68","unresolved":false,"context_lines":[{"line_number":3716,"context_line":"                      \u0027primary\u003d%(primary)s\u0027,"},{"line_number":3717,"context_line":"                      {\u0027rccg\u0027: rccg[\u0027name\u0027], \u0027state\u0027: rccg[\u0027state\u0027],"},{"line_number":3718,"context_line":"                       \u0027primary\u0027: rccg[\u0027primary\u0027]})"},{"line_number":3719,"context_line":"            if rccg[\u0027state\u0027] \u003d\u003d storwize_const.REP_CONSIS_SYNC:"},{"line_number":3720,"context_line":"                return True"},{"line_number":3721,"context_line":"            if rccg[\u0027state\u0027] \u003d\u003d storwize_const.REP_IDL_DISC:"},{"line_number":3722,"context_line":"                msg \u003d (_(\u0027Wait synchronize failed. group: %(rccg)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_1bf6b0fa","line":3719,"range":{"start_line":3719,"start_character":12,"end_line":3719,"end_character":62},"in_reply_to":"df3967d1_f3845f0e","updated":"2017-08-07 11:27:29.000000000","message":"Hi Chenyong, thanks a lot for your comments. It is addressed in new patch.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"b403a872cf9b3ddccce02b45e78b48f66bd225ae","unresolved":false,"context_lines":[{"line_number":4607,"context_line":"        volumes_model_update \u003d []"},{"line_number":4608,"context_line":"        rccg_name \u003d storwize_const.RCCG_PREFIX + group.id"},{"line_number":4609,"context_line":"        try:"},{"line_number":4610,"context_line":"            self._helpers.delete_rccg(rccg_name)"},{"line_number":4611,"context_line":"        except exception.VolumeBackendAPIException as err:"},{"line_number":4612,"context_line":"            LOG.error(\"Failed to delete rccg  %(vol)s. \""},{"line_number":4613,"context_line":"                      \"Exception: %(exception)s.\","}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_74f9824b","line":4610,"range":{"start_line":4610,"start_character":12,"end_line":4610,"end_character":48},"updated":"2017-08-02 04:29:44.000000000","message":"if failed to delete rccg, delete volumes in this group will be failed or not? if yes, it may be better to skip delete volumes when failed to delete their group.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"244e4755a52fa8b3fe3e53a303b6ef234ef8edaf","unresolved":false,"context_lines":[{"line_number":4607,"context_line":"        volumes_model_update \u003d []"},{"line_number":4608,"context_line":"        rccg_name \u003d storwize_const.RCCG_PREFIX + group.id"},{"line_number":4609,"context_line":"        try:"},{"line_number":4610,"context_line":"            self._helpers.delete_rccg(rccg_name)"},{"line_number":4611,"context_line":"        except exception.VolumeBackendAPIException as err:"},{"line_number":4612,"context_line":"            LOG.error(\"Failed to delete rccg  %(vol)s. \""},{"line_number":4613,"context_line":"                      \"Exception: %(exception)s.\","}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_a4fa1372","line":4610,"range":{"start_line":4610,"start_character":12,"end_line":4610,"end_character":48},"in_reply_to":"df3967d1_74f9824b","updated":"2017-08-02 11:21:28.000000000","message":"No, the volume can still be deleted if the rccg is deleted fail.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"46e229d889dfc4d98a50e96643a1980724d8a921","unresolved":false,"context_lines":[{"line_number":4674,"context_line":"                               \u0027vol_rc_type\u0027: rcrel[\u0027copy_type\u0027],"},{"line_number":4675,"context_line":"                               \u0027rccg_type\u0027: rccg[\u0027copy_type\u0027]})"},{"line_number":4676,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4677,"context_line":"                else:"},{"line_number":4678,"context_line":"                    self._helpers.chrcrelationship(rcrel[\u0027name\u0027], rccg_name)"},{"line_number":4679,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":4680,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_131ec36f","line":4677,"range":{"start_line":4677,"start_character":16,"end_line":4677,"end_character":20},"updated":"2017-08-03 02:14:30.000000000","message":"not sure if gmcv with different cycle_period_seconds can be added as one cg. Need check here if can not","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"01dcb6c545dbc00dc6f25eac0efa59b3c3e1ca68","unresolved":false,"context_lines":[{"line_number":4674,"context_line":"                               \u0027vol_rc_type\u0027: rcrel[\u0027copy_type\u0027],"},{"line_number":4675,"context_line":"                               \u0027rccg_type\u0027: rccg[\u0027copy_type\u0027]})"},{"line_number":4676,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4677,"context_line":"                else:"},{"line_number":4678,"context_line":"                    self._helpers.chrcrelationship(rcrel[\u0027name\u0027], rccg_name)"},{"line_number":4679,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":4680,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_5b69d81e","line":4677,"range":{"start_line":4677,"start_character":16,"end_line":4677,"end_character":20},"in_reply_to":"df3967d1_131ec36f","updated":"2017-08-07 11:27:29.000000000","message":"Here we just check the volume type. Other checks are done by SVC directly to give exact reason. For example, state, cycling_mode and cycle_period_seconds etc.  We can add all the check here.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"4a6022f89b3fef8a95d7facc24f240ba6cb80b9a","unresolved":false,"context_lines":[{"line_number":4254,"context_line":"        return self._stats"},{"line_number":4255,"context_line":""},{"line_number":4256,"context_line":"    # Add CG capability to generic volume groups"},{"line_number":4257,"context_line":"    def create_group(self, context, group):"},{"line_number":4258,"context_line":"        \"\"\"Creates a group."},{"line_number":4259,"context_line":""},{"line_number":4260,"context_line":"        :param context: the context of the caller."}],"source_content_type":"text/x-python","patch_set":9,"id":"df3967d1_8aa228fb","line":4257,"range":{"start_line":4257,"start_character":8,"end_line":4257,"end_character":20},"updated":"2017-08-04 07:14:49.000000000","message":"i think it is necessary to update the replication_status of group if its type enables consistent_group_replication_enabled, otherwise\nit will be always disabled.\n\nI have uploaded a patch for DS8K, but for DS8K, it needs to update replication_status of group in create_group_from_src too, because it allows user create group from replication group, but SVC not.\n\ncan you help me to review it, :), https://review.openstack.org/#/c/490762, thanks.","commit_id":"cf88dbea0e13a74685aed34afee7229fb7301c92"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"dfb392f4ec006b108672dba44e0b5192469e9069","unresolved":false,"context_lines":[{"line_number":4254,"context_line":"        return self._stats"},{"line_number":4255,"context_line":""},{"line_number":4256,"context_line":"    # Add CG capability to generic volume groups"},{"line_number":4257,"context_line":"    def create_group(self, context, group):"},{"line_number":4258,"context_line":"        \"\"\"Creates a group."},{"line_number":4259,"context_line":""},{"line_number":4260,"context_line":"        :param context: the context of the caller."}],"source_content_type":"text/x-python","patch_set":9,"id":"df3967d1_6d9b9e65","line":4257,"range":{"start_line":4257,"start_character":8,"end_line":4257,"end_character":20},"in_reply_to":"df3967d1_8aa228fb","updated":"2017-08-07 11:27:46.000000000","message":"Hi Jiamin, thanks a lot for your comments, It will be addressed in new patch.","commit_id":"cf88dbea0e13a74685aed34afee7229fb7301c92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"af9e28f4bd973aa48749302791973cbfa2dfd42a","unresolved":false,"context_lines":[{"line_number":4409,"context_line":"            LOG.error(\u0027Unable to create replication group: create replication \u0027"},{"line_number":4410,"context_line":"                      \u0027group from a replication group is not supported.\u0027)"},{"line_number":4411,"context_line":"            model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4412,"context_line":"            return model_update, None"},{"line_number":4413,"context_line":""},{"line_number":4414,"context_line":"        if not utils.is_group_a_cg_snapshot_type(group):"},{"line_number":4415,"context_line":"            # we\u0027ll rely on the generic volume groups implementation if it is"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f287b81_ff2e5641","line":4412,"range":{"start_line":4412,"start_character":12,"end_line":4412,"end_character":37},"updated":"2017-08-25 16:57:14.000000000","message":"Please raise VolumeBackendAPIException with the error message that this is not supported in this case.","commit_id":"1524013d48180ce67edf662c097948fdff7e41a4"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"5d65016096b8f68ebe3ddc439090da43e312f8d1","unresolved":false,"context_lines":[{"line_number":4409,"context_line":"            LOG.error(\u0027Unable to create replication group: create replication \u0027"},{"line_number":4410,"context_line":"                      \u0027group from a replication group is not supported.\u0027)"},{"line_number":4411,"context_line":"            model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4412,"context_line":"            return model_update, None"},{"line_number":4413,"context_line":""},{"line_number":4414,"context_line":"        if not utils.is_group_a_cg_snapshot_type(group):"},{"line_number":4415,"context_line":"            # we\u0027ll rely on the generic volume groups implementation if it is"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f287b81_6c43c9b0","line":4412,"range":{"start_line":4412,"start_character":12,"end_line":4412,"end_character":37},"in_reply_to":"7f287b81_ff2e5641","updated":"2017-08-28 13:14:38.000000000","message":"Hi Xing, thanks a lot for your comments. It is addressed in new patch.","commit_id":"1524013d48180ce67edf662c097948fdff7e41a4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"deb79ac004b57c5541ba8524a8429805ad758ed9","unresolved":false,"context_lines":[{"line_number":3798,"context_line":"            rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":3799,"context_line":"            if not rccg:"},{"line_number":3800,"context_line":"                msg \u003d (_(\u0027_replica_grp_ready: no group %(rccg)s is \u0027"},{"line_number":3801,"context_line":"                         \u0027exsited on backend. Please re-create the rccg and \u0027"},{"line_number":3802,"context_line":"                         \u0027synchronize the volumes on backend storage.\u0027),"},{"line_number":3803,"context_line":"                       {\u0027rccg\u0027: rccg_name})"},{"line_number":3804,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f287b81_5dc9c0a9","line":3801,"range":{"start_line":3801,"start_character":26,"end_line":3801,"end_character":33},"updated":"2017-08-29 02:01:39.000000000","message":"s/exsited/existing","commit_id":"eb258337e55acd4f1b6336cc5af1b97f7bccc3e8"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"c0b342008e40d1941162c1329f3e7b321ee641ff","unresolved":false,"context_lines":[{"line_number":3798,"context_line":"            rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":3799,"context_line":"            if not rccg:"},{"line_number":3800,"context_line":"                msg \u003d (_(\u0027_replica_grp_ready: no group %(rccg)s is \u0027"},{"line_number":3801,"context_line":"                         \u0027exsited on backend. Please re-create the rccg and \u0027"},{"line_number":3802,"context_line":"                         \u0027synchronize the volumes on backend storage.\u0027),"},{"line_number":3803,"context_line":"                       {\u0027rccg\u0027: rccg_name})"},{"line_number":3804,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f287b81_c5526a3b","line":3801,"range":{"start_line":3801,"start_character":26,"end_line":3801,"end_character":33},"in_reply_to":"7f287b81_5dc9c0a9","updated":"2017-08-29 11:42:36.000000000","message":"Hi Xing, thanks a lot for your comments. It\u0027s addressed in new patch.","commit_id":"eb258337e55acd4f1b6336cc5af1b97f7bccc3e8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e9d4a033ccce4377a75b8dc5d8cf9e2fe9c95153","unresolved":false,"context_lines":[{"line_number":3537,"context_line":"    # Replication Group (Tiramisu)"},{"line_number":3538,"context_line":"    def enable_replication(self, context, group, volumes):"},{"line_number":3539,"context_line":"        \"\"\"Enables replication for a group and volumes in the group.\"\"\""},{"line_number":3540,"context_line":"        LOG.debug(\u0027enter: enable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3541,"context_line":"        model_update \u003d {\u0027replication_status\u0027: fields.ReplicationStatus.ENABLED}"},{"line_number":3542,"context_line":"        volumes_update \u003d []"},{"line_number":3543,"context_line":"        rccg_name \u003d self._get_rccg_name(group)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_b2df6364","line":3540,"updated":"2017-08-31 11:59:10.000000000","message":"instead of doing this enter: leave: stuff, just use the cinder.utils trace decorator.  It does the same thing.","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"51d8f6386b57efd69d7ee9e872c4b0ad7aec6a5e","unresolved":false,"context_lines":[{"line_number":3537,"context_line":"    # Replication Group (Tiramisu)"},{"line_number":3538,"context_line":"    def enable_replication(self, context, group, volumes):"},{"line_number":3539,"context_line":"        \"\"\"Enables replication for a group and volumes in the group.\"\"\""},{"line_number":3540,"context_line":"        LOG.debug(\u0027enter: enable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3541,"context_line":"        model_update \u003d {\u0027replication_status\u0027: fields.ReplicationStatus.ENABLED}"},{"line_number":3542,"context_line":"        volumes_update \u003d []"},{"line_number":3543,"context_line":"        rccg_name \u003d self._get_rccg_name(group)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_fc748b00","line":3540,"in_reply_to":"7f287b81_b2df6364","updated":"2017-09-01 08:51:21.000000000","message":"Hi Walter, thanks a lot for your comments. It\u0027s addressed in new patch.","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e9d4a033ccce4377a75b8dc5d8cf9e2fe9c95153","unresolved":false,"context_lines":[{"line_number":3573,"context_line":""},{"line_number":3574,"context_line":"    def disable_replication(self, context, group, volumes):"},{"line_number":3575,"context_line":"        \"\"\"Disables replication for a group and volumes in the group.\"\"\""},{"line_number":3576,"context_line":"        LOG.debug(\u0027enter: disable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3577,"context_line":"        model_update \u003d {"},{"line_number":3578,"context_line":"            \u0027replication_status\u0027: fields.ReplicationStatus.DISABLED}"},{"line_number":3579,"context_line":"        volumes_update \u003d []"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_92d46749","line":3576,"updated":"2017-08-31 11:59:10.000000000","message":"same","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"51d8f6386b57efd69d7ee9e872c4b0ad7aec6a5e","unresolved":false,"context_lines":[{"line_number":3573,"context_line":""},{"line_number":3574,"context_line":"    def disable_replication(self, context, group, volumes):"},{"line_number":3575,"context_line":"        \"\"\"Disables replication for a group and volumes in the group.\"\"\""},{"line_number":3576,"context_line":"        LOG.debug(\u0027enter: disable_replication: group\u003d%(id)s\u0027, {\u0027id\u0027: group.id})"},{"line_number":3577,"context_line":"        model_update \u003d {"},{"line_number":3578,"context_line":"            \u0027replication_status\u0027: fields.ReplicationStatus.DISABLED}"},{"line_number":3579,"context_line":"        volumes_update \u003d []"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_dc71cf0e","line":3576,"in_reply_to":"7f287b81_92d46749","updated":"2017-09-01 08:51:21.000000000","message":"Done","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e9d4a033ccce4377a75b8dc5d8cf9e2fe9c95153","unresolved":false,"context_lines":[{"line_number":3609,"context_line":"                             secondary_backend_id\u003dNone):"},{"line_number":3610,"context_line":"        \"\"\"Fails over replication for a group and volumes in the group.\"\"\""},{"line_number":3611,"context_line":"        LOG.debug(\u0027enter: failover_replication: secondary_backend_id\u003d%(id)s\u0027,"},{"line_number":3612,"context_line":"                  {\u0027id\u0027: secondary_backend_id})"},{"line_number":3613,"context_line":"        volumes_model_update \u003d []"},{"line_number":3614,"context_line":"        model_update \u003d {}"},{"line_number":3615,"context_line":"        if not self._replica_enabled:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_32cdb3b6","line":3612,"updated":"2017-08-31 11:59:10.000000000","message":"same","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"51d8f6386b57efd69d7ee9e872c4b0ad7aec6a5e","unresolved":false,"context_lines":[{"line_number":3609,"context_line":"                             secondary_backend_id\u003dNone):"},{"line_number":3610,"context_line":"        \"\"\"Fails over replication for a group and volumes in the group.\"\"\""},{"line_number":3611,"context_line":"        LOG.debug(\u0027enter: failover_replication: secondary_backend_id\u003d%(id)s\u0027,"},{"line_number":3612,"context_line":"                  {\u0027id\u0027: secondary_backend_id})"},{"line_number":3613,"context_line":"        volumes_model_update \u003d []"},{"line_number":3614,"context_line":"        model_update \u003d {}"},{"line_number":3615,"context_line":"        if not self._replica_enabled:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_bc604337","line":3612,"in_reply_to":"7f287b81_32cdb3b6","updated":"2017-09-01 08:51:21.000000000","message":"Done","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"059b0f0246a28231a21531146684a6f43e2493d3","unresolved":false,"context_lines":[{"line_number":1907,"context_line":"    def get_rccg_info(self, volume_name):"},{"line_number":1908,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":1909,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":1910,"context_line":"            LOG.info(\"Unable to get remote copy information for \""},{"line_number":1911,"context_line":"                     \"volume %s\", volume_name)"},{"line_number":1912,"context_line":"            return None"},{"line_number":1913,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_147b2028","line":1910,"range":{"start_line":1910,"start_character":16,"end_line":1910,"end_character":20},"updated":"2017-10-09 17:05:18.000000000","message":"This seems like it should be a LOG.warning .","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":1907,"context_line":"    def get_rccg_info(self, volume_name):"},{"line_number":1908,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":1909,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":1910,"context_line":"            LOG.info(\"Unable to get remote copy information for \""},{"line_number":1911,"context_line":"                     \"volume %s\", volume_name)"},{"line_number":1912,"context_line":"            return None"},{"line_number":1913,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_87d2dd33","line":1910,"range":{"start_line":1910,"start_character":16,"end_line":1910,"end_character":20},"in_reply_to":"7f515b1d_147b2028","updated":"2017-10-10 11:15:35.000000000","message":"Hi Jay, thanks a lot for your comments. It is addressed in new patch.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"059b0f0246a28231a21531146684a6f43e2493d3","unresolved":false,"context_lines":[{"line_number":3099,"context_line":"                    grp_rep_status \u003d (grp_update[\u0027replication_status\u0027]"},{"line_number":3100,"context_line":"                                      if grp_update else None)"},{"line_number":3101,"context_line":"                except Exception as ex:"},{"line_number":3102,"context_line":"                    LOG.error(\u0027Fail to failback group %(grp)s during host \u0027"},{"line_number":3103,"context_line":"                              \u0027failback due to %(error)s\u0027,"},{"line_number":3104,"context_line":"                              {\u0027grp\u0027: grp.id, \u0027error\u0027: ex})"},{"line_number":3105,"context_line":"                    grp_rep_status \u003d fields.ReplicationStatus.ERROR"},{"line_number":3106,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_34605c01","line":3103,"range":{"start_line":3102,"start_character":30,"end_line":3103,"end_character":56},"updated":"2017-10-09 17:05:18.000000000","message":"Some of the log messages in here are inconsistent with the message format you use elsewhere.  In other places you have something like \"Fail to failback group %(grp)s during host failback due to: %(error)s\"  Where you have a \u0027:\u0027 to delineate the start of the error message.  Would be good to do the same with all of these messages.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3099,"context_line":"                    grp_rep_status \u003d (grp_update[\u0027replication_status\u0027]"},{"line_number":3100,"context_line":"                                      if grp_update else None)"},{"line_number":3101,"context_line":"                except Exception as ex:"},{"line_number":3102,"context_line":"                    LOG.error(\u0027Fail to failback group %(grp)s during host \u0027"},{"line_number":3103,"context_line":"                              \u0027failback due to %(error)s\u0027,"},{"line_number":3104,"context_line":"                              {\u0027grp\u0027: grp.id, \u0027error\u0027: ex})"},{"line_number":3105,"context_line":"                    grp_rep_status \u003d fields.ReplicationStatus.ERROR"},{"line_number":3106,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_07da6de8","line":3103,"range":{"start_line":3102,"start_character":30,"end_line":3103,"end_character":56},"in_reply_to":"7f515b1d_34605c01","updated":"2017-10-10 11:15:35.000000000","message":"Hi Jay, thanks a lot for your comments. It is addressed in new patch.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3122,"context_line":"                    else:"},{"line_number":3123,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d \u0027error\u0027"},{"line_number":3124,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3125,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3126,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3127,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3128,"context_line":"                    volumes_update.append(vol_update)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_7adc1d18","line":3125,"range":{"start_line":3125,"start_character":24,"end_line":3125,"end_character":34},"updated":"2017-10-10 07:24:27.000000000","message":"attach_status should be  fields.VolumeAttachStatus.ATTACHED","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3122,"context_line":"                    else:"},{"line_number":3123,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d \u0027error\u0027"},{"line_number":3124,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3125,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3126,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3127,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3128,"context_line":"                    volumes_update.append(vol_update)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_22279715","line":3125,"range":{"start_line":3125,"start_character":24,"end_line":3125,"end_character":34},"in_reply_to":"5f4e5783_7adc1d18","updated":"2017-10-10 11:15:35.000000000","message":"Hi Isaac, thanks a lot for your comments. It is addressed in new patch.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3124,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3125,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3126,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3127,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3128,"context_line":"                    volumes_update.append(vol_update)"},{"line_number":3129,"context_line":"                grp_status \u003d (fields.GroupStatus.AVAILABLE"},{"line_number":3130,"context_line":"                              if grp_rep_status \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_7a053d7a","line":3127,"range":{"start_line":3127,"start_character":29,"end_line":3127,"end_character":39},"updated":"2017-10-10 07:24:27.000000000","message":"fields.VolumeAttachStatus.DETACHED","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3124,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3125,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3126,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3127,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3128,"context_line":"                    volumes_update.append(vol_update)"},{"line_number":3129,"context_line":"                grp_status \u003d (fields.GroupStatus.AVAILABLE"},{"line_number":3130,"context_line":"                              if grp_rep_status \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_e275fffb","line":3127,"range":{"start_line":3127,"start_character":29,"end_line":3127,"end_character":39},"in_reply_to":"5f4e5783_7a053d7a","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3320,"context_line":"                           \u0027primary\u0027: rep_info[\u0027primary\u0027]})"},{"line_number":3321,"context_line":"                replica_obj.failover_volume_host(ctxt, volume)"},{"line_number":3322,"context_line":"                vol_status \u003d volume.previous_status or \u0027available\u0027"},{"line_number":3323,"context_line":"                vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3324,"context_line":"                                     else \u0027detached\u0027)"},{"line_number":3325,"context_line":"                model_updates \u003d {"},{"line_number":3326,"context_line":"                    \u0027replication_status\u0027: fields.ReplicationStatus.FAILED_OVER,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_5af4c15b","line":3323,"range":{"start_line":3323,"start_character":37,"end_line":3323,"end_character":47},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3320,"context_line":"                           \u0027primary\u0027: rep_info[\u0027primary\u0027]})"},{"line_number":3321,"context_line":"                replica_obj.failover_volume_host(ctxt, volume)"},{"line_number":3322,"context_line":"                vol_status \u003d volume.previous_status or \u0027available\u0027"},{"line_number":3323,"context_line":"                vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3324,"context_line":"                                     else \u0027detached\u0027)"},{"line_number":3325,"context_line":"                model_updates \u003d {"},{"line_number":3326,"context_line":"                    \u0027replication_status\u0027: fields.ReplicationStatus.FAILED_OVER,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_62d0efca","line":3323,"range":{"start_line":3323,"start_character":37,"end_line":3323,"end_character":47},"in_reply_to":"5f4e5783_5af4c15b","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3321,"context_line":"                replica_obj.failover_volume_host(ctxt, volume)"},{"line_number":3322,"context_line":"                vol_status \u003d volume.previous_status or \u0027available\u0027"},{"line_number":3323,"context_line":"                vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3324,"context_line":"                                     else \u0027detached\u0027)"},{"line_number":3325,"context_line":"                model_updates \u003d {"},{"line_number":3326,"context_line":"                    \u0027replication_status\u0027: fields.ReplicationStatus.FAILED_OVER,"},{"line_number":3327,"context_line":"                    \u0027previous_status\u0027: volume.status,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_1aee4988","line":3324,"range":{"start_line":3324,"start_character":42,"end_line":3324,"end_character":52},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3321,"context_line":"                replica_obj.failover_volume_host(ctxt, volume)"},{"line_number":3322,"context_line":"                vol_status \u003d volume.previous_status or \u0027available\u0027"},{"line_number":3323,"context_line":"                vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3324,"context_line":"                                     else \u0027detached\u0027)"},{"line_number":3325,"context_line":"                model_updates \u003d {"},{"line_number":3326,"context_line":"                    \u0027replication_status\u0027: fields.ReplicationStatus.FAILED_OVER,"},{"line_number":3327,"context_line":"                    \u0027previous_status\u0027: volume.status,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_42d5f3b8","line":3324,"range":{"start_line":3324,"start_character":42,"end_line":3324,"end_character":52},"in_reply_to":"5f4e5783_1aee4988","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3378,"context_line":"                    else:"},{"line_number":3379,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d \u0027error\u0027"},{"line_number":3380,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3381,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3382,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3383,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3384,"context_line":"                    volumes_update.append(vol_update)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_daad5132","line":3381,"range":{"start_line":3381,"start_character":24,"end_line":3381,"end_character":34},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3378,"context_line":"                    else:"},{"line_number":3379,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d \u0027error\u0027"},{"line_number":3380,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3381,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3382,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3383,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3384,"context_line":"                    volumes_update.append(vol_update)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_e22dffa8","line":3381,"range":{"start_line":3381,"start_character":24,"end_line":3381,"end_character":34},"in_reply_to":"5f4e5783_daad5132","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3380,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3381,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3382,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3383,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3384,"context_line":"                    volumes_update.append(vol_update)"},{"line_number":3385,"context_line":"                grp_status \u003d (fields.GroupStatus.AVAILABLE"},{"line_number":3386,"context_line":"                              if grp_rep_status \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_9aa7d950","line":3383,"range":{"start_line":3383,"start_character":29,"end_line":3383,"end_character":39},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3380,"context_line":"                    vol_update[\u0027updates\u0027][\u0027attach_status\u0027] \u003d ("},{"line_number":3381,"context_line":"                        \u0027attached\u0027 if"},{"line_number":3382,"context_line":"                        vol_update[\u0027updates\u0027][\u0027status\u0027] \u003d\u003d \u0027in-use\u0027"},{"line_number":3383,"context_line":"                        else \u0027detached\u0027)"},{"line_number":3384,"context_line":"                    volumes_update.append(vol_update)"},{"line_number":3385,"context_line":"                grp_status \u003d (fields.GroupStatus.AVAILABLE"},{"line_number":3386,"context_line":"                              if grp_rep_status \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_c22a038f","line":3383,"range":{"start_line":3383,"start_character":29,"end_line":3383,"end_character":39},"in_reply_to":"5f4e5783_9aa7d950","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3560,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3561,"context_line":"        else:"},{"line_number":3562,"context_line":"            if rccg:"},{"line_number":3563,"context_line":"                LOG.error(\"Unable to enable replication for group %(rccg)s \""},{"line_number":3564,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3565,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3566,"context_line":"            else:"},{"line_number":3567,"context_line":"                LOG.error(\"Failed to enable replication group: %(grp)s does \""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_ce1b5271","line":3564,"range":{"start_line":3563,"start_character":27,"end_line":3564,"end_character":54},"updated":"2017-10-10 07:24:27.000000000","message":"enable_replication on empty group is forbidden","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3560,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3561,"context_line":"        else:"},{"line_number":3562,"context_line":"            if rccg:"},{"line_number":3563,"context_line":"                LOG.error(\"Unable to enable replication for group %(rccg)s \""},{"line_number":3564,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3565,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3566,"context_line":"            else:"},{"line_number":3567,"context_line":"                LOG.error(\"Failed to enable replication group: %(grp)s does \""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_fdc12282","line":3564,"range":{"start_line":3563,"start_character":27,"end_line":3564,"end_character":54},"in_reply_to":"5f4e5783_ce1b5271","updated":"2017-10-10 11:15:35.000000000","message":"Hi Isaac, thanks a lot for your comments. It is addressed in new patch.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3564,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3565,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3566,"context_line":"            else:"},{"line_number":3567,"context_line":"                LOG.error(\"Failed to enable replication group: %(grp)s does \""},{"line_number":3568,"context_line":"                          \"not exist in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3569,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3570,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_0e3baad1","line":3567,"range":{"start_line":3567,"start_character":27,"end_line":3567,"end_character":61},"updated":"2017-10-10 07:24:27.000000000","message":"Fail to enable group replication","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3564,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3565,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3566,"context_line":"            else:"},{"line_number":3567,"context_line":"                LOG.error(\"Failed to enable replication group: %(grp)s does \""},{"line_number":3568,"context_line":"                          \"not exist in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3569,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3570,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_bdbbaa0c","line":3567,"range":{"start_line":3567,"start_character":27,"end_line":3567,"end_character":61},"in_reply_to":"5f4e5783_0e3baad1","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3593,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3594,"context_line":"        else:"},{"line_number":3595,"context_line":"            if rccg:"},{"line_number":3596,"context_line":"                LOG.error(\"Unable to disable replication for group %(rccg)s \""},{"line_number":3597,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3598,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3599,"context_line":"            else:"},{"line_number":3600,"context_line":"                LOG.error(\"Failed to disable replication group: %(grp)s does \""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_ee93aea2","line":3597,"range":{"start_line":3596,"start_character":27,"end_line":3597,"end_character":54},"updated":"2017-10-10 07:24:27.000000000","message":"disable_replication on empty group is forbidden","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3593,"context_line":"                    \u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3594,"context_line":"        else:"},{"line_number":3595,"context_line":"            if rccg:"},{"line_number":3596,"context_line":"                LOG.error(\"Unable to disable replication for group %(rccg)s \""},{"line_number":3597,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3598,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3599,"context_line":"            else:"},{"line_number":3600,"context_line":"                LOG.error(\"Failed to disable replication group: %(grp)s does \""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_bdc5ea5d","line":3597,"range":{"start_line":3596,"start_character":27,"end_line":3597,"end_character":54},"in_reply_to":"5f4e5783_ee93aea2","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3597,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3598,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3599,"context_line":"            else:"},{"line_number":3600,"context_line":"                LOG.error(\"Failed to disable replication group: %(grp)s does \""},{"line_number":3601,"context_line":"                          \"not exist in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3602,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3603,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_ae8db67c","line":3600,"range":{"start_line":3600,"start_character":27,"end_line":3600,"end_character":62},"updated":"2017-10-10 07:24:27.000000000","message":"Failed to disable group replication","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3597,"context_line":"                          \"due to it is an empty group.\","},{"line_number":3598,"context_line":"                          {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3599,"context_line":"            else:"},{"line_number":3600,"context_line":"                LOG.error(\"Failed to disable replication group: %(grp)s does \""},{"line_number":3601,"context_line":"                          \"not exist in backend.\", {\u0027grp\u0027: group.id})"},{"line_number":3602,"context_line":"            model_update[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ERROR"},{"line_number":3603,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_3dafba95","line":3600,"range":{"start_line":3600,"start_character":27,"end_line":3600,"end_character":62},"in_reply_to":"5f4e5783_ae8db67c","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3643,"context_line":""},{"line_number":3644,"context_line":"        for vol in volumes:"},{"line_number":3645,"context_line":"            vol_status \u003d vol.previous_status or \u0027available\u0027"},{"line_number":3646,"context_line":"            vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3647,"context_line":"                                 else \u0027detached\u0027)"},{"line_number":3648,"context_line":"            volume_model_update \u003d {\u0027id\u0027: vol.id,"},{"line_number":3649,"context_line":"                                   \u0027replication_status\u0027:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_8ee8ba16","line":3646,"range":{"start_line":3646,"start_character":33,"end_line":3646,"end_character":43},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3643,"context_line":""},{"line_number":3644,"context_line":"        for vol in volumes:"},{"line_number":3645,"context_line":"            vol_status \u003d vol.previous_status or \u0027available\u0027"},{"line_number":3646,"context_line":"            vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3647,"context_line":"                                 else \u0027detached\u0027)"},{"line_number":3648,"context_line":"            volume_model_update \u003d {\u0027id\u0027: vol.id,"},{"line_number":3649,"context_line":"                                   \u0027replication_status\u0027:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_9db7ced9","line":3646,"range":{"start_line":3646,"start_character":33,"end_line":3646,"end_character":43},"in_reply_to":"5f4e5783_8ee8ba16","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"        for vol in volumes:"},{"line_number":3645,"context_line":"            vol_status \u003d vol.previous_status or \u0027available\u0027"},{"line_number":3646,"context_line":"            vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3647,"context_line":"                                 else \u0027detached\u0027)"},{"line_number":3648,"context_line":"            volume_model_update \u003d {\u0027id\u0027: vol.id,"},{"line_number":3649,"context_line":"                                   \u0027replication_status\u0027:"},{"line_number":3650,"context_line":"                                       model_update[\u0027replication_status\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_2ef786f8","line":3647,"range":{"start_line":3647,"start_character":38,"end_line":3647,"end_character":48},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"        for vol in volumes:"},{"line_number":3645,"context_line":"            vol_status \u003d vol.previous_status or \u0027available\u0027"},{"line_number":3646,"context_line":"            vol_attach_status \u003d (\u0027attached\u0027 if vol_status \u003d\u003d \u0027in-use\u0027"},{"line_number":3647,"context_line":"                                 else \u0027detached\u0027)"},{"line_number":3648,"context_line":"            volume_model_update \u003d {\u0027id\u0027: vol.id,"},{"line_number":3649,"context_line":"                                   \u0027replication_status\u0027:"},{"line_number":3650,"context_line":"                                       model_update[\u0027replication_status\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_7dbc12bb","line":3647,"range":{"start_line":3647,"start_character":38,"end_line":3647,"end_character":48},"in_reply_to":"5f4e5783_2ef786f8","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":3669,"context_line":"            raise exception.UnableToFailOver(reason\u003dmsg)"},{"line_number":3670,"context_line":""},{"line_number":3671,"context_line":"        if rccg[\u0027relationship_count\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":3672,"context_line":"            msg \u003d (_(\"Unable to failback group %(rccg)s due to it is an \""},{"line_number":3673,"context_line":"                     \"empty group.\"), {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3674,"context_line":"            LOG.error(msg)"},{"line_number":3675,"context_line":"            raise exception.UnableToFailOver(reason\u003dmsg)"},{"line_number":3676,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_4ecbe2a4","line":3673,"range":{"start_line":3672,"start_character":22,"end_line":3673,"end_character":33},"updated":"2017-10-10 07:24:27.000000000","message":"Unable to failback empty group","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3669,"context_line":"            raise exception.UnableToFailOver(reason\u003dmsg)"},{"line_number":3670,"context_line":""},{"line_number":3671,"context_line":"        if rccg[\u0027relationship_count\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":3672,"context_line":"            msg \u003d (_(\"Unable to failback group %(rccg)s due to it is an \""},{"line_number":3673,"context_line":"                     \"empty group.\"), {\u0027rccg\u0027: rccg[\u0027name\u0027]})"},{"line_number":3674,"context_line":"            LOG.error(msg)"},{"line_number":3675,"context_line":"            raise exception.UnableToFailOver(reason\u003dmsg)"},{"line_number":3676,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_ddc42643","line":3673,"range":{"start_line":3672,"start_character":22,"end_line":3673,"end_character":33},"in_reply_to":"5f4e5783_4ecbe2a4","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"059b0f0246a28231a21531146684a6f43e2493d3","unresolved":false,"context_lines":[{"line_number":3779,"context_line":"                    else:"},{"line_number":3780,"context_line":"                        self._helpers.start_rccg(rccg_name, primary\u003d\u0027aux\u0027)"},{"line_number":3781,"context_line":"            else:"},{"line_number":3782,"context_line":"                LOG.warning(\u0027group %(grp)s is not sync.\u0027)"},{"line_number":3783,"context_line":"        except exception.VolumeBackendAPIException as ex:"},{"line_number":3784,"context_line":"            LOG.warning(\u0027Fail to copy data from aux group %(rccg)s to master \u0027"},{"line_number":3785,"context_line":"                        \u0027group. master. Please re-check the relationship and \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_9467104e","line":3782,"range":{"start_line":3782,"start_character":46,"end_line":3782,"end_character":54},"updated":"2017-10-09 17:05:18.000000000","message":"not in sync","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3779,"context_line":"                    else:"},{"line_number":3780,"context_line":"                        self._helpers.start_rccg(rccg_name, primary\u003d\u0027aux\u0027)"},{"line_number":3781,"context_line":"            else:"},{"line_number":3782,"context_line":"                LOG.warning(\u0027group %(grp)s is not sync.\u0027)"},{"line_number":3783,"context_line":"        except exception.VolumeBackendAPIException as ex:"},{"line_number":3784,"context_line":"            LOG.warning(\u0027Fail to copy data from aux group %(rccg)s to master \u0027"},{"line_number":3785,"context_line":"                        \u0027group. master. Please re-check the relationship and \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_5d34b64a","line":3782,"range":{"start_line":3782,"start_character":46,"end_line":3782,"end_character":54},"in_reply_to":"7f515b1d_9467104e","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"059b0f0246a28231a21531146684a6f43e2493d3","unresolved":false,"context_lines":[{"line_number":3782,"context_line":"                LOG.warning(\u0027group %(grp)s is not sync.\u0027)"},{"line_number":3783,"context_line":"        except exception.VolumeBackendAPIException as ex:"},{"line_number":3784,"context_line":"            LOG.warning(\u0027Fail to copy data from aux group %(rccg)s to master \u0027"},{"line_number":3785,"context_line":"                        \u0027group. master. Please re-check the relationship and \u0027"},{"line_number":3786,"context_line":"                        \u0027synchronize the group on backend storage. error\u003d\u0027"},{"line_number":3787,"context_line":"                        \u0027%(error)s\u0027, {\u0027rccg\u0027: rccg[\u0027name\u0027], \u0027error\u0027: ex})"},{"line_number":3788,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_d448e8b3","line":3785,"range":{"start_line":3785,"start_character":31,"end_line":3785,"end_character":39},"updated":"2017-10-09 17:05:18.000000000","message":"I think this needs to be removed.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3782,"context_line":"                LOG.warning(\u0027group %(grp)s is not sync.\u0027)"},{"line_number":3783,"context_line":"        except exception.VolumeBackendAPIException as ex:"},{"line_number":3784,"context_line":"            LOG.warning(\u0027Fail to copy data from aux group %(rccg)s to master \u0027"},{"line_number":3785,"context_line":"                        \u0027group. master. Please re-check the relationship and \u0027"},{"line_number":3786,"context_line":"                        \u0027synchronize the group on backend storage. error\u003d\u0027"},{"line_number":3787,"context_line":"                        \u0027%(error)s\u0027, {\u0027rccg\u0027: rccg[\u0027name\u0027], \u0027error\u0027: ex})"},{"line_number":3788,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_3d87bada","line":3785,"range":{"start_line":3785,"start_character":31,"end_line":3785,"end_character":39},"in_reply_to":"7f515b1d_d448e8b3","updated":"2017-10-10 11:15:35.000000000","message":"Yes, it is removed in new patch.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"059b0f0246a28231a21531146684a6f43e2493d3","unresolved":false,"context_lines":[{"line_number":3793,"context_line":"        def _replica_grp_ready():"},{"line_number":3794,"context_line":"            rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":3795,"context_line":"            if not rccg:"},{"line_number":3796,"context_line":"                msg \u003d (_(\u0027_replica_grp_ready: no group %(rccg)s is \u0027"},{"line_number":3797,"context_line":"                         \u0027existing on backend. Please re-create the rccg and \u0027"},{"line_number":3798,"context_line":"                         \u0027synchronize the volumes on backend storage.\u0027),"},{"line_number":3799,"context_line":"                       {\u0027rccg\u0027: rccg_name})"},{"line_number":3800,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_34dbbced","line":3797,"range":{"start_line":3796,"start_character":63,"end_line":3797,"end_character":37},"updated":"2017-10-09 17:05:18.000000000","message":"exists on the","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":3793,"context_line":"        def _replica_grp_ready():"},{"line_number":3794,"context_line":"            rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":3795,"context_line":"            if not rccg:"},{"line_number":3796,"context_line":"                msg \u003d (_(\u0027_replica_grp_ready: no group %(rccg)s is \u0027"},{"line_number":3797,"context_line":"                         \u0027existing on backend. Please re-create the rccg and \u0027"},{"line_number":3798,"context_line":"                         \u0027synchronize the volumes on backend storage.\u0027),"},{"line_number":3799,"context_line":"                       {\u0027rccg\u0027: rccg_name})"},{"line_number":3800,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_1d03de44","line":3797,"range":{"start_line":3796,"start_character":63,"end_line":3797,"end_character":37},"in_reply_to":"7f515b1d_34dbbced","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":4739,"context_line":"        rccg_name \u003d self._get_rccg_name(group)"},{"line_number":4740,"context_line":"        rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":4741,"context_line":"        if not rccg:"},{"line_number":4742,"context_line":"            LOG.error(\"Failed to update rccg: %(grp)s does not exist in \""},{"line_number":4743,"context_line":"                      \"backend.\", {\u0027grp\u0027: group.id})"},{"line_number":4744,"context_line":"            model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4745,"context_line":"            return model_update, None, None"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_6e09fedb","line":4742,"range":{"start_line":4742,"start_character":40,"end_line":4742,"end_character":44},"updated":"2017-10-10 07:24:27.000000000","message":"Dot use synonyms in log messages","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":4739,"context_line":"        rccg_name \u003d self._get_rccg_name(group)"},{"line_number":4740,"context_line":"        rccg \u003d self._helpers.get_rccg(rccg_name)"},{"line_number":4741,"context_line":"        if not rccg:"},{"line_number":4742,"context_line":"            LOG.error(\"Failed to update rccg: %(grp)s does not exist in \""},{"line_number":4743,"context_line":"                      \"backend.\", {\u0027grp\u0027: group.id})"},{"line_number":4744,"context_line":"            model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4745,"context_line":"            return model_update, None, None"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_bdf96a4e","line":4742,"range":{"start_line":4742,"start_character":40,"end_line":4742,"end_character":44},"in_reply_to":"5f4e5783_6e09fedb","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":4749,"context_line":"            try:"},{"line_number":4750,"context_line":"                rcrel \u003d self._helpers.get_relationship_info(volume.name)"},{"line_number":4751,"context_line":"                if not rcrel:"},{"line_number":4752,"context_line":"                    LOG.error(\"Failed to update rccg: remote copy relationship\""},{"line_number":4753,"context_line":"                              \" of %(vol)s does not exist in backend.\","},{"line_number":4754,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4755,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_0ef84ac2","line":4752,"range":{"start_line":4752,"start_character":48,"end_line":4752,"end_character":52},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":4749,"context_line":"            try:"},{"line_number":4750,"context_line":"                rcrel \u003d self._helpers.get_relationship_info(volume.name)"},{"line_number":4751,"context_line":"                if not rcrel:"},{"line_number":4752,"context_line":"                    LOG.error(\"Failed to update rccg: remote copy relationship\""},{"line_number":4753,"context_line":"                              \" of %(vol)s does not exist in backend.\","},{"line_number":4754,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4755,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_7dc2d2eb","line":4752,"range":{"start_line":4752,"start_character":48,"end_line":4752,"end_character":52},"in_reply_to":"5f4e5783_0ef84ac2","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":4783,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":4784,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4785,"context_line":"                LOG.error(\"Failed to add the remote copy of volume %(vol)s to \""},{"line_number":4786,"context_line":"                          \"rccg. Exception: %(exception)s.\","},{"line_number":4787,"context_line":"                          {\u0027vol\u0027: volume.name, \u0027exception\u0027: err})"},{"line_number":4788,"context_line":""},{"line_number":4789,"context_line":"        # Remove remote copy relationship from rccg"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_ce0112b2","line":4786,"range":{"start_line":4786,"start_character":27,"end_line":4786,"end_character":31},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":4783,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":4784,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4785,"context_line":"                LOG.error(\"Failed to add the remote copy of volume %(vol)s to \""},{"line_number":4786,"context_line":"                          \"rccg. Exception: %(exception)s.\","},{"line_number":4787,"context_line":"                          {\u0027vol\u0027: volume.name, \u0027exception\u0027: err})"},{"line_number":4788,"context_line":""},{"line_number":4789,"context_line":"        # Remove remote copy relationship from rccg"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_9d4b4e86","line":4786,"range":{"start_line":4786,"start_character":27,"end_line":4786,"end_character":31},"in_reply_to":"5f4e5783_ce0112b2","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":4791,"context_line":"            try:"},{"line_number":4792,"context_line":"                rcrel \u003d self._helpers.get_relationship_info(volume.name)"},{"line_number":4793,"context_line":"                if not rcrel:"},{"line_number":4794,"context_line":"                    LOG.error(\"Failed to update rccg: remote copy relationship\""},{"line_number":4795,"context_line":"                              \" of %(vol)s does not exist in backend.\","},{"line_number":4796,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4797,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_8e2d5a48","line":4794,"range":{"start_line":4794,"start_character":48,"end_line":4794,"end_character":52},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":4791,"context_line":"            try:"},{"line_number":4792,"context_line":"                rcrel \u003d self._helpers.get_relationship_info(volume.name)"},{"line_number":4793,"context_line":"                if not rcrel:"},{"line_number":4794,"context_line":"                    LOG.error(\"Failed to update rccg: remote copy relationship\""},{"line_number":4795,"context_line":"                              \" of %(vol)s does not exist in backend.\","},{"line_number":4796,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4797,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_bd55ea1f","line":4794,"range":{"start_line":4794,"start_character":48,"end_line":4794,"end_character":52},"in_reply_to":"5f4e5783_8e2d5a48","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4a382275688a5f39d70f758903584483c880a19f","unresolved":false,"context_lines":[{"line_number":4800,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":4801,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4802,"context_line":"                LOG.error(\"Failed to remove the remote copy of volume %(vol)s \""},{"line_number":4803,"context_line":"                          \"from rccg. Exception: %(exception)s.\","},{"line_number":4804,"context_line":"                          {\u0027vol\u0027: volume.name, \u0027exception\u0027: err})"},{"line_number":4805,"context_line":"        return model_update, None, None"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_6ed7be25","line":4803,"range":{"start_line":4803,"start_character":32,"end_line":4803,"end_character":36},"updated":"2017-10-10 07:24:27.000000000","message":"ditto","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_fc.py":[{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"b403a872cf9b3ddccce02b45e78b48f66bd225ae","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        except Exception as ex:"},{"line_number":215,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":216,"context_line":"                LOG.error(\u0027initialize_connection: Failed to attach volume \u0027"},{"line_number":217,"context_line":"                          \u0027%(vol)s due to %(ex)s.\u0027, {\u0027vol\u0027: volume.name,"},{"line_number":218,"context_line":"                                                     \u0027ex\u0027: ex})"},{"line_number":219,"context_line":"                self._do_terminate_connection(volume, connector)"},{"line_number":220,"context_line":"                LOG.error(\u0027initialize_connection: Failed \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_7ff95b4b","line":217,"range":{"start_line":217,"start_character":60,"end_line":217,"end_character":71},"updated":"2017-08-02 04:29:44.000000000","message":"using volume.id may be better, volume.name is not unique.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"244e4755a52fa8b3fe3e53a303b6ef234ef8edaf","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        except Exception as ex:"},{"line_number":215,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":216,"context_line":"                LOG.error(\u0027initialize_connection: Failed to attach volume \u0027"},{"line_number":217,"context_line":"                          \u0027%(vol)s due to %(ex)s.\u0027, {\u0027vol\u0027: volume.name,"},{"line_number":218,"context_line":"                                                     \u0027ex\u0027: ex})"},{"line_number":219,"context_line":"                self._do_terminate_connection(volume, connector)"},{"line_number":220,"context_line":"                LOG.error(\u0027initialize_connection: Failed \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df3967d1_e4b81b77","line":217,"range":{"start_line":217,"start_character":60,"end_line":217,"end_character":71},"in_reply_to":"df3967d1_7ff95b4b","updated":"2017-08-02 11:21:28.000000000","message":"Hi Jiamin, since volume.name is used to create volume in svc, so it\u0027s better to use volume.name.","commit_id":"3421eb62f0dc9a6e6d95af705e482b76d901eb9e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e9d4a033ccce4377a75b8dc5d8cf9e2fe9c95153","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                properties[\u0027zvm_fcp\u0027] \u003d connector[\u0027zvm_fcp\u0027]"},{"line_number":214,"context_line":"        except Exception as ex:"},{"line_number":215,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":216,"context_line":"                LOG.error(\u0027initialize_connection: Failed to attach volume \u0027"},{"line_number":217,"context_line":"                          \u0027%(vol)s due to %(ex)s.\u0027, {\u0027vol\u0027: volume.name,"},{"line_number":218,"context_line":"                                                     \u0027ex\u0027: ex})"},{"line_number":219,"context_line":"                self._do_terminate_connection(volume, connector)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_d28f8f72","line":216,"updated":"2017-08-31 11:59:10.000000000","message":"Failed to export volume","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"51d8f6386b57efd69d7ee9e872c4b0ad7aec6a5e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                properties[\u0027zvm_fcp\u0027] \u003d connector[\u0027zvm_fcp\u0027]"},{"line_number":214,"context_line":"        except Exception as ex:"},{"line_number":215,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":216,"context_line":"                LOG.error(\u0027initialize_connection: Failed to attach volume \u0027"},{"line_number":217,"context_line":"                          \u0027%(vol)s due to %(ex)s.\u0027, {\u0027vol\u0027: volume.name,"},{"line_number":218,"context_line":"                                                     \u0027ex\u0027: ex})"},{"line_number":219,"context_line":"                self._do_terminate_connection(volume, connector)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_ff335df5","line":216,"in_reply_to":"7f287b81_d28f8f72","updated":"2017-09-01 08:51:21.000000000","message":"Done","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_iscsi.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e9d4a033ccce4377a75b8dc5d8cf9e2fe9c95153","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                                        node_state)"},{"line_number":167,"context_line":"        except Exception as ex:"},{"line_number":168,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":169,"context_line":"                LOG.error(\u0027initialize_connection: Failed to attach volume \u0027"},{"line_number":170,"context_line":"                          \u0027%(vol)s due to %(ex)s.\u0027, {\u0027vol\u0027: volume.name,"},{"line_number":171,"context_line":"                                                     \u0027ex\u0027: ex})"},{"line_number":172,"context_line":"                self._do_terminate_connection(volume, connector)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_9286a765","line":169,"updated":"2017-08-31 11:59:10.000000000","message":"should be failed to export volume","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"51d8f6386b57efd69d7ee9e872c4b0ad7aec6a5e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                                        node_state)"},{"line_number":167,"context_line":"        except Exception as ex:"},{"line_number":168,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":169,"context_line":"                LOG.error(\u0027initialize_connection: Failed to attach volume \u0027"},{"line_number":170,"context_line":"                          \u0027%(vol)s due to %(ex)s.\u0027, {\u0027vol\u0027: volume.name,"},{"line_number":171,"context_line":"                                                     \u0027ex\u0027: ex})"},{"line_number":172,"context_line":"                self._do_terminate_connection(volume, connector)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_9f50d90c","line":169,"in_reply_to":"7f287b81_9286a765","updated":"2017-09-01 08:51:21.000000000","message":"Done","commit_id":"2e7d1cf34c04acc70bbcdf1e3a7b7c60c317fde4"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"059b0f0246a28231a21531146684a6f43e2493d3","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        2.2.2 - Add replication group support"},{"line_number":95,"context_line":"    \"\"\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    VERSION \u003d \"2.2.2\""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":100,"context_line":"    CI_WIKI_NAME \u003d \"IBM_STORAGE_CI\""}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_941f106b","line":97,"range":{"start_line":97,"start_character":14,"end_line":97,"end_character":21},"updated":"2017-10-09 17:05:18.000000000","message":"Yikes, this is confusing.  You have different versions now for the iSCSI and FC driver!?!","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        2.2.2 - Add replication group support"},{"line_number":95,"context_line":"    \"\"\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    VERSION \u003d \"2.2.2\""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":100,"context_line":"    CI_WIKI_NAME \u003d \"IBM_STORAGE_CI\""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f4e5783_989a3cc3","line":97,"range":{"start_line":97,"start_character":14,"end_line":97,"end_character":21},"in_reply_to":"7f515b1d_941f106b","updated":"2017-10-10 11:15:35.000000000","message":"Hi Jay, yes, since we fix some issue only for fc, so the iSCSI and FC driver version is different.","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"}],"releasenotes/notes/storwize-cg-replication-b038ff0d39fe909f.yaml":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"059b0f0246a28231a21531146684a6f43e2493d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add consistent replication group support in Storwize cinder driver."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"7f515b1d_340e1c3b","line":3,"range":{"start_line":3,"start_character":57,"end_line":3,"end_character":63},"updated":"2017-10-09 17:05:18.000000000","message":"Cinder","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"238c2d945d8b8943630560c42985804f52893d3e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add consistent replication group support in Storwize cinder driver."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5f4e5783_53d027ca","line":3,"range":{"start_line":3,"start_character":57,"end_line":3,"end_character":63},"in_reply_to":"7f515b1d_340e1c3b","updated":"2017-10-10 11:15:35.000000000","message":"Done","commit_id":"78868bd330d5bdeacf2857b13bdef78ae87f5728"}]}
