)]}'
{"cinder/volume/drivers/dell_emc/powermax/common.py":[{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"aeaf958a442be13c8b7b6e0e91cb391642927119","unresolved":false,"context_lines":[{"line_number":2017,"context_line":"        \"\"\"Create a volume with replication enabled"},{"line_number":2018,"context_line":""},{"line_number":2019,"context_line":"        :param array: the primary array"},{"line_number":2020,"context_line":"        :param volume_name: the volume"},{"line_number":2021,"context_line":"        :param volume_name: the volume name"},{"line_number":2022,"context_line":"        :param volume_size: the volume size"},{"line_number":2023,"context_line":"        :param extra_specs: extra specifications"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_3984680c","line":2020,"updated":"2020-03-25 11:34:40.000000000","message":"volume not volume_name","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f51dd5e5ffb5a1786d2ba3044e3dcfe85bca2c8","unresolved":false,"context_lines":[{"line_number":2052,"context_line":"            _is_first_vol_in_replicated_sg())"},{"line_number":2053,"context_line":""},{"line_number":2054,"context_line":"        if not is_first_volume:"},{"line_number":2055,"context_line":"            _, rep_extra_specs, rep_info_dict, _ \u003d ("},{"line_number":2056,"context_line":"                self.prepare_replication_details(extra_specs))"},{"line_number":2057,"context_line":"            volume_info_dict \u003d self.provision.create_volume_from_sg("},{"line_number":2058,"context_line":"                array, volume_name, storagegroup_name,"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_927721d5","line":2055,"range":{"start_line":2055,"start_character":12,"end_line":2055,"end_character":13},"updated":"2020-03-27 12:54:13.000000000","message":"This hides the i18n import. Good practice, but for our code base it\u0027s recommended to use double __ to avoid this.","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f51dd5e5ffb5a1786d2ba3044e3dcfe85bca2c8","unresolved":false,"context_lines":[{"line_number":2918,"context_line":"            exception_message \u003d (_("},{"line_number":2919,"context_line":"                \"Unable to RDF protect device %(dev)s in OpenStack managed \""},{"line_number":2920,"context_line":"                \"storage group because it currently exists in one or more \""},{"line_number":2921,"context_line":"                \"user managed storage groups.\") % {\u0027dev\u0027: device_id})"},{"line_number":2922,"context_line":"            LOG.error(exception_message)"},{"line_number":2923,"context_line":"            raise exception.VolumeBackendAPIException(exception_message)"},{"line_number":2924,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_b27ce5b5","line":2921,"range":{"start_line":2921,"start_character":46,"end_line":2921,"end_character":47},"updated":"2020-03-27 12:54:13.000000000","message":"Great catches!","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f51dd5e5ffb5a1786d2ba3044e3dcfe85bca2c8","unresolved":false,"context_lines":[{"line_number":3875,"context_line":"                move_rqd \u003d False"},{"line_number":3876,"context_line":"                break"},{"line_number":3877,"context_line":"        if move_rqd:"},{"line_number":3878,"context_line":"            success, _ \u003d self._retype_volume("},{"line_number":3879,"context_line":"                remote_array, rep_extra_specs[utils.SRP],"},{"line_number":3880,"context_line":"                target_device_id, volume, volume_name, rep_extra_specs,"},{"line_number":3881,"context_line":"                extra_specs[utils.SLO], extra_specs[utils.WORKLOAD],"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_52475979","line":3878,"range":{"start_line":3878,"start_character":21,"end_line":3878,"end_character":22},"updated":"2020-03-27 12:54:13.000000000","message":"__","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f51dd5e5ffb5a1786d2ba3044e3dcfe85bca2c8","unresolved":false,"context_lines":[{"line_number":4160,"context_line":"                remote_array, remote_device_id, volume_name, sg_name,"},{"line_number":4161,"context_line":"                rep_extra_specs)"},{"line_number":4162,"context_line":""},{"line_number":4163,"context_line":"            if mgmt_sg_name:"},{"line_number":4164,"context_line":"                if not self.rest.get_volumes_in_storage_group("},{"line_number":4165,"context_line":"                        array, mgmt_sg_name):"},{"line_number":4166,"context_line":"                    resume_rdf \u003d False"},{"line_number":4167,"context_line":"            else:"},{"line_number":4168,"context_line":"                if not self.rest.get_volumes_in_storage_group(array, sg_name):"},{"line_number":4169,"context_line":"                    resume_rdf \u003d False"},{"line_number":4170,"context_line":""},{"line_number":4171,"context_line":"        # self.rest.delete_volume(remote_array, remote_device_id)"},{"line_number":4172,"context_line":"        self._delete_from_srp(remote_array, remote_device_id, volume_name,"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_f234adfd","line":4169,"range":{"start_line":4163,"start_character":12,"end_line":4169,"end_character":38},"updated":"2020-03-27 12:54:13.000000000","message":"Do these actually need to run each time through the loop? It doesn\u0027t look like it.","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f51dd5e5ffb5a1786d2ba3044e3dcfe85bca2c8","unresolved":false,"context_lines":[{"line_number":4617,"context_line":"        # Remove replication for group, if applicable"},{"line_number":4618,"context_line":"        if group.is_replicated:"},{"line_number":4619,"context_line":"            vt_extra_specs \u003d self.utils.get_volumetype_extra_specs("},{"line_number":4620,"context_line":"                _, group.get(\u0027volume_types\u0027)[0][\u0027id\u0027])"},{"line_number":4621,"context_line":"            target_backend_id \u003d vt_extra_specs.get("},{"line_number":4622,"context_line":"                utils.REPLICATION_DEVICE_BACKEND_ID,"},{"line_number":4623,"context_line":"                utils.BACKEND_ID_LEGACY_REP)"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_52159949","line":4620,"range":{"start_line":4620,"start_character":16,"end_line":4620,"end_character":17},"updated":"2020-03-27 12:54:13.000000000","message":"__","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f51dd5e5ffb5a1786d2ba3044e3dcfe85bca2c8","unresolved":false,"context_lines":[{"line_number":5947,"context_line":"        \"\"\""},{"line_number":5948,"context_line":"        array \u003d extra_specs[utils.ARRAY]"},{"line_number":5949,"context_line":"        for device_id in device_ids:"},{"line_number":5950,"context_line":"            _, _, rdf_group \u003d self.rest.is_vol_in_rep_session(array, device_id)"},{"line_number":5951,"context_line":"            if rdf_group:"},{"line_number":5952,"context_line":"                rdf_group_no \u003d rdf_group[0][utils.RDF_GROUP_NO]"},{"line_number":5953,"context_line":"                self.cleanup_rdf_device_pair(array, rdf_group_no, device_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_7209bd2f","line":5950,"range":{"start_line":5950,"start_character":12,"end_line":5950,"end_character":16},"updated":"2020-03-27 12:54:13.000000000","message":"__","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6af578616776ebf83c79fcf291fad3f50d74f137","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"        # Get extend workflow dependent on array gen and replication status"},{"line_number":1033,"context_line":"        if rep_enabled:"},{"line_number":1034,"context_line":"            rep_config \u003d ex_specs[utils.REP_CONFIG]"},{"line_number":1035,"context_line":"            rdf_grp_no, _ \u003d self.get_rdf_details(array, rep_config)"},{"line_number":1036,"context_line":"            r1_ode, r1_ode_metro, r2_ode, r2_ode_metro \u003d ("},{"line_number":1037,"context_line":"                self._array_ode_capabilities_check(array, True))"},{"line_number":1038,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"df33271e_4882e101","line":1035,"range":{"start_line":1035,"start_character":24,"end_line":1035,"end_character":25},"updated":"2020-03-30 14:39:38.000000000","message":"__","commit_id":"a4c13863c432489f74f4c987eab2f89a98f37aab"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6af578616776ebf83c79fcf291fad3f50d74f137","unresolved":false,"context_lines":[{"line_number":2052,"context_line":"            _is_first_vol_in_replicated_sg())"},{"line_number":2053,"context_line":""},{"line_number":2054,"context_line":"        if not is_first_volume:"},{"line_number":2055,"context_line":"            __, rep_extra_specs, rep_info_dict, _ \u003d ("},{"line_number":2056,"context_line":"                self.prepare_replication_details(extra_specs))"},{"line_number":2057,"context_line":"            volume_info_dict \u003d self.provision.create_volume_from_sg("},{"line_number":2058,"context_line":"                array, volume_name, storagegroup_name,"}],"source_content_type":"text/x-python","patch_set":17,"id":"df33271e_6893655c","line":2055,"range":{"start_line":2055,"start_character":48,"end_line":2055,"end_character":49},"updated":"2020-03-30 14:39:38.000000000","message":"Missed this one.","commit_id":"a4c13863c432489f74f4c987eab2f89a98f37aab"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6af578616776ebf83c79fcf291fad3f50d74f137","unresolved":false,"context_lines":[{"line_number":5370,"context_line":"            if vol_grp_name is None:"},{"line_number":5371,"context_line":"                raise exception.GroupNotFound(group_id\u003dgroup.id)"},{"line_number":5372,"context_line":""},{"line_number":5373,"context_line":"            rdf_group_no, _ \u003d self.get_rdf_details("},{"line_number":5374,"context_line":"                array, extra_specs[utils.REP_CONFIG])"},{"line_number":5375,"context_line":"            self.rest.srdf_resume_replication("},{"line_number":5376,"context_line":"                array, vol_grp_name, rdf_group_no, extra_specs)"}],"source_content_type":"text/x-python","patch_set":17,"id":"df33271e_48e5c1db","line":5373,"range":{"start_line":5373,"start_character":26,"end_line":5373,"end_character":27},"updated":"2020-03-30 14:39:38.000000000","message":"__","commit_id":"a4c13863c432489f74f4c987eab2f89a98f37aab"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6af578616776ebf83c79fcf291fad3f50d74f137","unresolved":false,"context_lines":[{"line_number":5465,"context_line":"        failover \u003d False if secondary_backend_id \u003d\u003d \u0027default\u0027 else True"},{"line_number":5466,"context_line":""},{"line_number":5467,"context_line":"        try:"},{"line_number":5468,"context_line":"            rdf_group_no, _ \u003d self.get_rdf_details("},{"line_number":5469,"context_line":"                array, extra_specs[utils.REP_CONFIG])"},{"line_number":5470,"context_line":"            if group:"},{"line_number":5471,"context_line":"                volume_group \u003d self._find_volume_group(array, group)"}],"source_content_type":"text/x-python","patch_set":17,"id":"df33271e_c8d8b11f","line":5468,"range":{"start_line":5468,"start_character":26,"end_line":5468,"end_character":27},"updated":"2020-03-30 14:39:38.000000000","message":"__","commit_id":"a4c13863c432489f74f4c987eab2f89a98f37aab"}],"cinder/volume/drivers/dell_emc/powermax/rest.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c442d9728bfbc1c8cff1d5f2164388eeda08a0a3","unresolved":false,"context_lines":[{"line_number":2535,"context_line":""},{"line_number":2536,"context_line":"            payload.pop(\u0027establish\u0027)"},{"line_number":2537,"context_line":""},{"line_number":2538,"context_line":"            if payload.get(\u0027establish\u0027):"},{"line_number":2539,"context_line":"                payload.pop(\u0027establish\u0027)"},{"line_number":2540,"context_line":"        return payload"},{"line_number":2541,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_c012b109","line":2538,"range":{"start_line":2538,"start_character":12,"end_line":2538,"end_character":40},"updated":"2020-03-02 17:20:19.000000000","message":"This will now never be true?","commit_id":"86d4e7f65fe8221666e2c88923a476a909362b5d"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"aeaf958a442be13c8b7b6e0e91cb391642927119","unresolved":false,"context_lines":[{"line_number":2349,"context_line":"                            kwargs[\u0027synced\u0027] \u003d True"},{"line_number":2350,"context_line":"                            kwargs[\u0027rc\u0027] \u003d 0"},{"line_number":2351,"context_line":"            except Exception as e_msg:"},{"line_number":2352,"context_line":"                ex_msg \u003d (_(\"Issue encountered waiting for job: %(e)s\") %"},{"line_number":2353,"context_line":"                          {\u0027e\u0027: e_msg})"},{"line_number":2354,"context_line":"                LOG.error(ex_msg)"},{"line_number":2355,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dex_msg)"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_d90d7b36","line":2352,"updated":"2020-03-25 11:34:40.000000000","message":"Not sure if adding the extra brackets is correct here. Perhaps another reviewer can comment?","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f51dd5e5ffb5a1786d2ba3044e3dcfe85bca2c8","unresolved":false,"context_lines":[{"line_number":2349,"context_line":"                            kwargs[\u0027synced\u0027] \u003d True"},{"line_number":2350,"context_line":"                            kwargs[\u0027rc\u0027] \u003d 0"},{"line_number":2351,"context_line":"            except Exception as e_msg:"},{"line_number":2352,"context_line":"                ex_msg \u003d (_(\"Issue encountered waiting for job: %(e)s\") %"},{"line_number":2353,"context_line":"                          {\u0027e\u0027: e_msg})"},{"line_number":2354,"context_line":"                LOG.error(ex_msg)"},{"line_number":2355,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dex_msg)"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_8d13805c","line":2352,"in_reply_to":"df33271e_d90d7b36","updated":"2020-03-27 12:54:13.000000000","message":"Yeah, looks like these changes were not necessary. I would leave them the way they are. This patch is already very large with a lot of churn. Try to minimize the amount of changed lines if a change is not necessary so it\u0027s easier for reviewers to see what actually is being changed.","commit_id":"2ab0be171e2b0cd189c7b87fb82b3f99b797ae9f"}]}
