)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b880adb7ec1f0a0ed82fcbd313788123cd49891e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"volume to a new size."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ie1c66cfb71c4761aa4b4b46e9a507c3acbfcbb1d"},{"line_number":17,"context_line":"Closes-Bug: #11554773"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7a8ec9b2_bab19649","line":17,"updated":"2016-09-15 20:41:17.000000000","message":"Just realized there is an extra \"1\" in this bug number.  The correct bug is here:\n\nhttps://bugs.launchpad.net/cinder/+bug/1554773","commit_id":"e7db3c25720d829721a8792304e87678705b6b60"}],"cinder/tests/unit/volume/drivers/emc/test_emc_vmax.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":3363,"context_line":"    def test_create_volume_from_same_size_meta_snapshot("},{"line_number":3364,"context_line":"            self, mock_volume_type, mock_sync_sv, mock_meta, mock_size):"},{"line_number":3365,"context_line":"        self.data.test_volume[\u0027volume_name\u0027] \u003d \"vmax-1234567\""},{"line_number":3366,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":3367,"context_line":"            return_value\u003d0)"},{"line_number":3368,"context_line":"        self.driver.create_volume_from_snapshot("},{"line_number":3369,"context_line":"            self.data.test_volume, self.data.test_volume)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_d0695e8d","line":3366,"updated":"2016-08-26 03:35:35.000000000","message":"Same comment as in the other patch.  Please mock the method instead of changing the method directly.","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":3396,"context_line":"            mock_simple_volume):"},{"line_number":3397,"context_line":"        self.data.test_volume[\u0027volume_name\u0027] \u003d \"vmax-1234567\""},{"line_number":3398,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":3399,"context_line":"            return_value\u003d0)"},{"line_number":3400,"context_line":"        self.driver.create_cloned_volume(self.data.test_volume,"},{"line_number":3401,"context_line":"                                         EMCVMAXCommonData.test_source_volume)"},{"line_number":3402,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_300feae2","line":3399,"updated":"2016-08-26 03:35:35.000000000","message":"Same","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":3655,"context_line":"                                    volumeDict,"},{"line_number":3656,"context_line":"                                    EMCVMAXCommonData.storage_system)))"},{"line_number":3657,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":3658,"context_line":"            return_value\u003d0)"},{"line_number":3659,"context_line":"        self.driver.create_cloned_volume(self.data.test_volume,"},{"line_number":3660,"context_line":"                                         EMCVMAXCommonData.test_source_volume)"},{"line_number":3661,"context_line":"        extraSpecs \u003d self.driver.common._initial_setup(self.data.test_volume)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_50146ef4","line":3658,"updated":"2016-08-26 03:35:35.000000000","message":"Same","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":4294,"context_line":"        common \u003d self.driver.common"},{"line_number":4295,"context_line":"        common.fast.is_volume_in_default_SG \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":4296,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":4297,"context_line":"            return_value\u003d0)"},{"line_number":4298,"context_line":"        self.driver.create_volume_from_snapshot("},{"line_number":4299,"context_line":"            self.data.test_volume, self.data.test_volume)"},{"line_number":4300,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_70f972c8","line":4297,"updated":"2016-08-26 03:35:35.000000000","message":"Same","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":5521,"context_line":"        common \u003d self.driver.common"},{"line_number":5522,"context_line":"        common.fast.is_volume_in_default_SG \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":5523,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":5524,"context_line":"            return_value\u003d0)"},{"line_number":5525,"context_line":"        self.driver.create_volume_from_snapshot("},{"line_number":5526,"context_line":"            self.data.test_volume, self.data.test_volume)"},{"line_number":5527,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_90f6f6d5","line":5524,"updated":"2016-08-26 03:35:35.000000000","message":"Same","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":5564,"context_line":"        self.driver.common._find_storage_sync_sv_sv \u003d ("},{"line_number":5565,"context_line":"            mock.Mock(return_value\u003d(None, None)))"},{"line_number":5566,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":5567,"context_line":"            return_value\u003d0)"},{"line_number":5568,"context_line":"        self.driver.create_cloned_volume(self.data.test_volume,"},{"line_number":5569,"context_line":"                                         EMCVMAXCommonData.test_source_volume)"},{"line_number":5570,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_b003fab7","line":5567,"updated":"2016-08-26 03:35:35.000000000","message":"Same","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":6145,"context_line":"        common.provisionv3.utils.get_v3_default_sg_instance_name \u003d mock.Mock("},{"line_number":6146,"context_line":"            return_value\u003d(None, None, self.data.default_sg_instance_name))"},{"line_number":6147,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":6148,"context_line":"            return_value\u003d0)"},{"line_number":6149,"context_line":"        self.driver.create_cloned_volume(cloneVol, self.data.test_volume_v3)"},{"line_number":6150,"context_line":""},{"line_number":6151,"context_line":"    @mock.patch.object("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_d0007ead","line":6148,"updated":"2016-08-26 03:35:35.000000000","message":"Same","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":8089,"context_line":"        emc_vmax_common.EMCVMAXCommon._gather_info \u003d mock.Mock()"},{"line_number":8090,"context_line":"        instancename \u003d FakeCIMInstanceName()"},{"line_number":8091,"context_line":"        self.stubs.Set(emc_vmax_utils.EMCVMAXUtils, \u0027get_instance_name\u0027,"},{"line_number":8092,"context_line":"                       instancename.fake_getinstancename)"},{"line_number":8093,"context_line":"        driver \u003d emc_vmax_iscsi.EMCVMAXISCSIDriver(configuration\u003dconfiguration)"},{"line_number":8094,"context_line":"        driver.db \u003d FakeDB()"},{"line_number":8095,"context_line":"        self.driver \u003d driver"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_d0179eeb","line":8092,"updated":"2016-08-26 03:35:35.000000000","message":"Please don\u0027t use self.stubs because it uses mox.\n\nUse self.mock_object(emc_vmax_utils.EMCVMAXUtils, \u0027get_instance_name\u0027, instancename.fake_getinstancename)","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":8154,"context_line":"                      \u0027pool\u0027: \u0027SRP_1\u0027,"},{"line_number":8155,"context_line":"                      \u0027workload\u0027: \u0027DSS\u0027,"},{"line_number":8156,"context_line":"                      \u0027slo\u0027: \u0027Bronze\u0027}"},{"line_number":8157,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":8158,"context_line":"            return_value\u003d0)"},{"line_number":8159,"context_line":"        self.driver.common._extend_volume("},{"line_number":8160,"context_line":"            volumeInstance, volumeName, new_size_gb, old_size_gbs, extraSpecs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_50e2ae04","line":8157,"updated":"2016-08-26 03:35:35.000000000","message":"Same","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"04fe3a51f824fed3477012797ed2375225862ee2","unresolved":false,"context_lines":[{"line_number":6163,"context_line":"        common.provisionv3.utils.get_v3_default_sg_instance_name \u003d mock.Mock("},{"line_number":6164,"context_line":"            return_value\u003d(None, None, self.data.default_sg_instance_name))"},{"line_number":6165,"context_line":"        self.driver.common.utils.compare_size \u003d mock.Mock("},{"line_number":6166,"context_line":"            return_value\u003d0)"},{"line_number":6167,"context_line":"        self.driver.create_cloned_volume(cloneVol, self.data.test_volume_v3)"},{"line_number":6168,"context_line":""},{"line_number":6169,"context_line":"    @mock.patch.object("}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_a90f9337","line":6166,"updated":"2016-09-02 00:10:49.000000000","message":"This line should be removed now.  You have already mocked it in the decorator.","commit_id":"350c0d685f6f4185ba985014275e5e3e786b2d35"}],"cinder/volume/drivers/emc/emc_vmax_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":582,"context_line":"            extraSpecs):"},{"line_number":583,"context_line":"        \"\"\"Extends an existing volume."},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        :params volume: the volume Object"},{"line_number":586,"context_line":"        :params newSize: the new size to increase the volume to"},{"line_number":587,"context_line":"        :params extraSpecs: extra specifications"},{"line_number":588,"context_line":"        :returns: dict -- modifiedVolumeDict - the extended volume Object"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_50b9cee8","line":585,"updated":"2016-08-26 03:35:35.000000000","message":"wrong params name.  Should be volumeInstance.","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        :params volume: the volume Object"},{"line_number":586,"context_line":"        :params newSize: the new size to increase the volume to"},{"line_number":587,"context_line":"        :params extraSpecs: extra specifications"},{"line_number":588,"context_line":"        :returns: dict -- modifiedVolumeDict - the extended volume Object"},{"line_number":589,"context_line":"        :raises: VolumeBackendAPIException"},{"line_number":590,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_70ced284","line":587,"updated":"2016-08-26 03:35:35.000000000","message":"Missed \"volumeName\".","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6069889f41fc12f6a67c04813ab1fcb5a592ca9e","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        volumeInstance \u003d self._find_lun(volume)"},{"line_number":582,"context_line":"        if volumeInstance is None:"},{"line_number":583,"context_line":"            exceptionMessage \u003d (_(\"Cannot find Volume: %(volumename)s. \""},{"line_number":584,"context_line":"                                  \"Extend operation.  Exiting...\")"},{"line_number":585,"context_line":"                                % {\u0027volumename\u0027: volumeName})"},{"line_number":586,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":587,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexceptionMessage)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a89bdaa_2449b331","line":584,"updated":"2016-09-13 16:05:23.000000000","message":"This change is not necessary.  We are at soft string freeze.  New string is okay but existing strings should not be changed.","commit_id":"75437fb168d75f4b3a42f7539d1570de5f283306"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6069889f41fc12f6a67c04813ab1fcb5a592ca9e","unresolved":false,"context_lines":[{"line_number":2193,"context_line":"                LOG.info(_LI(\"Extending clone %(cloneName)s to \""},{"line_number":2194,"context_line":"                             \"%(newSize)d GBs\"),"},{"line_number":2195,"context_line":"                         {\u0027cloneName\u0027: cloneName,"},{"line_number":2196,"context_line":"                          \u0027newSize\u0027: cloneVolume[\u0027size\u0027]})"},{"line_number":2197,"context_line":"                cloneInstance \u003d self.utils.find_volume_instance("},{"line_number":2198,"context_line":"                    self.conn, cloneDict, cloneName)"},{"line_number":2199,"context_line":"                self._extend_volume("}],"source_content_type":"text/x-python","patch_set":8,"id":"9a89bdaa_c40d67e9","line":2196,"updated":"2016-09-13 16:05:23.000000000","message":"This one is ok as it is a new string.","commit_id":"75437fb168d75f4b3a42f7539d1570de5f283306"}],"cinder/volume/drivers/emc/emc_vmax_masking.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        pgGroupName \u003d maskingViewDict[\u0027pgGroupName\u0027]"},{"line_number":267,"context_line":"        LOG.info(_LI(\"Returning random Port Group: \""},{"line_number":268,"context_line":"                     \"%(portGroupName)s.\"),"},{"line_number":269,"context_line":"                 {\u0027portGroupName\u0027: pgGroupName})"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        storageGroupInstanceName, errorMessage \u003d ("},{"line_number":272,"context_line":"            self._check_storage_group("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_10a666c1","line":269,"updated":"2016-08-26 03:35:35.000000000","message":"Not related to this change.  Should be removed.","commit_id":"b451ab4dedf393e998a09865bb5f8b6c299b89ef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"04fe3a51f824fed3477012797ed2375225862ee2","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        pgGroupName \u003d maskingViewDict[\u0027pgGroupName\u0027]"},{"line_number":267,"context_line":"        LOG.info(_LI(\"Returning random Port Group: \""},{"line_number":268,"context_line":"                     \"%(portGroupName)s.\"),"},{"line_number":269,"context_line":"                 {\u0027portGroupName\u0027: pgGroupName})"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        storageGroupInstanceName, errorMessage \u003d ("},{"line_number":272,"context_line":"            self._check_storage_group("}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_c9a13748","line":269,"updated":"2016-09-02 00:10:49.000000000","message":"Comment in patch set 4 not addressed.\n\nNot related to this change.  Should be removed.","commit_id":"350c0d685f6f4185ba985014275e5e3e786b2d35"}],"cinder/volume/drivers/emc/emc_vmax_utils.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2eff494297e50fdf94f44e37d9663edd093415","unresolved":false,"context_lines":[{"line_number":2100,"context_line":""},{"line_number":2101,"context_line":"        LOG.info(_LI(\"Returning random Port Group: \""},{"line_number":2102,"context_line":"                     \"%(portGroupName)s.\"),"},{"line_number":2103,"context_line":"                 {\u0027portGroupName\u0027: portgroupname})"},{"line_number":2104,"context_line":""},{"line_number":2105,"context_line":"        return portgroupname"},{"line_number":2106,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_d09cfe6b","side":"PARENT","line":2103,"updated":"2016-08-26 03:35:35.000000000","message":"Not a related changed.  Should not be in this patch.","commit_id":"f2d6bea09754b4cecb47666ab0b1ca214dac3c7b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"04fe3a51f824fed3477012797ed2375225862ee2","unresolved":false,"context_lines":[{"line_number":2100,"context_line":""},{"line_number":2101,"context_line":"        LOG.info(_LI(\"Returning random Port Group: \""},{"line_number":2102,"context_line":"                     \"%(portGroupName)s.\"),"},{"line_number":2103,"context_line":"                 {\u0027portGroupName\u0027: portgroupname})"},{"line_number":2104,"context_line":""},{"line_number":2105,"context_line":"        return portgroupname"},{"line_number":2106,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_c9b85778","side":"PARENT","line":2103,"updated":"2016-09-02 00:10:49.000000000","message":"Comment in patch set 4 not addressed.\n\nNot a related changed.  Should not be in this patch.","commit_id":"f2d6bea09754b4cecb47666ab0b1ca214dac3c7b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"40fcff843d4e08a491a14b70300f68f87c57e641","unresolved":false,"context_lines":[{"line_number":2101,"context_line":"        LOG.info(_LI(\"Returning random Port Group: \""},{"line_number":2102,"context_line":"                     \"%(portGroupName)s.\"),"},{"line_number":2103,"context_line":"                 {\u0027portGroupName\u0027: portgroupname})"},{"line_number":2104,"context_line":"        return portgroupname"},{"line_number":2105,"context_line":""},{"line_number":2106,"context_line":"    @staticmethod"},{"line_number":2107,"context_line":"    def _filter_list(portgroupnames):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_a2f6ac8c","line":2104,"updated":"2016-09-02 13:32:46.000000000","message":"This file does not need to be changed.  Looks like you removed a line here.","commit_id":"c25dbdf6dc71101f1105c3cb766721647f1049a0"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"09c44eca031905c8a9bdc7053280461c372f1064","unresolved":false,"context_lines":[{"line_number":2101,"context_line":"        LOG.info(_LI(\"Returning random Port Group: \""},{"line_number":2102,"context_line":"                     \"%(portGroupName)s.\"),"},{"line_number":2103,"context_line":"                 {\u0027portGroupName\u0027: portgroupname})"},{"line_number":2104,"context_line":"        return portgroupname"},{"line_number":2105,"context_line":""},{"line_number":2106,"context_line":"    @staticmethod"},{"line_number":2107,"context_line":"    def _filter_list(portgroupnames):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_3318b784","line":2104,"in_reply_to":"fa7ab95a_a2f6ac8c","updated":"2016-09-05 10:28:20.000000000","message":"Ok, I will put it back in","commit_id":"c25dbdf6dc71101f1105c3cb766721647f1049a0"}]}
