)]}'
{"cinder/volume/drivers/dell_emc/vmax/common.py":[{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":3629,"context_line":"        :param vol_grp_name: the group name"},{"line_number":3630,"context_line":"        :param secondary_backend_id: the secondary backend id - default None"},{"line_number":3631,"context_line":"        :param host: flag to indicate if whole host is being failed over"},{"line_number":3632,"context_line":"        :returns: model_update, None"},{"line_number":3633,"context_line":"        \"\"\""},{"line_number":3634,"context_line":"        model_update \u003d {}"},{"line_number":3635,"context_line":"        vol_model_updates \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_f39edeb6","line":3632,"updated":"2017-10-20 10:54:14.000000000","message":"vol_model_updates instead of None","commit_id":"afbdb0fbfc156c650fda3b2f224b1ef810b77dd2"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":3629,"context_line":"        :param vol_grp_name: the group name"},{"line_number":3630,"context_line":"        :param secondary_backend_id: the secondary backend id - default None"},{"line_number":3631,"context_line":"        :param host: flag to indicate if whole host is being failed over"},{"line_number":3632,"context_line":"        :returns: model_update, None"},{"line_number":3633,"context_line":"        \"\"\""},{"line_number":3634,"context_line":"        model_update \u003d {}"},{"line_number":3635,"context_line":"        vol_model_updates \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_93dd4344","line":3632,"in_reply_to":"7f515b1d_f39edeb6","updated":"2017-10-20 11:33:48.000000000","message":"Done","commit_id":"afbdb0fbfc156c650fda3b2f224b1ef810b77dd2"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":2210,"context_line":"        \"\"\"Add an async volume to its rdf management group."},{"line_number":2211,"context_line":""},{"line_number":2212,"context_line":"        :param array: the array serial number"},{"line_number":2213,"context_line":"        :param extra_specs: the extra specifications"},{"line_number":2214,"context_line":"        \"\"\""},{"line_number":2215,"context_line":"        group_name \u003d self.utils.get_async_rdf_managed_grp_name("},{"line_number":2216,"context_line":"            self.rep_config)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_61bb1472","line":2213,"updated":"2017-10-20 10:54:14.000000000","message":"device_id, volume_name, remote_array, target_device_id missing :param","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":2210,"context_line":"        \"\"\"Add an async volume to its rdf management group."},{"line_number":2211,"context_line":""},{"line_number":2212,"context_line":"        :param array: the array serial number"},{"line_number":2213,"context_line":"        :param extra_specs: the extra specifications"},{"line_number":2214,"context_line":"        \"\"\""},{"line_number":2215,"context_line":"        group_name \u003d self.utils.get_async_rdf_managed_grp_name("},{"line_number":2216,"context_line":"            self.rep_config)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_93b663fa","line":2213,"in_reply_to":"3f4b6375_61bb1472","updated":"2017-10-20 11:33:48.000000000","message":"Done","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":2219,"context_line":"            array, device_id, group_name, volume_name, extra_specs)"},{"line_number":2220,"context_line":"        # Add remote volume"},{"line_number":2221,"context_line":"        self.provision.get_or_create_group("},{"line_number":2222,"context_line":"            remote_array, group_name, extra_specs)"},{"line_number":2223,"context_line":"        self.masking.add_volume_to_storage_group("},{"line_number":2224,"context_line":"            remote_array, target_device_id,"},{"line_number":2225,"context_line":"            group_name, volume_name, extra_specs)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_8146107c","line":2222,"updated":"2017-10-20 10:54:14.000000000","message":"Does get_or_create_group need a return value?  Or error handling if None?","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":2219,"context_line":"            array, device_id, group_name, volume_name, extra_specs)"},{"line_number":2220,"context_line":"        # Add remote volume"},{"line_number":2221,"context_line":"        self.provision.get_or_create_group("},{"line_number":2222,"context_line":"            remote_array, group_name, extra_specs)"},{"line_number":2223,"context_line":"        self.masking.add_volume_to_storage_group("},{"line_number":2224,"context_line":"            remote_array, target_device_id,"},{"line_number":2225,"context_line":"            group_name, volume_name, extra_specs)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_739c075d","line":2222,"in_reply_to":"3f4b6375_8146107c","updated":"2017-10-20 11:33:48.000000000","message":"It returns the group_name, but this value isn\u0027t required here. This method checks if the group exists on the array -if it cannot be found, it will be created. If there is an error creating the group, an exception will be thrown. Unless I\u0027ve missed something, there won\u0027t be a scenario where this could be None. I will add a try and except clause here to better explain the error should there be an issue with creating the group. Thanks for the feedback!","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":2839,"context_line":"        :param context: the context"},{"line_number":2840,"context_line":"        :param group: the group object to be created"},{"line_number":2841,"context_line":"        :returns: dict -- modelUpdate \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":2842,"context_line":"        :raises: VolumeBackendAPIException, NotImplementedError"},{"line_number":2843,"context_line":"        \"\"\""},{"line_number":2844,"context_line":"        if (not volume_utils.is_group_a_cg_snapshot_type(group)"},{"line_number":2845,"context_line":"                and not group.is_replicated):"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_410ed83b","line":2842,"updated":"2017-10-20 10:54:14.000000000","message":"InvalidInput also","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":2839,"context_line":"        :param context: the context"},{"line_number":2840,"context_line":"        :param group: the group object to be created"},{"line_number":2841,"context_line":"        :returns: dict -- modelUpdate \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":2842,"context_line":"        :raises: VolumeBackendAPIException, NotImplementedError"},{"line_number":2843,"context_line":"        \"\"\""},{"line_number":2844,"context_line":"        if (not volume_utils.is_group_a_cg_snapshot_type(group)"},{"line_number":2845,"context_line":"                and not group.is_replicated):"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_13f4b385","line":2842,"in_reply_to":"3f4b6375_410ed83b","updated":"2017-10-20 11:33:48.000000000","message":"Done","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c9c3b2a4fbfa740cfca68393d8da9e6e0e17448a","unresolved":false,"context_lines":[{"line_number":2233,"context_line":"        except Exception as e:"},{"line_number":2234,"context_line":"            exception_message \u003d ("},{"line_number":2235,"context_line":"                _(\u0027Exception occurred adding volume %(vol)s to its async \u0027"},{"line_number":2236,"context_line":"                  \u0027rdf management group - the exception received was %(e)s\u0027)"},{"line_number":2237,"context_line":"                % {\u0027vol\u0027: volume_name, \u0027e\u0027: six.text_type(e)})"},{"line_number":2238,"context_line":"            LOG.error(exception_message)"},{"line_number":2239,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexception_message)"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_6746a47f","line":2236,"range":{"start_line":2236,"start_character":65,"end_line":2236,"end_character":68},"updated":"2017-12-24 19:25:23.000000000","message":"was:","commit_id":"9f9d58700d0c990c149b2947cc8686414e10e5af"}],"cinder/volume/drivers/dell_emc/vmax/provision.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"18b2d3549fd041d902488c26a98da4502f90c82f","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        LOG.info(\"Splitting rdf pair: source device: %(src)s \""},{"line_number":417,"context_line":"                 \"target device: %(tgt)s.\","},{"line_number":418,"context_line":"                 {\u0027src\u0027: device_id, \u0027tgt\u0027: target_device})"},{"line_number":419,"context_line":"        if state.lower() \u003d\u003d \u0027synchronized\u0027:"},{"line_number":420,"context_line":"            self.rest.modify_rdf_device_pair("},{"line_number":421,"context_line":"                array, device_id, rdf_group, rep_extra_specs, split\u003dTrue)"},{"line_number":422,"context_line":"        elif state.lower() in [\u0027consistent\u0027, \u0027syncinprog\u0027]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_f3fadc40","line":419,"range":{"start_line":419,"start_character":11,"end_line":419,"end_character":24},"updated":"2017-10-16 04:38:07.000000000","message":"you can introduce a new variable for this, because it is used 3 times","commit_id":"d77e2b1e5d7fa41df563642f21eec3a1ca7f770f"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"f252d0d27a7a5ace7c3beb9e2fecb6f789b8e407","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        LOG.info(\"Splitting rdf pair: source device: %(src)s \""},{"line_number":417,"context_line":"                 \"target device: %(tgt)s.\","},{"line_number":418,"context_line":"                 {\u0027src\u0027: device_id, \u0027tgt\u0027: target_device})"},{"line_number":419,"context_line":"        if state.lower() \u003d\u003d \u0027synchronized\u0027:"},{"line_number":420,"context_line":"            self.rest.modify_rdf_device_pair("},{"line_number":421,"context_line":"                array, device_id, rdf_group, rep_extra_specs, split\u003dTrue)"},{"line_number":422,"context_line":"        elif state.lower() in [\u0027consistent\u0027, \u0027syncinprog\u0027]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_25802546","line":419,"range":{"start_line":419,"start_character":11,"end_line":419,"end_character":24},"in_reply_to":"5f4e5783_f3fadc40","updated":"2017-10-16 07:33:58.000000000","message":"Sure, I will do that, thanks Tovin!","commit_id":"d77e2b1e5d7fa41df563642f21eec3a1ca7f770f"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":417,"context_line":"                 \"target device: %(tgt)s.\","},{"line_number":418,"context_line":"                 {\u0027src\u0027: device_id, \u0027tgt\u0027: target_device})"},{"line_number":419,"context_line":"        state_check \u003d state.lower()"},{"line_number":420,"context_line":"        if state_check \u003d\u003d \u0027synchronized\u0027:"},{"line_number":421,"context_line":"            self.rest.modify_rdf_device_pair("},{"line_number":422,"context_line":"                array, device_id, rdf_group, rep_extra_specs, split\u003dTrue)"},{"line_number":423,"context_line":"        elif state_check in [\u0027consistent\u0027, \u0027syncinprog\u0027]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_b32b9f80","line":420,"updated":"2017-10-20 10:54:14.000000000","message":"Should these be constants?","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":417,"context_line":"                 \"target device: %(tgt)s.\","},{"line_number":418,"context_line":"                 {\u0027src\u0027: device_id, \u0027tgt\u0027: target_device})"},{"line_number":419,"context_line":"        state_check \u003d state.lower()"},{"line_number":420,"context_line":"        if state_check \u003d\u003d \u0027synchronized\u0027:"},{"line_number":421,"context_line":"            self.rest.modify_rdf_device_pair("},{"line_number":422,"context_line":"                array, device_id, rdf_group, rep_extra_specs, split\u003dTrue)"},{"line_number":423,"context_line":"        elif state_check in [\u0027consistent\u0027, \u0027syncinprog\u0027]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_938303cd","line":420,"in_reply_to":"3f4b6375_b32b9f80","updated":"2017-10-20 11:33:48.000000000","message":"Sure, I can make these constants.","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        if state_check \u003d\u003d \u0027synchronized\u0027:"},{"line_number":421,"context_line":"            self.rest.modify_rdf_device_pair("},{"line_number":422,"context_line":"                array, device_id, rdf_group, rep_extra_specs, split\u003dTrue)"},{"line_number":423,"context_line":"        elif state_check in [\u0027consistent\u0027, \u0027syncinprog\u0027]:"},{"line_number":424,"context_line":"            if state_check \u003d\u003d \u0027syncinprog\u0027:"},{"line_number":425,"context_line":"                self.rest.wait_for_rdf_consistent_state("},{"line_number":426,"context_line":"                    array, device_id, target_device,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_9322e3a3","line":423,"updated":"2017-10-20 10:54:14.000000000","message":"And here","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        if state_check \u003d\u003d \u0027synchronized\u0027:"},{"line_number":421,"context_line":"            self.rest.modify_rdf_device_pair("},{"line_number":422,"context_line":"                array, device_id, rdf_group, rep_extra_specs, split\u003dTrue)"},{"line_number":423,"context_line":"        elif state_check in [\u0027consistent\u0027, \u0027syncinprog\u0027]:"},{"line_number":424,"context_line":"            if state_check \u003d\u003d \u0027syncinprog\u0027:"},{"line_number":425,"context_line":"                self.rest.wait_for_rdf_consistent_state("},{"line_number":426,"context_line":"                    array, device_id, target_device,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_738647de","line":423,"in_reply_to":"3f4b6375_9322e3a3","updated":"2017-10-20 11:33:48.000000000","message":"Sure, I can make these constants.","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c9c3b2a4fbfa740cfca68393d8da9e6e0e17448a","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        to delete the pair. Otherwise, we need to wait until all the tracks"},{"line_number":442,"context_line":"        are cleared before the delete will be successful. As there is"},{"line_number":443,"context_line":"        currently no way to track this information, we keep attempting the"},{"line_number":444,"context_line":"        operation until it is successful."},{"line_number":445,"context_line":"        :param array: the array serial number"},{"line_number":446,"context_line":"        :param device_id: source volume device id"},{"line_number":447,"context_line":"        :param rdf_group: the rdf group number"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_077c78b3","line":444,"updated":"2017-12-24 19:25:23.000000000","message":"Should have a blank line here.","commit_id":"9f9d58700d0c990c149b2947cc8686414e10e5af"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c9c3b2a4fbfa740cfca68393d8da9e6e0e17448a","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            \"\"\"Delete a rdf volume pair."},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"            Called at an interval until all the tracks are cleared"},{"line_number":458,"context_line":"            and the operation is successful."},{"line_number":459,"context_line":"            :raises: loopingcall.LoopingCallDone"},{"line_number":460,"context_line":"            \"\"\""},{"line_number":461,"context_line":"            retries \u003d kwargs[\u0027retries\u0027]"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_a74cac9e","line":458,"updated":"2017-12-24 19:25:23.000000000","message":"Here.","commit_id":"9f9d58700d0c990c149b2947cc8686414e10e5af"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c9c3b2a4fbfa740cfca68393d8da9e6e0e17448a","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                pass"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"            if kwargs[\u0027retries\u0027] \u003e UNLINK_RETRIES:"},{"line_number":472,"context_line":"                LOG.error(\"delete volume pair failed after %(retries)d \""},{"line_number":473,"context_line":"                          \"tries.\", {\u0027retries\u0027: retries})"},{"line_number":474,"context_line":"                raise loopingcall.LoopingCallDone(retvalue\u003d30)"},{"line_number":475,"context_line":"            if kwargs[\u0027delete_pair_success\u0027]:"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_c74f7090","line":472,"range":{"start_line":472,"start_character":26,"end_line":472,"end_character":32},"updated":"2017-12-24 19:25:23.000000000","message":"Delete","commit_id":"9f9d58700d0c990c149b2947cc8686414e10e5af"}],"cinder/volume/drivers/dell_emc/vmax/rest.py":[{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":1893,"context_line":"                            array, remote_array, device_id,"},{"line_number":1894,"context_line":"                            target_device, rdf_group))"},{"line_number":1895,"context_line":"                    kwargs[\u0027state\u0027] \u003d state"},{"line_number":1896,"context_line":"                    if state.lower() \u003d\u003d \u0027consistent\u0027:"},{"line_number":1897,"context_line":"                        kwargs[\u0027consistent_state\u0027] \u003d True"},{"line_number":1898,"context_line":"                        kwargs[\u0027rc\u0027] \u003d 0"},{"line_number":1899,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_d34dfb72","line":1896,"updated":"2017-10-20 10:54:14.000000000","message":"Should these types of values be constants?","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":1893,"context_line":"                            array, remote_array, device_id,"},{"line_number":1894,"context_line":"                            target_device, rdf_group))"},{"line_number":1895,"context_line":"                    kwargs[\u0027state\u0027] \u003d state"},{"line_number":1896,"context_line":"                    if state.lower() \u003d\u003d \u0027consistent\u0027:"},{"line_number":1897,"context_line":"                        kwargs[\u0027consistent_state\u0027] \u003d True"},{"line_number":1898,"context_line":"                        kwargs[\u0027rc\u0027] \u003d 0"},{"line_number":1899,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_93eae372","line":1896,"in_reply_to":"3f4b6375_d34dfb72","updated":"2017-10-20 11:33:48.000000000","message":"Sure, I can make these constants.","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":2192,"context_line":"                      {\u0027sl\u0027: state_list, \u0027action\u0027: action})"},{"line_number":2193,"context_line":"            for state in state_list:"},{"line_number":2194,"context_line":"                if (action.lower() in [\"establish\", \"failback\", \"resume\"] and"},{"line_number":2195,"context_line":"                        state.lower() in [\"suspended\", \"failed over\"]):"},{"line_number":2196,"context_line":"                    mod_rqd \u003d True"},{"line_number":2197,"context_line":"                    break"},{"line_number":2198,"context_line":"                elif (action.lower() in [\"split\", \"failover\", \"suspend\"] and"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_f3459744","line":2195,"updated":"2017-10-20 10:54:14.000000000","message":"Should these values be constants","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":2192,"context_line":"                      {\u0027sl\u0027: state_list, \u0027action\u0027: action})"},{"line_number":2193,"context_line":"            for state in state_list:"},{"line_number":2194,"context_line":"                if (action.lower() in [\"establish\", \"failback\", \"resume\"] and"},{"line_number":2195,"context_line":"                        state.lower() in [\"suspended\", \"failed over\"]):"},{"line_number":2196,"context_line":"                    mod_rqd \u003d True"},{"line_number":2197,"context_line":"                    break"},{"line_number":2198,"context_line":"                elif (action.lower() in [\"split\", \"failover\", \"suspend\"] and"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_d34cdb9f","line":2195,"in_reply_to":"3f4b6375_f3459744","updated":"2017-10-20 11:33:48.000000000","message":"Done","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2dee044bfbaf1021e5176cc3d2a04c8a8c0a05cf","unresolved":false,"context_lines":[{"line_number":2197,"context_line":"                    break"},{"line_number":2198,"context_line":"                elif (action.lower() in [\"split\", \"failover\", \"suspend\"] and"},{"line_number":2199,"context_line":"                      state.lower() in [\"synchronized\", \"syncinprog\","},{"line_number":2200,"context_line":"                                        \"consistent\"]):"},{"line_number":2201,"context_line":"                    mod_rqd \u003d True"},{"line_number":2202,"context_line":"                    break"},{"line_number":2203,"context_line":"        return mod_rqd"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_7373e7b2","line":2200,"updated":"2017-10-20 10:54:14.000000000","message":"And here","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":23414,"name":"Ciara Stacke","email":"ciara.stacke@emc.com","username":"cstacke"},"change_message_id":"b5daa2572932885526e836bcc1a63b4e8864fb91","unresolved":false,"context_lines":[{"line_number":2197,"context_line":"                    break"},{"line_number":2198,"context_line":"                elif (action.lower() in [\"split\", \"failover\", \"suspend\"] and"},{"line_number":2199,"context_line":"                      state.lower() in [\"synchronized\", \"syncinprog\","},{"line_number":2200,"context_line":"                                        \"consistent\"]):"},{"line_number":2201,"context_line":"                    mod_rqd \u003d True"},{"line_number":2202,"context_line":"                    break"},{"line_number":2203,"context_line":"        return mod_rqd"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_9346637c","line":2200,"in_reply_to":"3f4b6375_7373e7b2","updated":"2017-10-20 11:33:48.000000000","message":"Done","commit_id":"d37790aedec99279df2dc5149028a895e741bbab"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7abd898d9971671206827ef1f0e70e9cd9b3db6d","unresolved":false,"context_lines":[{"line_number":1896,"context_line":"                        kwargs[\u0027consistent_state\u0027] \u003d True"},{"line_number":1897,"context_line":"                        kwargs[\u0027rc\u0027] \u003d 0"},{"line_number":1898,"context_line":"            except Exception:"},{"line_number":1899,"context_line":"                exception_message \u003d (_(\"Issue encountered waiting for job.\"))"},{"line_number":1900,"context_line":"                LOG.exception(exception_message)"},{"line_number":1901,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":1902,"context_line":"                    data\u003dexception_message)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f485f77_e25f1a3f","line":1899,"range":{"start_line":1899,"start_character":36,"end_line":1899,"end_character":37},"updated":"2017-11-13 05:26:13.000000000","message":"Unnecessary ()","commit_id":"9f9d58700d0c990c149b2947cc8686414e10e5af"}],"cinder/volume/drivers/dell_emc/vmax/utils.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c9c3b2a4fbfa740cfca68393d8da9e6e0e17448a","unresolved":false,"context_lines":[{"line_number":747,"context_line":"        \"\"\"Get the replication prefix."},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"        Replication prefix for storage group naming is based on whether it is"},{"line_number":750,"context_line":"        synchronous or asynchronous replication mode."},{"line_number":751,"context_line":"        :param rep_mode: flag to indicate if replication is async"},{"line_number":752,"context_line":"        :return: prefix"},{"line_number":753,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_e780748e","line":750,"updated":"2017-12-24 19:25:23.000000000","message":"Should have a blank line here.","commit_id":"9f9d58700d0c990c149b2947cc8686414e10e5af"}],"releasenotes/notes/vmax-replication-enhancements-c3bec80a3abb6d2e.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7abd898d9971671206827ef1f0e70e9cd9b3db6d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add asynchronous remote replication support in Dell EMC VMAX cinder driver."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":19,"id":"1f485f77_82562629","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":7},"updated":"2017-11-13 05:26:13.000000000","message":"s/Add/Added/","commit_id":"9f9d58700d0c990c149b2947cc8686414e10e5af"}]}
