)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9511c5f394ddd8b0a5fe28b14c50add9b8d20859","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"EMC VMAX Manage/Unmanage Volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch addes support for manage/unmange volume in"},{"line_number":10,"context_line":"the VMAX driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"implements blueprint emc-vmax-manage-unmanage"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a0c5dc1_b020ac9c","line":9,"updated":"2015-05-13 16:59:29.000000000","message":"s/addes/adds.","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"EMC VMAX Manage/Unmanage Volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch addes support for manage/unmange volume in"},{"line_number":10,"context_line":"the VMAX driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"implements blueprint emc-vmax-manage-unmanage"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a016987_9c263215","line":9,"updated":"2015-05-14 09:53:28.000000000","message":"s/unmange/unmanage/","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"EMC VMAX Manage/Unmanage Volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch addes support for manage/unmange volume in"},{"line_number":10,"context_line":"the VMAX driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"implements blueprint emc-vmax-manage-unmanage"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a016987_ac3195a4","line":9,"in_reply_to":"7a016987_9c263215","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"}],"cinder/tests/unit/test_emc_vmax.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9511c5f394ddd8b0a5fe28b14c50add9b8d20859","unresolved":false,"context_lines":[{"line_number":3857,"context_line":"        utils \u003d self.driver.common.utils"},{"line_number":3858,"context_line":"        gbSize \u003d 2"},{"line_number":3859,"context_line":"        utils.get_volume_size \u003d mock.Mock("},{"line_number":3860,"context_line":"            return_value\u003dgbSize * 1024 * 1024 * 1024)"},{"line_number":3861,"context_line":"        volumeInstanceName \u003d {\u0027CreationClassName\u0027: \"Symm_StorageVolume\","},{"line_number":3862,"context_line":"                              \u0027DeviceID\u0027: \"0123\","},{"line_number":3863,"context_line":"                              \u0027SystemName\u0027: \"12345\"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_b0f30c0a","line":3860,"updated":"2015-05-13 16:59:29.000000000","message":"Why not use oslo_utils\u0027s units.Gi?","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e19cd7d673696a7ff77e697109447cb1137e8ff5","unresolved":false,"context_lines":[{"line_number":3857,"context_line":"        utils \u003d self.driver.common.utils"},{"line_number":3858,"context_line":"        gbSize \u003d 2"},{"line_number":3859,"context_line":"        utils.get_volume_size \u003d mock.Mock("},{"line_number":3860,"context_line":"            return_value\u003dgbSize * 1024 * 1024 * 1024)"},{"line_number":3861,"context_line":"        volumeInstanceName \u003d {\u0027CreationClassName\u0027: \"Symm_StorageVolume\","},{"line_number":3862,"context_line":"                              \u0027DeviceID\u0027: \"0123\","},{"line_number":3863,"context_line":"                              \u0027SystemName\u0027: \"12345\"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_3eb5a630","line":3860,"in_reply_to":"9a0c5dc1_b0f30c0a","updated":"2015-05-13 19:26:34.000000000","message":"Right. We should use that.","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9511c5f394ddd8b0a5fe28b14c50add9b8d20859","unresolved":false,"context_lines":[{"line_number":3880,"context_line":"        utils \u003d self.driver.common.utils"},{"line_number":3881,"context_line":"        gbSize \u003d 2"},{"line_number":3882,"context_line":"        utils.get_volume_size \u003d mock.Mock("},{"line_number":3883,"context_line":"            return_value\u003dgbSize * 1024 * 1024 * 1024)"},{"line_number":3884,"context_line":"        utils.get_associated_replication_from_source_volume \u003d mock.Mock("},{"line_number":3885,"context_line":"            return_value\u003dNone)"},{"line_number":3886,"context_line":"        utils.get_assoc_pool_from_volume \u003d mock.Mock("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_70deb46e","line":3883,"updated":"2015-05-13 16:59:29.000000000","message":"Ditto","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"03211ca12caff62bf58b22c8855f4ad580a7ffb8","unresolved":false,"context_lines":[{"line_number":2912,"context_line":"    def test_find_volume_by_device_id_on_array(self):"},{"line_number":2913,"context_line":"        conn \u003d self.fake_ecom_connection()"},{"line_number":2914,"context_line":"        utils \u003d self.driver.common.utils"},{"line_number":2915,"context_line":"        volumeInstanceName \u003d utils.find_volume_by_device_id_on_array("},{"line_number":2916,"context_line":"            conn, self.data.storage_system, self.data.test_volume[\u0027device_id\u0027])"},{"line_number":2917,"context_line":"        expectVolume \u003d {}"},{"line_number":2918,"context_line":"        expectVolume[\u0027CreationClassName\u0027] \u003d \u0027Symm_StorageVolume\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"5afe65bd_c37eeead","line":2915,"updated":"2015-06-02 13:18:14.000000000","message":"These local variable don\u0027t follow python variable naming conventions (e.g. volume_instance_name). No harm, just pointing it out. Doesn\u0027t make that much difference to me.","commit_id":"3bedca6101556661359982e5c7faf8f6b3b46edd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"82bf32f8b625344559d5bde5e50971d91a5b3dbb","unresolved":false,"context_lines":[{"line_number":2912,"context_line":"    def test_find_volume_by_device_id_on_array(self):"},{"line_number":2913,"context_line":"        conn \u003d self.fake_ecom_connection()"},{"line_number":2914,"context_line":"        utils \u003d self.driver.common.utils"},{"line_number":2915,"context_line":"        volumeInstanceName \u003d utils.find_volume_by_device_id_on_array("},{"line_number":2916,"context_line":"            conn, self.data.storage_system, self.data.test_volume[\u0027device_id\u0027])"},{"line_number":2917,"context_line":"        expectVolume \u003d {}"},{"line_number":2918,"context_line":"        expectVolume[\u0027CreationClassName\u0027] \u003d \u0027Symm_StorageVolume\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"5afe65bd_66b5facb","line":2915,"in_reply_to":"5afe65bd_c37eeead","updated":"2015-06-02 17:29:06.000000000","message":"You are right. We got a few review comments on the variable naming convention. We didn\u0027t change them yet because the whole driver has this style. I wonder if it makes sense to change all the naming in one big patch. Not sure if anyone is interested in reviewing a thousands of lines patch on that:).","commit_id":"3bedca6101556661359982e5c7faf8f6b3b46edd"}],"cinder/volume/drivers/emc/emc_vmax_common.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"22298f5c4b940ab5d19003acb4c57262068c3175","unresolved":false,"context_lines":[{"line_number":3910,"context_line":""},{"line_number":3911,"context_line":"        # Manage existing volume is not supported if fast enabled."},{"line_number":3912,"context_line":"        if extraSpecs[FASTPOLICY]:"},{"line_number":3913,"context_line":"            LOG.warn(_LW("},{"line_number":3914,"context_line":"                \"FAST is enabled. Policy: %(fastPolicyName)s.\"),"},{"line_number":3915,"context_line":"                {\u0027fastPolicyName\u0027: extraSpecs[FASTPOLICY]})"},{"line_number":3916,"context_line":"            exceptionMessage \u003d (_("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_71181f85","line":3913,"updated":"2015-05-12 21:50:15.000000000","message":"LOG.warn is deprecated, please use LOG.warning.","commit_id":"5a9537f37b87d0ffa09a9e037ee4a0a8c66d1bbd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"76c3da0aef762d1ce5699b6cdbbb24f0db7ba268","unresolved":false,"context_lines":[{"line_number":3910,"context_line":""},{"line_number":3911,"context_line":"        # Manage existing volume is not supported if fast enabled."},{"line_number":3912,"context_line":"        if extraSpecs[FASTPOLICY]:"},{"line_number":3913,"context_line":"            LOG.warn(_LW("},{"line_number":3914,"context_line":"                \"FAST is enabled. Policy: %(fastPolicyName)s.\"),"},{"line_number":3915,"context_line":"                {\u0027fastPolicyName\u0027: extraSpecs[FASTPOLICY]})"},{"line_number":3916,"context_line":"            exceptionMessage \u003d (_("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_47f3fc9e","line":3913,"in_reply_to":"9a0c5dc1_71181f85","updated":"2015-05-13 16:01:00.000000000","message":"Done","commit_id":"5a9537f37b87d0ffa09a9e037ee4a0a8c66d1bbd"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9511c5f394ddd8b0a5fe28b14c50add9b8d20859","unresolved":false,"context_lines":[{"line_number":3937,"context_line":"            self.utils.get_associated_replication_from_source_volume("},{"line_number":3938,"context_line":"                self.conn, storageSystemName, deviceId))"},{"line_number":3939,"context_line":"        if repSessionInstanceName is not None:"},{"line_number":3940,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3941,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3942,"context_line":"                \"It is the source volume of replication session %(sync)s.\")"},{"line_number":3943,"context_line":"                % {\u0027deviceId\u0027: deviceId,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_704c7442","line":3940,"updated":"2015-05-13 16:59:29.000000000","message":"Should use _LE since it is passed to LOG.error?","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"03cc1e06c55b8cd17b22e7d3a7dff877f70f0920","unresolved":false,"context_lines":[{"line_number":3937,"context_line":"            self.utils.get_associated_replication_from_source_volume("},{"line_number":3938,"context_line":"                self.conn, storageSystemName, deviceId))"},{"line_number":3939,"context_line":"        if repSessionInstanceName is not None:"},{"line_number":3940,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3941,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3942,"context_line":"                \"It is the source volume of replication session %(sync)s.\")"},{"line_number":3943,"context_line":"                % {\u0027deviceId\u0027: deviceId,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_be0f5687","line":3940,"in_reply_to":"9a0c5dc1_1e054279","updated":"2015-05-13 19:39:37.000000000","message":"Then on L3947 it is used for the exception. _() is the correct decorator to use.","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e19cd7d673696a7ff77e697109447cb1137e8ff5","unresolved":false,"context_lines":[{"line_number":3937,"context_line":"            self.utils.get_associated_replication_from_source_volume("},{"line_number":3938,"context_line":"                self.conn, storageSystemName, deviceId))"},{"line_number":3939,"context_line":"        if repSessionInstanceName is not None:"},{"line_number":3940,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3941,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3942,"context_line":"                \"It is the source volume of replication session %(sync)s.\")"},{"line_number":3943,"context_line":"                % {\u0027deviceId\u0027: deviceId,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_7e367ee8","line":3940,"in_reply_to":"9a0c5dc1_704c7442","updated":"2015-05-13 19:26:34.000000000","message":"No, this message also goes to the exception that is raised below.  It needs to be _, not _LE.","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"e412cb909d1c73c00783f23126ae81f416c97616","unresolved":false,"context_lines":[{"line_number":3937,"context_line":"            self.utils.get_associated_replication_from_source_volume("},{"line_number":3938,"context_line":"                self.conn, storageSystemName, deviceId))"},{"line_number":3939,"context_line":"        if repSessionInstanceName is not None:"},{"line_number":3940,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3941,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3942,"context_line":"                \"It is the source volume of replication session %(sync)s.\")"},{"line_number":3943,"context_line":"                % {\u0027deviceId\u0027: deviceId,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_1e054279","line":3940,"in_reply_to":"9a0c5dc1_7e367ee8","updated":"2015-05-13 19:38:11.000000000","message":"What about L3945?  It is used in LOG.error().","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"e04b05f26b0c3bbcf260e3cca68a6a26e7fc0d17","unresolved":false,"context_lines":[{"line_number":3937,"context_line":"            self.utils.get_associated_replication_from_source_volume("},{"line_number":3938,"context_line":"                self.conn, storageSystemName, deviceId))"},{"line_number":3939,"context_line":"        if repSessionInstanceName is not None:"},{"line_number":3940,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3941,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3942,"context_line":"                \"It is the source volume of replication session %(sync)s.\")"},{"line_number":3943,"context_line":"                % {\u0027deviceId\u0027: deviceId,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_1ebd4268","line":3940,"in_reply_to":"9a0c5dc1_be0f5687","updated":"2015-05-13 19:46:33.000000000","message":"Ok.  Didn\u0027t know there were exceptions to the _LE() rule.  I have no problems with this.","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9511c5f394ddd8b0a5fe28b14c50add9b8d20859","unresolved":false,"context_lines":[{"line_number":3957,"context_line":"                  {\u0027volPool\u0027: volumePoolName,"},{"line_number":3958,"context_line":"                   \u0027cinderPool\u0027: cinderPoolName})"},{"line_number":3959,"context_line":"        if volumePoolName !\u003d cinderPoolName:"},{"line_number":3960,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3961,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. The external \""},{"line_number":3962,"context_line":"                \"volume is not in the pool managed by current cinder host.\")"},{"line_number":3963,"context_line":"                % {\u0027deviceId\u0027: deviceId})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_3056fcd2","line":3960,"updated":"2015-05-13 16:59:29.000000000","message":"Ditto","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e19cd7d673696a7ff77e697109447cb1137e8ff5","unresolved":false,"context_lines":[{"line_number":3957,"context_line":"                  {\u0027volPool\u0027: volumePoolName,"},{"line_number":3958,"context_line":"                   \u0027cinderPool\u0027: cinderPoolName})"},{"line_number":3959,"context_line":"        if volumePoolName !\u003d cinderPoolName:"},{"line_number":3960,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3961,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. The external \""},{"line_number":3962,"context_line":"                \"volume is not in the pool managed by current cinder host.\")"},{"line_number":3963,"context_line":"                % {\u0027deviceId\u0027: deviceId})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_1e4e626f","line":3960,"in_reply_to":"9a0c5dc1_3056fcd2","updated":"2015-05-13 19:26:34.000000000","message":"Same","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9511c5f394ddd8b0a5fe28b14c50add9b8d20859","unresolved":false,"context_lines":[{"line_number":4009,"context_line":"                                                         arrayName, deviceId))"},{"line_number":4010,"context_line":"        volumeInstance \u003d self.conn.GetInstance(volumeInstanceName)"},{"line_number":4011,"context_line":"        byteSize \u003d self.utils.get_volume_size(self.conn, volumeInstance)"},{"line_number":4012,"context_line":"        gbSize \u003d int(byteSize) / 1024 / 1024 / 1024"},{"line_number":4013,"context_line":"        LOG.debug("},{"line_number":4014,"context_line":"            \"Size of volume %(deviceID)s is %(volumeSize)s GB.\","},{"line_number":4015,"context_line":"            {\u0027deviceID\u0027: deviceId,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_506e1097","line":4012,"updated":"2015-05-13 16:59:29.000000000","message":"Use oslo_utils\u0027 units.Gi?","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e19cd7d673696a7ff77e697109447cb1137e8ff5","unresolved":false,"context_lines":[{"line_number":4009,"context_line":"                                                         arrayName, deviceId))"},{"line_number":4010,"context_line":"        volumeInstance \u003d self.conn.GetInstance(volumeInstanceName)"},{"line_number":4011,"context_line":"        byteSize \u003d self.utils.get_volume_size(self.conn, volumeInstance)"},{"line_number":4012,"context_line":"        gbSize \u003d int(byteSize) / 1024 / 1024 / 1024"},{"line_number":4013,"context_line":"        LOG.debug("},{"line_number":4014,"context_line":"            \"Size of volume %(deviceID)s is %(volumeSize)s GB.\","},{"line_number":4015,"context_line":"            {\u0027deviceID\u0027: deviceId,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_be5ab628","line":4012,"in_reply_to":"9a0c5dc1_506e1097","updated":"2015-05-13 19:26:34.000000000","message":"sure","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":3900,"context_line":"                                                                 external_ref)"},{"line_number":3901,"context_line":""},{"line_number":3902,"context_line":"        # Manage existing volume is not supported if fast enabled."},{"line_number":3903,"context_line":"        if extraSpecs[FASTPOLICY]:"},{"line_number":3904,"context_line":"            LOG.warning(_LW("},{"line_number":3905,"context_line":"                \"FAST is enabled. Policy: %(fastPolicyName)s.\"),"},{"line_number":3906,"context_line":"                {\u0027fastPolicyName\u0027: extraSpecs[FASTPOLICY]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_5776533f","line":3903,"updated":"2015-05-14 09:53:28.000000000","message":"I don\u0027t see unit test coverage for this path.","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":3900,"context_line":"                                                                 external_ref)"},{"line_number":3901,"context_line":""},{"line_number":3902,"context_line":"        # Manage existing volume is not supported if fast enabled."},{"line_number":3903,"context_line":"        if extraSpecs[FASTPOLICY]:"},{"line_number":3904,"context_line":"            LOG.warning(_LW("},{"line_number":3905,"context_line":"                \"FAST is enabled. Policy: %(fastPolicyName)s.\"),"},{"line_number":3906,"context_line":"                {\u0027fastPolicyName\u0027: extraSpecs[FASTPOLICY]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_2c1ec50c","line":3903,"in_reply_to":"7a016987_5776533f","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":4033,"context_line":"        self._initial_setup(volume)"},{"line_number":4034,"context_line":"        self.conn \u003d self._get_ecom_connection()"},{"line_number":4035,"context_line":"        volumeInstance \u003d self._find_lun(volume)"},{"line_number":4036,"context_line":"        if volumeInstance is None:"},{"line_number":4037,"context_line":"            exceptionMessage \u003d (_(\"Cannot find Volume: %(volumename)s. \""},{"line_number":4038,"context_line":"                                  \"unmanage operation.  Exiting...\")"},{"line_number":4039,"context_line":"                                % {\u0027id\u0027: volumeId})"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_d78123fd","line":4036,"updated":"2015-05-14 09:53:28.000000000","message":"I don\u0027t see unit test coverage for this path.","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":4033,"context_line":"        self._initial_setup(volume)"},{"line_number":4034,"context_line":"        self.conn \u003d self._get_ecom_connection()"},{"line_number":4035,"context_line":"        volumeInstance \u003d self._find_lun(volume)"},{"line_number":4036,"context_line":"        if volumeInstance is None:"},{"line_number":4037,"context_line":"            exceptionMessage \u003d (_(\"Cannot find Volume: %(volumename)s. \""},{"line_number":4038,"context_line":"                                  \"unmanage operation.  Exiting...\")"},{"line_number":4039,"context_line":"                                % {\u0027id\u0027: volumeId})"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_ec178deb","line":4036,"in_reply_to":"7a016987_d78123fd","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":3886,"context_line":"    def manage_existing(self, volume, external_ref):"},{"line_number":3887,"context_line":"        \"\"\"Manages an existing VMAX Volume (import to Cinder)."},{"line_number":3888,"context_line":""},{"line_number":3889,"context_line":"        Renames the Volume to match the expected name for the volume."},{"line_number":3890,"context_line":"        Also need to consider things like QoS, Emulation, account/tenant."},{"line_number":3891,"context_line":""},{"line_number":3892,"context_line":"        :param volume: the volume object including the volume_type_id"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_06e2969f","line":3889,"updated":"2015-05-17 15:16:57.000000000","message":"nit: For more clarity we can say:\n\n\"Renames the existing Volume\"","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":3886,"context_line":"    def manage_existing(self, volume, external_ref):"},{"line_number":3887,"context_line":"        \"\"\"Manages an existing VMAX Volume (import to Cinder)."},{"line_number":3888,"context_line":""},{"line_number":3889,"context_line":"        Renames the Volume to match the expected name for the volume."},{"line_number":3890,"context_line":"        Also need to consider things like QoS, Emulation, account/tenant."},{"line_number":3891,"context_line":""},{"line_number":3892,"context_line":"        :param volume: the volume object including the volume_type_id"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_26f84b49","line":3889,"in_reply_to":"7a016987_06e2969f","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":3911,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":3912,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":3913,"context_line":"                data\u003dexceptionMessage)"},{"line_number":3914,"context_line":"        # Check if the volume is attach by checking if in any masking view."},{"line_number":3915,"context_line":"        volumeInstanceName \u003d ("},{"line_number":3916,"context_line":"            self.utils.find_volume_by_device_id_on_array(self.conn,"},{"line_number":3917,"context_line":"                                                         arrayName, deviceId))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_6656ea5d","line":3914,"updated":"2015-05-17 15:16:57.000000000","message":"nit: s/attach/attached","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":3911,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":3912,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":3913,"context_line":"                data\u003dexceptionMessage)"},{"line_number":3914,"context_line":"        # Check if the volume is attach by checking if in any masking view."},{"line_number":3915,"context_line":"        volumeInstanceName \u003d ("},{"line_number":3916,"context_line":"            self.utils.find_volume_by_device_id_on_array(self.conn,"},{"line_number":3917,"context_line":"                                                         arrayName, deviceId))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_a6a2fb49","line":3914,"in_reply_to":"7a016987_6656ea5d","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":3919,"context_line":"            self.utils.get_storage_group_from_volume("},{"line_number":3920,"context_line":"                self.conn, volumeInstanceName))"},{"line_number":3921,"context_line":""},{"line_number":3922,"context_line":"        if sgInstanceName is not None:"},{"line_number":3923,"context_line":"            mvInstanceName \u003d self.masking.get_masking_view_from_storage_group("},{"line_number":3924,"context_line":"                self.conn, sgInstanceName)"},{"line_number":3925,"context_line":"            if mvInstanceName is not None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_c6647e4a","line":3922,"updated":"2015-05-17 15:16:57.000000000","message":"nit: We can simply check this condition using:\n\"if sgInstanceName:\"","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":3919,"context_line":"            self.utils.get_storage_group_from_volume("},{"line_number":3920,"context_line":"                self.conn, volumeInstanceName))"},{"line_number":3921,"context_line":""},{"line_number":3922,"context_line":"        if sgInstanceName is not None:"},{"line_number":3923,"context_line":"            mvInstanceName \u003d self.masking.get_masking_view_from_storage_group("},{"line_number":3924,"context_line":"                self.conn, sgInstanceName)"},{"line_number":3925,"context_line":"            if mvInstanceName is not None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_86881fc8","line":3922,"in_reply_to":"7a016987_c6647e4a","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":3922,"context_line":"        if sgInstanceName is not None:"},{"line_number":3923,"context_line":"            mvInstanceName \u003d self.masking.get_masking_view_from_storage_group("},{"line_number":3924,"context_line":"                self.conn, sgInstanceName)"},{"line_number":3925,"context_line":"            if mvInstanceName is not None:"},{"line_number":3926,"context_line":"                exceptionMessage \u003d (_("},{"line_number":3927,"context_line":"                    \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3928,"context_line":"                    \"Volume is in masking view %(mv)s.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_e661ba3a","line":3925,"updated":"2015-05-17 15:16:57.000000000","message":"nit: Same as above:\n\"if myInstanceName:\"","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":3922,"context_line":"        if sgInstanceName is not None:"},{"line_number":3923,"context_line":"            mvInstanceName \u003d self.masking.get_masking_view_from_storage_group("},{"line_number":3924,"context_line":"                self.conn, sgInstanceName)"},{"line_number":3925,"context_line":"            if mvInstanceName is not None:"},{"line_number":3926,"context_line":"                exceptionMessage \u003d (_("},{"line_number":3927,"context_line":"                    \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3928,"context_line":"                    \"Volume is in masking view %(mv)s.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_668523ac","line":3925,"in_reply_to":"7a016987_e661ba3a","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"        repSessionInstanceName \u003d ("},{"line_number":3939,"context_line":"            self.utils.get_associated_replication_from_source_volume("},{"line_number":3940,"context_line":"                self.conn, storageSystemName, deviceId))"},{"line_number":3941,"context_line":"        if repSessionInstanceName is not None:"},{"line_number":3942,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3943,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3944,"context_line":"                \"It is the source volume of replication session %(sync)s.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_a6e98282","line":3941,"updated":"2015-05-17 15:16:57.000000000","message":"nit: Same as above:\n\nif repSessionInstanceName:","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"        repSessionInstanceName \u003d ("},{"line_number":3939,"context_line":"            self.utils.get_associated_replication_from_source_volume("},{"line_number":3940,"context_line":"                self.conn, storageSystemName, deviceId))"},{"line_number":3941,"context_line":"        if repSessionInstanceName is not None:"},{"line_number":3942,"context_line":"            exceptionMessage \u003d (_("},{"line_number":3943,"context_line":"                \"Unable to import volume %(deviceId)s to cinder. \""},{"line_number":3944,"context_line":"                \"It is the source volume of replication session %(sync)s.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_268f2bce","line":3941,"in_reply_to":"7a016987_a6e98282","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":3954,"context_line":"                                                  volumeInstanceName))"},{"line_number":3955,"context_line":"        volumePoolName \u003d volumePoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3956,"context_line":"        cinderPoolName \u003d cinderPoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3957,"context_line":"        LOG.debug(\"Storage pool existing volume is in: %(volPool)s, \""},{"line_number":3958,"context_line":"                  \"Storage pool current cinder manages: %(cinderPool)s.\","},{"line_number":3959,"context_line":"                  {\u0027volPool\u0027: volumePoolName,"},{"line_number":3960,"context_line":"                   \u0027cinderPool\u0027: cinderPoolName})"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_46ff6e34","line":3957,"updated":"2015-05-17 15:16:57.000000000","message":"nit: I think this should be:\n\n\"Storage pool of existing volume is:\"\n\n(OR)\n\n\"Existing volume is in: %(volPool)s storage pool\"\n\nI am not sure. Please check.","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":3954,"context_line":"                                                  volumeInstanceName))"},{"line_number":3955,"context_line":"        volumePoolName \u003d volumePoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3956,"context_line":"        cinderPoolName \u003d cinderPoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3957,"context_line":"        LOG.debug(\"Storage pool existing volume is in: %(volPool)s, \""},{"line_number":3958,"context_line":"                  \"Storage pool current cinder manages: %(cinderPool)s.\","},{"line_number":3959,"context_line":"                  {\u0027volPool\u0027: volumePoolName,"},{"line_number":3960,"context_line":"                   \u0027cinderPool\u0027: cinderPoolName})"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_a6b9db7b","line":3957,"in_reply_to":"7a016987_46ff6e34","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":3955,"context_line":"        volumePoolName \u003d volumePoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3956,"context_line":"        cinderPoolName \u003d cinderPoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3957,"context_line":"        LOG.debug(\"Storage pool existing volume is in: %(volPool)s, \""},{"line_number":3958,"context_line":"                  \"Storage pool current cinder manages: %(cinderPool)s.\","},{"line_number":3959,"context_line":"                  {\u0027volPool\u0027: volumePoolName,"},{"line_number":3960,"context_line":"                   \u0027cinderPool\u0027: cinderPoolName})"},{"line_number":3961,"context_line":"        if volumePoolName !\u003d cinderPoolName:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_86a3264f","line":3958,"updated":"2015-05-17 15:16:57.000000000","message":"\"Storage pool managed by cinder is:\"","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":3955,"context_line":"        volumePoolName \u003d volumePoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3956,"context_line":"        cinderPoolName \u003d cinderPoolInstanceName[\u0027InstanceID\u0027]"},{"line_number":3957,"context_line":"        LOG.debug(\"Storage pool existing volume is in: %(volPool)s, \""},{"line_number":3958,"context_line":"                  \"Storage pool current cinder manages: %(cinderPool)s.\","},{"line_number":3959,"context_line":"                  {\u0027volPool\u0027: volumePoolName,"},{"line_number":3960,"context_line":"                   \u0027cinderPool\u0027: cinderPoolName})"},{"line_number":3961,"context_line":"        if volumePoolName !\u003d cinderPoolName:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_0649cf8e","line":3958,"in_reply_to":"7a016987_86a3264f","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":4001,"context_line":"        :param external_ref: reference to the existing volume"},{"line_number":4002,"context_line":"        :returns: size of the volume in GB"},{"line_number":4003,"context_line":"        \"\"\""},{"line_number":4004,"context_line":"        LOG.debug(\"Entering common manage_existing_get_size.\""},{"line_number":4005,"context_line":"                  \"Volume: %(volume)s.\","},{"line_number":4006,"context_line":"                  {\u0027volume\u0027: volume})"},{"line_number":4007,"context_line":"        arrayName, deviceId \u003d self.utils.get_array_and_device_id(volume,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_c6c0fee2","line":4004,"updated":"2015-05-17 15:16:57.000000000","message":"What is ment by \"Entering common\"?","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":4001,"context_line":"        :param external_ref: reference to the existing volume"},{"line_number":4002,"context_line":"        :returns: size of the volume in GB"},{"line_number":4003,"context_line":"        \"\"\""},{"line_number":4004,"context_line":"        LOG.debug(\"Entering common manage_existing_get_size.\""},{"line_number":4005,"context_line":"                  \"Volume: %(volume)s.\","},{"line_number":4006,"context_line":"                  {\u0027volume\u0027: volume})"},{"line_number":4007,"context_line":"        arrayName, deviceId \u003d self.utils.get_array_and_device_id(volume,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_865dbf4a","line":4004,"in_reply_to":"7a016987_c6c0fee2","updated":"2015-05-26 03:58:31.000000000","message":"This is a debug message for entering a method in emc_vmax_common.  I reworded it.","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":4020,"context_line":""},{"line_number":4021,"context_line":"    def unmanage(self, volume):"},{"line_number":4022,"context_line":"        \"\"\"Export VMAX volume from Cinder, leave the volume intact on the"},{"line_number":4023,"context_line":"        backend array."},{"line_number":4024,"context_line":""},{"line_number":4025,"context_line":"        :param volume: the volume object"},{"line_number":4026,"context_line":"        :raises: VolumeBackendAPIException"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_c667de23","line":4023,"updated":"2015-05-17 15:16:57.000000000","message":"http://docs.openstack.org/developer/hacking/#docstrings\n\nA multi line docstring has a one-line summary, less than 80 characters.","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":4020,"context_line":""},{"line_number":4021,"context_line":"    def unmanage(self, volume):"},{"line_number":4022,"context_line":"        \"\"\"Export VMAX volume from Cinder, leave the volume intact on the"},{"line_number":4023,"context_line":"        backend array."},{"line_number":4024,"context_line":""},{"line_number":4025,"context_line":"        :param volume: the volume object"},{"line_number":4026,"context_line":"        :raises: VolumeBackendAPIException"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_6621a3b4","line":4023,"in_reply_to":"7a016987_c667de23","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"493378e89d5a1d80969728c6a635154d369ff52c","unresolved":false,"context_lines":[{"line_number":3923,"context_line":"                                                         arrayName, deviceId))"},{"line_number":3924,"context_line":"        sgInstanceName \u003d ("},{"line_number":3925,"context_line":"            self.utils.get_storage_group_from_volume("},{"line_number":3926,"context_line":"                self.conn, volumeInstanceName))"},{"line_number":3927,"context_line":""},{"line_number":3928,"context_line":"        if sgInstanceName:"},{"line_number":3929,"context_line":"            mvInstanceName \u003d self.masking.get_masking_view_from_storage_group("}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_f21c06c3","line":3926,"updated":"2015-05-27 04:08:52.000000000","message":"There is short of a argument \u0027sgname\u0027. So the UT test failed.","commit_id":"593c5a6d314379e136df74c186b5910759599af1"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b90f583ee35e01142036c0d7b1a6a99ceb10b149","unresolved":false,"context_lines":[{"line_number":3923,"context_line":"                                                         arrayName, deviceId))"},{"line_number":3924,"context_line":"        sgInstanceName \u003d ("},{"line_number":3925,"context_line":"            self.utils.get_storage_group_from_volume("},{"line_number":3926,"context_line":"                self.conn, volumeInstanceName))"},{"line_number":3927,"context_line":""},{"line_number":3928,"context_line":"        if sgInstanceName:"},{"line_number":3929,"context_line":"            mvInstanceName \u003d self.masking.get_masking_view_from_storage_group("}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_8f5c194c","line":3926,"in_reply_to":"7a016987_f21c06c3","updated":"2015-05-29 14:00:07.000000000","message":"Done","commit_id":"593c5a6d314379e136df74c186b5910759599af1"}],"cinder/volume/drivers/emc/emc_vmax_fc.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        Renames the Volume to match the expected name for the volume."},{"line_number":328,"context_line":"        Also need to consider things like QoS, Emulation, account/tenant."},{"line_number":329,"context_line":"        \"\"\""},{"line_number":330,"context_line":"        LOG.debug(\"Entering FC driver manage_existing\")"},{"line_number":331,"context_line":"        return self.common.manage_existing(volume, external_ref)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def manage_existing_get_size(self, volume, external_ref):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_fc3526f7","line":330,"updated":"2015-05-14 09:53:28.000000000","message":"Do you really want these debug log messages, or are they perhaps leftovers from development?  I notice that you don\u0027t have log-on-entry messages for the other methods in this file.","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        Renames the Volume to match the expected name for the volume."},{"line_number":328,"context_line":"        Also need to consider things like QoS, Emulation, account/tenant."},{"line_number":329,"context_line":"        \"\"\""},{"line_number":330,"context_line":"        LOG.debug(\"Entering FC driver manage_existing\")"},{"line_number":331,"context_line":"        return self.common.manage_existing(volume, external_ref)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def manage_existing_get_size(self, volume, external_ref):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_acd87554","line":330,"in_reply_to":"7a016987_fc3526f7","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        :param external_ref: reference to the existing volume"},{"line_number":339,"context_line":"        :returns: size of the volume in GB"},{"line_number":340,"context_line":"        \"\"\""},{"line_number":341,"context_line":"        LOG.debug(\"Entering FC driver manage_existing_get_size\")"},{"line_number":342,"context_line":"        return self.common.manage_existing_get_size(volume, external_ref)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def unmanage(self, volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_7c2256bb","line":341,"updated":"2015-05-14 09:53:28.000000000","message":"ditto","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        :param external_ref: reference to the existing volume"},{"line_number":339,"context_line":"        :returns: size of the volume in GB"},{"line_number":340,"context_line":"        \"\"\""},{"line_number":341,"context_line":"        LOG.debug(\"Entering FC driver manage_existing_get_size\")"},{"line_number":342,"context_line":"        return self.common.manage_existing_get_size(volume, external_ref)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def unmanage(self, volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_8cddb944","line":341,"in_reply_to":"7a016987_7c2256bb","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        backend array."},{"line_number":347,"context_line":"        \"\"\""},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        LOG.debug(\"Enter VMAX FC driver unmanage...\")"},{"line_number":350,"context_line":"        return self.common.unmanage(volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_5c2f9aa1","line":349,"updated":"2015-05-14 09:53:28.000000000","message":"ditto","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        backend array."},{"line_number":347,"context_line":"        \"\"\""},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        LOG.debug(\"Enter VMAX FC driver unmanage...\")"},{"line_number":350,"context_line":"        return self.common.unmanage(volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_2ce5a508","line":349,"in_reply_to":"7a016987_5c2f9aa1","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"d8def0e6840e62c60d9b02d4ebd4e8402da375e2","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def unmanage(self, volume):"},{"line_number":343,"context_line":"        \"\"\"Export VMAX volume from Cinder, leave the volume intact on the"},{"line_number":344,"context_line":"        backend array."},{"line_number":345,"context_line":"        \"\"\""},{"line_number":346,"context_line":"        return self.common.unmanage(volume)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_e64bfa85","line":344,"updated":"2015-05-17 15:16:57.000000000","message":"http://docs.openstack.org/developer/hacking/#docstrings\n\nA multi line docstring has a one-line summary, less than 80 characters.","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a2ef09e372f813d84dcc45c21d91089f1611ca78","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def unmanage(self, volume):"},{"line_number":343,"context_line":"        \"\"\"Export VMAX volume from Cinder, leave the volume intact on the"},{"line_number":344,"context_line":"        backend array."},{"line_number":345,"context_line":"        \"\"\""},{"line_number":346,"context_line":"        return self.common.unmanage(volume)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_46e467ab","line":344,"in_reply_to":"7a016987_e64bfa85","updated":"2015-05-26 03:58:31.000000000","message":"Done","commit_id":"9105902e7823d399fc699d8af1eb2cdb5927c29c"}],"cinder/volume/drivers/emc/emc_vmax_iscsi.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        Renames the Volume to match the expected name for the volume."},{"line_number":334,"context_line":"        Also need to consider things like QoS, Emulation, account/tenant."},{"line_number":335,"context_line":"        \"\"\""},{"line_number":336,"context_line":"        LOG.debug(\"Entering ISCSI driver manage_existing\")"},{"line_number":337,"context_line":"        return self.common.manage_existing(volume, external_ref)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def manage_existing_get_size(self, volume, external_ref):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_573413dd","line":336,"updated":"2015-05-14 09:53:28.000000000","message":"Do you really want these debug log messages, or are they perhaps leftovers from development? I notice that you don\u0027t have log-on-entry messages for the other methods in this file.","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        Renames the Volume to match the expected name for the volume."},{"line_number":334,"context_line":"        Also need to consider things like QoS, Emulation, account/tenant."},{"line_number":335,"context_line":"        \"\"\""},{"line_number":336,"context_line":"        LOG.debug(\"Entering ISCSI driver manage_existing\")"},{"line_number":337,"context_line":"        return self.common.manage_existing(volume, external_ref)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def manage_existing_get_size(self, volume, external_ref):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_ccba91e1","line":336,"in_reply_to":"7a016987_573413dd","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        :param external_ref: reference to the existing volume"},{"line_number":345,"context_line":"        :returns: size of the volume in GB"},{"line_number":346,"context_line":"        \"\"\""},{"line_number":347,"context_line":"        LOG.debug(\"Entering ISCSI driver manage_existing_get_size\")"},{"line_number":348,"context_line":"        return self.common.manage_existing_get_size(volume, external_ref)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def unmanage(self, volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_d756c305","line":347,"updated":"2015-05-14 09:53:28.000000000","message":"ditto","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        :param external_ref: reference to the existing volume"},{"line_number":345,"context_line":"        :returns: size of the volume in GB"},{"line_number":346,"context_line":"        \"\"\""},{"line_number":347,"context_line":"        LOG.debug(\"Entering ISCSI driver manage_existing_get_size\")"},{"line_number":348,"context_line":"        return self.common.manage_existing_get_size(volume, external_ref)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def unmanage(self, volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_8cb499f2","line":347,"in_reply_to":"7a016987_d756c305","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        \"\"\"Export VMAX volume from Cinder, leave the volume intact on the"},{"line_number":352,"context_line":"        backend array."},{"line_number":353,"context_line":"        \"\"\""},{"line_number":354,"context_line":"        LOG.debug(\"Enter VMAX ISCSI driver unmanage...\")"},{"line_number":355,"context_line":"        return self.common.unmanage(volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_97416b3c","line":354,"updated":"2015-05-14 09:53:28.000000000","message":"ditto","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        \"\"\"Export VMAX volume from Cinder, leave the volume intact on the"},{"line_number":352,"context_line":"        backend array."},{"line_number":353,"context_line":"        \"\"\""},{"line_number":354,"context_line":"        LOG.debug(\"Enter VMAX ISCSI driver unmanage...\")"},{"line_number":355,"context_line":"        return self.common.unmanage(volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_6cb95de9","line":354,"in_reply_to":"7a016987_97416b3c","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"}],"cinder/volume/drivers/emc/emc_vmax_utils.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9511c5f394ddd8b0a5fe28b14c50add9b8d20859","unresolved":false,"context_lines":[{"line_number":1959,"context_line":"                          {\u0027vol\u0027: foundVolumeInstanceName})"},{"line_number":1960,"context_line":"                break"},{"line_number":1961,"context_line":"        if foundVolumeInstanceName is None:"},{"line_number":1962,"context_line":"            exceptionMessage \u003d (_(\"Volume %(deviceID)s not found.\")"},{"line_number":1963,"context_line":"                                % {\u0027deviceID\u0027: deviceID})"},{"line_number":1964,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":1965,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexceptionMessage)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_50f5f0c8","line":1962,"updated":"2015-05-13 16:59:29.000000000","message":"Use _LE()?","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e19cd7d673696a7ff77e697109447cb1137e8ff5","unresolved":false,"context_lines":[{"line_number":1959,"context_line":"                          {\u0027vol\u0027: foundVolumeInstanceName})"},{"line_number":1960,"context_line":"                break"},{"line_number":1961,"context_line":"        if foundVolumeInstanceName is None:"},{"line_number":1962,"context_line":"            exceptionMessage \u003d (_(\"Volume %(deviceID)s not found.\")"},{"line_number":1963,"context_line":"                                % {\u0027deviceID\u0027: deviceID})"},{"line_number":1964,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":1965,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexceptionMessage)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_3e5ec612","line":1962,"in_reply_to":"9a0c5dc1_50f5f0c8","updated":"2015-05-13 19:26:34.000000000","message":"Same reason as earlier. This message goes to an exception and should be _, not _LE","commit_id":"bb9add0ddd1c250f405907faef549fe20152c3c0"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35055fa4cad75158a109dddfd75dc193e6bf96fa","unresolved":false,"context_lines":[{"line_number":1939,"context_line":"            LOG.warn(_LW(\"Cannot determine the hardware type.\"))"},{"line_number":1940,"context_line":"        return hardwareTypeId"},{"line_number":1941,"context_line":""},{"line_number":1942,"context_line":"    def find_volume_by_device_id_on_array(self, conn, storageSystem, deviceID):"},{"line_number":1943,"context_line":"        \"\"\"Find the volume by device ID on a specific array."},{"line_number":1944,"context_line":""},{"line_number":1945,"context_line":"        :param conn: connection to the ecom server"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_37d8771d","line":1942,"updated":"2015-05-14 09:53:28.000000000","message":"Do you have unit tests for the utils methods?","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"657b297a786806a1f3aa70eb629ca2c1175c3e7e","unresolved":false,"context_lines":[{"line_number":1939,"context_line":"            LOG.warn(_LW(\"Cannot determine the hardware type.\"))"},{"line_number":1940,"context_line":"        return hardwareTypeId"},{"line_number":1941,"context_line":""},{"line_number":1942,"context_line":"    def find_volume_by_device_id_on_array(self, conn, storageSystem, deviceID):"},{"line_number":1943,"context_line":"        \"\"\"Find the volume by device ID on a specific array."},{"line_number":1944,"context_line":""},{"line_number":1945,"context_line":"        :param conn: connection to the ecom server"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_4ccfc17f","line":1942,"in_reply_to":"7a016987_37d8771d","updated":"2015-05-15 03:19:11.000000000","message":"Done","commit_id":"c97b65bff94d4e6ca2e34cc034a02589ed415e77"}]}
