)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0c1b18637d1fa3593622f865ac06b260c4a42d65","unresolved":false,"context_lines":[{"line_number":12,"context_line":"details."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If39be8c8038734b585353d3d714607d3bce25da1"},{"line_number":15,"context_line":"Implements: blueprint vmax-rest"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"7f231b9d_337f2d16","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":10},"updated":"2017-06-16 04:22:15.000000000","message":"Partially-Implements","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1d3c199e20af6ce00e082440eb5242e88b09766b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"details."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If39be8c8038734b585353d3d714607d3bce25da1"},{"line_number":15,"context_line":"Implements: blueprint vmax-rest"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"7f231b9d_9401443b","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":10},"in_reply_to":"7f231b9d_337f2d16","updated":"2017-06-16 08:54:42.000000000","message":"I will change.  I presume all of the other features should be changed to Partially-Implements also?","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0e2cadf56f8d506ec54fff804eeb2843b43c40a3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"details."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If39be8c8038734b585353d3d714607d3bce25da1"},{"line_number":15,"context_line":"Implements: blueprint vmax-rest"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"7f231b9d_40b04ddd","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":10},"in_reply_to":"7f231b9d_9401443b","updated":"2017-06-19 15:34:21.000000000","message":"Yes.","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"47dcd0e564afdbcea48dcd097879887278e247ef","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMAX driver - Retype, replacing SMI-S with REST"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In VMAX driver version 3.0, SMI-S will be replaced with unisphere"},{"line_number":10,"context_line":"REST. This is porting Retype from SMIS to REST."},{"line_number":11,"context_line":"See original https://review.openstack.org/#/c/397862/ for more"},{"line_number":12,"context_line":"details."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"7f231b9d_fb294ee5","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":5},"updated":"2017-06-19 16:03:55.000000000","message":"In the new VMAX driver 3.0, SMI-S has been replaced with unisphere REST.","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"}],"cinder/volume/drivers/dell_emc/vmax/common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0c1b18637d1fa3593622f865ac06b260c4a42d65","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"            information"},{"line_number":1537,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"},{"line_number":1538,"context_line":"        \"\"\""},{"line_number":1539,"context_line":"        volume_name \u003d volume[\u0027name\u0027]"},{"line_number":1540,"context_line":"        LOG.info(\"Migrating Volume %(volume)s via retype.\","},{"line_number":1541,"context_line":"                 {\u0027volume\u0027: volume_name})"},{"line_number":1542,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_33a4cda5","line":1539,"range":{"start_line":1539,"start_character":22,"end_line":1539,"end_character":36},"updated":"2017-06-16 04:22:15.000000000","message":"volume.name","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1d3c199e20af6ce00e082440eb5242e88b09766b","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"            information"},{"line_number":1537,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"},{"line_number":1538,"context_line":"        \"\"\""},{"line_number":1539,"context_line":"        volume_name \u003d volume[\u0027name\u0027]"},{"line_number":1540,"context_line":"        LOG.info(\"Migrating Volume %(volume)s via retype.\","},{"line_number":1541,"context_line":"                 {\u0027volume\u0027: volume_name})"},{"line_number":1542,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_f49d180a","line":1539,"range":{"start_line":1539,"start_character":22,"end_line":1539,"end_character":36},"in_reply_to":"7f231b9d_33a4cda5","updated":"2017-06-16 08:54:42.000000000","message":"We will change.  Thanks","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0c1b18637d1fa3593622f865ac06b260c4a42d65","unresolved":false,"context_lines":[{"line_number":1579,"context_line":"                \"Retype Volume %(name)s from source host %(sourceHost)s \""},{"line_number":1580,"context_line":"                \"to target host %(targetHost)s. \","},{"line_number":1581,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":1582,"context_line":"                 \u0027sourceHost\u0027: volume[\u0027host\u0027],"},{"line_number":1583,"context_line":"                 \u0027targetHost\u0027: host[\u0027host\u0027]})"},{"line_number":1584,"context_line":"            return self._migrate_volume("},{"line_number":1585,"context_line":"                extra_specs[utils.ARRAY], device_id,"}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_53b4e9d0","line":1582,"range":{"start_line":1582,"start_character":31,"end_line":1582,"end_character":45},"updated":"2017-06-16 04:22:15.000000000","message":"volume.host","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1d3c199e20af6ce00e082440eb5242e88b09766b","unresolved":false,"context_lines":[{"line_number":1579,"context_line":"                \"Retype Volume %(name)s from source host %(sourceHost)s \""},{"line_number":1580,"context_line":"                \"to target host %(targetHost)s. \","},{"line_number":1581,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":1582,"context_line":"                 \u0027sourceHost\u0027: volume[\u0027host\u0027],"},{"line_number":1583,"context_line":"                 \u0027targetHost\u0027: host[\u0027host\u0027]})"},{"line_number":1584,"context_line":"            return self._migrate_volume("},{"line_number":1585,"context_line":"                extra_specs[utils.ARRAY], device_id,"}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_d4b9fc78","line":1582,"range":{"start_line":1582,"start_character":31,"end_line":1582,"end_character":45},"in_reply_to":"7f231b9d_53b4e9d0","updated":"2017-06-16 08:54:42.000000000","message":"We will change","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0c1b18637d1fa3593622f865ac06b260c4a42d65","unresolved":false,"context_lines":[{"line_number":1620,"context_line":"                array, srp, target_slo, target_workload, extra_specs)"},{"line_number":1621,"context_line":"        except Exception as e:"},{"line_number":1622,"context_line":"            LOG.error(\"Failed to get or create storage group. \""},{"line_number":1623,"context_line":"                      \"Exception received was %(e)s\", {\u0027e\u0027: e})"},{"line_number":1624,"context_line":"            return False"},{"line_number":1625,"context_line":""},{"line_number":1626,"context_line":"        self.masking.add_volume_to_storage_group("}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_53e989b4","line":1623,"updated":"2017-06-16 04:22:15.000000000","message":"Add ending period","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1d3c199e20af6ce00e082440eb5242e88b09766b","unresolved":false,"context_lines":[{"line_number":1620,"context_line":"                array, srp, target_slo, target_workload, extra_specs)"},{"line_number":1621,"context_line":"        except Exception as e:"},{"line_number":1622,"context_line":"            LOG.error(\"Failed to get or create storage group. \""},{"line_number":1623,"context_line":"                      \"Exception received was %(e)s\", {\u0027e\u0027: e})"},{"line_number":1624,"context_line":"            return False"},{"line_number":1625,"context_line":""},{"line_number":1626,"context_line":"        self.masking.add_volume_to_storage_group("}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_749108f1","line":1623,"in_reply_to":"7f231b9d_53e989b4","updated":"2017-06-16 08:54:42.000000000","message":"Sure","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0c1b18637d1fa3593622f865ac06b260c4a42d65","unresolved":false,"context_lines":[{"line_number":1644,"context_line":"        \"\"\"Check if volume is suitable for storage assisted (pool) migration."},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"        :param device_id: the volume device id"},{"line_number":1647,"context_line":"        :param host: the host object"},{"line_number":1648,"context_line":"        :param source_array: the volume\u0027s current array serial number"},{"line_number":1649,"context_line":"        :param source_srp: the volume\u0027s current pool name"},{"line_number":1650,"context_line":"        :param volume_name: the name of the volume to be migrated"}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_f3d775ed","line":1647,"range":{"start_line":1647,"start_character":21,"end_line":1647,"end_character":36},"updated":"2017-06-16 04:22:15.000000000","message":"Is this \"host\" object or dict?","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"400a8a9cf9f87692be2ca50e02d2b6fe545125ec","unresolved":false,"context_lines":[{"line_number":1644,"context_line":"        \"\"\"Check if volume is suitable for storage assisted (pool) migration."},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"        :param device_id: the volume device id"},{"line_number":1647,"context_line":"        :param host: the host object"},{"line_number":1648,"context_line":"        :param source_array: the volume\u0027s current array serial number"},{"line_number":1649,"context_line":"        :param source_srp: the volume\u0027s current pool name"},{"line_number":1650,"context_line":"        :param volume_name: the name of the volume to be migrated"}],"source_content_type":"text/x-python","patch_set":24,"id":"7f231b9d_d7a0de44","line":1647,"range":{"start_line":1647,"start_character":21,"end_line":1647,"end_character":36},"in_reply_to":"7f231b9d_f3d775ed","updated":"2017-06-16 09:25:56.000000000","message":"It is a dict","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"47dcd0e564afdbcea48dcd097879887278e247ef","unresolved":false,"context_lines":[{"line_number":1574,"context_line":"                \"assisted migration using retype.\","},{"line_number":1575,"context_line":"                {\u0027name\u0027: volume_name})"},{"line_number":1576,"context_line":"            return False"},{"line_number":1577,"context_line":"        if volume[\u0027host\u0027] !\u003d host[\u0027host\u0027]:"},{"line_number":1578,"context_line":"            LOG.debug("},{"line_number":1579,"context_line":"                \"Retype Volume %(name)s from source host %(sourceHost)s \""},{"line_number":1580,"context_line":"                \"to target host %(targetHost)s. \","}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_3bfea66a","line":1577,"range":{"start_line":1577,"start_character":11,"end_line":1577,"end_character":25},"updated":"2017-06-19 16:03:55.000000000","message":"volume.host","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ee1d90d6c87541c04713d1b7cf556ed5707121af","unresolved":false,"context_lines":[{"line_number":1574,"context_line":"                \"assisted migration using retype.\","},{"line_number":1575,"context_line":"                {\u0027name\u0027: volume_name})"},{"line_number":1576,"context_line":"            return False"},{"line_number":1577,"context_line":"        if volume[\u0027host\u0027] !\u003d host[\u0027host\u0027]:"},{"line_number":1578,"context_line":"            LOG.debug("},{"line_number":1579,"context_line":"                \"Retype Volume %(name)s from source host %(sourceHost)s \""},{"line_number":1580,"context_line":"                \"to target host %(targetHost)s. \","}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_bb051616","line":1577,"range":{"start_line":1577,"start_character":11,"end_line":1577,"end_character":25},"in_reply_to":"7f231b9d_3bfea66a","updated":"2017-06-19 16:16:33.000000000","message":"I will change.  Thank you","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"}],"cinder/volume/drivers/dell_emc/vmax/fc.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"47dcd0e564afdbcea48dcd097879887278e247ef","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        :param ctxt: context"},{"line_number":432,"context_line":"        :param volume: the volume object including the volume_type_id"},{"line_number":433,"context_line":"        :param new_type: the new volume type."},{"line_number":434,"context_line":"        :param diff: Unused parameter."},{"line_number":435,"context_line":"        :param host: the host dict holding the relevant"},{"line_number":436,"context_line":"            target(destination) information"},{"line_number":437,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_fbd26eff","line":434,"range":{"start_line":434,"start_character":21,"end_line":434,"end_character":37},"updated":"2017-06-19 16:03:55.000000000","message":"diff is the difference of the new and old volume types.  Not used by the driver here.","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ee1d90d6c87541c04713d1b7cf556ed5707121af","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        :param ctxt: context"},{"line_number":432,"context_line":"        :param volume: the volume object including the volume_type_id"},{"line_number":433,"context_line":"        :param new_type: the new volume type."},{"line_number":434,"context_line":"        :param diff: Unused parameter."},{"line_number":435,"context_line":"        :param host: the host dict holding the relevant"},{"line_number":436,"context_line":"            target(destination) information"},{"line_number":437,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_1623bfa8","line":434,"range":{"start_line":434,"start_character":21,"end_line":434,"end_character":37},"in_reply_to":"7f231b9d_fbd26eff","updated":"2017-06-19 16:16:33.000000000","message":"Thanks","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"}],"cinder/volume/drivers/dell_emc/vmax/iscsi.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"47dcd0e564afdbcea48dcd097879887278e247ef","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        :param ctxt: context"},{"line_number":376,"context_line":"        :param volume: the volume object including the volume_type_id"},{"line_number":377,"context_line":"        :param new_type: the new volume type."},{"line_number":378,"context_line":"        :param diff: Unused parameter."},{"line_number":379,"context_line":"        :param host: the host dict holding the relevant"},{"line_number":380,"context_line":"            target(destination) information"},{"line_number":381,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_3be586dc","line":378,"range":{"start_line":378,"start_character":21,"end_line":378,"end_character":38},"updated":"2017-06-19 16:03:55.000000000","message":"diff is the difference of the new and old volume types.  Not used by the driver here.","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ee1d90d6c87541c04713d1b7cf556ed5707121af","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        :param ctxt: context"},{"line_number":376,"context_line":"        :param volume: the volume object including the volume_type_id"},{"line_number":377,"context_line":"        :param new_type: the new volume type."},{"line_number":378,"context_line":"        :param diff: Unused parameter."},{"line_number":379,"context_line":"        :param host: the host dict holding the relevant"},{"line_number":380,"context_line":"            target(destination) information"},{"line_number":381,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_b633ebf5","line":378,"range":{"start_line":378,"start_character":21,"end_line":378,"end_character":38},"in_reply_to":"7f231b9d_3be586dc","updated":"2017-06-19 16:16:33.000000000","message":"Thanks","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"}],"cinder/volume/drivers/dell_emc/vmax/provision.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"47dcd0e564afdbcea48dcd097879887278e247ef","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        return is_valid_slo, is_valid_workload"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def get_slo_workload_settings_from_storage_group("},{"line_number":375,"context_line":"            self, array, storagegroup):"},{"line_number":376,"context_line":"        \"\"\"Get slo and workload settings from a storage group."},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        :param array: the array serial number"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_7ba3feb2","line":375,"range":{"start_line":375,"start_character":25,"end_line":375,"end_character":37},"updated":"2017-06-19 16:03:55.000000000","message":"Please name this storage_group_name to differentiate from the \"storagegroup\" dict on line 384.","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ee1d90d6c87541c04713d1b7cf556ed5707121af","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        return is_valid_slo, is_valid_workload"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def get_slo_workload_settings_from_storage_group("},{"line_number":375,"context_line":"            self, array, storagegroup):"},{"line_number":376,"context_line":"        \"\"\"Get slo and workload settings from a storage group."},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        :param array: the array serial number"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_764f936a","line":375,"range":{"start_line":375,"start_character":25,"end_line":375,"end_character":37},"in_reply_to":"7f231b9d_7ba3feb2","updated":"2017-06-19 16:16:33.000000000","message":"Sure","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"47dcd0e564afdbcea48dcd097879887278e247ef","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            except KeyError:"},{"line_number":390,"context_line":"                pass"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            exception_message \u003d _(\"Could not retrieve storage group.\")"},{"line_number":393,"context_line":"            LOG.error(exception_message)"},{"line_number":394,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexception_message)"},{"line_number":395,"context_line":"        return \u0027%(slo)s+%(workload)s\u0027 % {\u0027slo\u0027: slo, \u0027workload\u0027: workload}"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_1bb76af7","line":392,"updated":"2017-06-19 16:03:55.000000000","message":"Can you add the name of the storage group in the message.","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ee1d90d6c87541c04713d1b7cf556ed5707121af","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            except KeyError:"},{"line_number":390,"context_line":"                pass"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            exception_message \u003d _(\"Could not retrieve storage group.\")"},{"line_number":393,"context_line":"            LOG.error(exception_message)"},{"line_number":394,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexception_message)"},{"line_number":395,"context_line":"        return \u0027%(slo)s+%(workload)s\u0027 % {\u0027slo\u0027: slo, \u0027workload\u0027: workload}"}],"source_content_type":"text/x-python","patch_set":25,"id":"7f231b9d_16585f2e","line":392,"in_reply_to":"7f231b9d_1bb76af7","updated":"2017-06-19 16:16:33.000000000","message":"Sure","commit_id":"7591d9d7081fdc287701f894ffc0aba74808cbbd"}],"cinder/volume/drivers/dell_emc/vmax/rest/common.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f489deadacfe374cfd0e14aca4c28aad9167b935","unresolved":false,"context_lines":[{"line_number":1562,"context_line":"                array, srp, target_slo, target_workload, extra_specs)"},{"line_number":1563,"context_line":"        except Exception as e:"},{"line_number":1564,"context_line":"            error_message \u003d (\"Failed to get or create storage group. \""},{"line_number":1565,"context_line":"                             \"Exception received was %(e)s\", {\u0027e\u0027: e})"},{"line_number":1566,"context_line":"            LOG.error(error_message)"},{"line_number":1567,"context_line":"            return False"},{"line_number":1568,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f044301_46837ccd","line":1565,"range":{"start_line":1565,"start_character":59,"end_line":1565,"end_character":69},"updated":"2017-05-06 18:48:59.000000000","message":"This needs to be moved into the LOG.error call so it\u0027s passed in as an arg. Otherwise you are passing in a tuple to the call which will not look right in th elog.","commit_id":"52ce6a6f67c3ed17d546d68fae6071dca1803f2b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"51ce522f8e2eddf6b8847aa6d8fe4e4f4abfb9a8","unresolved":false,"context_lines":[{"line_number":1511,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"},{"line_number":1512,"context_line":"        \"\"\""},{"line_number":1513,"context_line":"        volume_name \u003d volume[\u0027name\u0027]"},{"line_number":1514,"context_line":"        LOG.info(\"Migrating using retype Volume: %(volume)s.\","},{"line_number":1515,"context_line":"                 {\u0027volume\u0027: volume_name})"},{"line_number":1516,"context_line":""},{"line_number":1517,"context_line":"        extra_specs \u003d self._initial_setup(volume)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f013ff3_eb224f01","line":1514,"range":{"start_line":1514,"start_character":18,"end_line":1514,"end_character":60},"updated":"2017-05-16 23:18:51.000000000","message":"This is confusing.  I think you mean to say.  \"Migrating Volume %(volume)s via retype.\"","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"aead1f9f2de711b6f259642edd65bfab6ae09beb","unresolved":false,"context_lines":[{"line_number":1511,"context_line":"        :returns: boolean -- True if retype succeeded, False if error"},{"line_number":1512,"context_line":"        \"\"\""},{"line_number":1513,"context_line":"        volume_name \u003d volume[\u0027name\u0027]"},{"line_number":1514,"context_line":"        LOG.info(\"Migrating using retype Volume: %(volume)s.\","},{"line_number":1515,"context_line":"                 {\u0027volume\u0027: volume_name})"},{"line_number":1516,"context_line":""},{"line_number":1517,"context_line":"        extra_specs \u003d self._initial_setup(volume)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_44a96fdd","line":1514,"range":{"start_line":1514,"start_character":18,"end_line":1514,"end_character":60},"in_reply_to":"1f013ff3_eb224f01","updated":"2017-05-17 14:54:20.000000000","message":"Sure.  We will change this","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"51ce522f8e2eddf6b8847aa6d8fe4e4f4abfb9a8","unresolved":false,"context_lines":[{"line_number":1604,"context_line":"            array, device_id, target_sg_name)"},{"line_number":1605,"context_line":"        if not vol_check:"},{"line_number":1606,"context_line":"            LOG.error("},{"line_number":1607,"context_line":"                \"Volume : %(volume_name)s has not been \""},{"line_number":1608,"context_line":"                \"added to target storage group %(storageGroup)s.\","},{"line_number":1609,"context_line":"                {\u0027volume_name\u0027: volume_name,"},{"line_number":1610,"context_line":"                 \u0027storageGroup\u0027: target_sg_name})"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f013ff3_4b5ca37d","line":1607,"range":{"start_line":1607,"start_character":23,"end_line":1607,"end_character":25},"updated":"2017-05-16 23:18:51.000000000","message":"Can you remove the space here to be consistent with other message formats.  Thanks.","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"aead1f9f2de711b6f259642edd65bfab6ae09beb","unresolved":false,"context_lines":[{"line_number":1604,"context_line":"            array, device_id, target_sg_name)"},{"line_number":1605,"context_line":"        if not vol_check:"},{"line_number":1606,"context_line":"            LOG.error("},{"line_number":1607,"context_line":"                \"Volume : %(volume_name)s has not been \""},{"line_number":1608,"context_line":"                \"added to target storage group %(storageGroup)s.\","},{"line_number":1609,"context_line":"                {\u0027volume_name\u0027: volume_name,"},{"line_number":1610,"context_line":"                 \u0027storageGroup\u0027: target_sg_name})"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_e4b7633a","line":1607,"range":{"start_line":1607,"start_character":23,"end_line":1607,"end_character":25},"in_reply_to":"1f013ff3_4b5ca37d","updated":"2017-05-17 14:54:20.000000000","message":"Will do.  Thank you","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"51ce522f8e2eddf6b8847aa6d8fe4e4f4abfb9a8","unresolved":false,"context_lines":[{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"        if target_array_serial not in source_array:"},{"line_number":1645,"context_line":"            LOG.error("},{"line_number":1646,"context_line":"                \"The source array : %(source_array)s does not \""},{"line_number":1647,"context_line":"                \"match the target array: %(target_array)s - \""},{"line_number":1648,"context_line":"                \"skipping storage-assisted migration.\","},{"line_number":1649,"context_line":"                {\u0027source_array\u0027: source_array,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f013ff3_2b5f1773","line":1646,"range":{"start_line":1646,"start_character":32,"end_line":1646,"end_character":34},"updated":"2017-05-16 23:18:51.000000000","message":"Same here.","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"51ce522f8e2eddf6b8847aa6d8fe4e4f4abfb9a8","unresolved":false,"context_lines":[{"line_number":1653,"context_line":"        if target_srp not in source_srp:"},{"line_number":1654,"context_line":"            LOG.error("},{"line_number":1655,"context_line":"                \"Only SLO/workload migration within the same SRP Pool is \""},{"line_number":1656,"context_line":"                \"supported in this version. The source pool : \""},{"line_number":1657,"context_line":"                \"%(source_pool_name)s does not match the target array: \""},{"line_number":1658,"context_line":"                \"%(target_pool)s. Skipping storage-assisted migration.\","},{"line_number":1659,"context_line":"                {\u0027source_pool_name\u0027: source_srp,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f013ff3_eb67ef50","line":1656,"range":{"start_line":1656,"start_character":58,"end_line":1656,"end_character":61},"updated":"2017-05-16 23:18:51.000000000","message":"same here","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"51ce522f8e2eddf6b8847aa6d8fe4e4f4abfb9a8","unresolved":false,"context_lines":[{"line_number":1677,"context_line":"                                      % {\u0027targetSlo\u0027: target_slo,"},{"line_number":1678,"context_line":"                                         \u0027targetWorkload\u0027: target_workload})"},{"line_number":1679,"context_line":"                if target_combination in emc_fast_setting:"},{"line_number":1680,"context_line":"                    LOG.error("},{"line_number":1681,"context_line":"                        \"No action required. Volume: %(volume_name)s is \""},{"line_number":1682,"context_line":"                        \"already part of slo/workload combination: \""},{"line_number":1683,"context_line":"                        \"%(targetCombination)s.\","}],"source_content_type":"text/x-python","patch_set":10,"id":"1f013ff3_6bcabf1a","line":1680,"range":{"start_line":1680,"start_character":20,"end_line":1680,"end_character":29},"updated":"2017-05-16 23:18:51.000000000","message":"Is LOG.error really appropriate here or is LOG.warning more appropriate?","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"aead1f9f2de711b6f259642edd65bfab6ae09beb","unresolved":false,"context_lines":[{"line_number":1677,"context_line":"                                      % {\u0027targetSlo\u0027: target_slo,"},{"line_number":1678,"context_line":"                                         \u0027targetWorkload\u0027: target_workload})"},{"line_number":1679,"context_line":"                if target_combination in emc_fast_setting:"},{"line_number":1680,"context_line":"                    LOG.error("},{"line_number":1681,"context_line":"                        \"No action required. Volume: %(volume_name)s is \""},{"line_number":1682,"context_line":"                        \"already part of slo/workload combination: \""},{"line_number":1683,"context_line":"                        \"%(targetCombination)s.\","}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_e4908398","line":1680,"range":{"start_line":1680,"start_character":20,"end_line":1680,"end_character":29},"in_reply_to":"1f013ff3_6bcabf1a","updated":"2017-05-17 14:54:20.000000000","message":"We will change it.  Thanks","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"}],"cinder/volume/drivers/dell_emc/vmax/rest/fc.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"51ce522f8e2eddf6b8847aa6d8fe4e4f4abfb9a8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        1.0.0 - Initial driver"},{"line_number":37,"context_line":"        2.0.0 - Add driver requirement functions"},{"line_number":38,"context_line":"        3.0.0 - Rest based driver"},{"line_number":39,"context_line":"        3.0.1 - Manage existing/ unmanage"},{"line_number":40,"context_line":"        3.0.2 - Retype (storage-assisted migration)"},{"line_number":41,"context_line":"    \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    VERSION \u003d \"3.0.2\""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f013ff3_2bd4b7bc","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":51},"updated":"2017-05-16 23:18:51.000000000","message":"So, I think it is more appropriate to be incrementing versions as you are here instead of not doing it as you do in later patches.  Can you explain the plan please?","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"aead1f9f2de711b6f259642edd65bfab6ae09beb","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        1.0.0 - Initial driver"},{"line_number":37,"context_line":"        2.0.0 - Add driver requirement functions"},{"line_number":38,"context_line":"        3.0.0 - Rest based driver"},{"line_number":39,"context_line":"        3.0.1 - Manage existing/ unmanage"},{"line_number":40,"context_line":"        3.0.2 - Retype (storage-assisted migration)"},{"line_number":41,"context_line":"    \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    VERSION \u003d \"3.0.2\""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_24731b83","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":51},"in_reply_to":"1f013ff3_2bd4b7bc","updated":"2017-05-17 14:54:20.000000000","message":"We will not be incrementing versions.  This is a typo and will be removed.  Thank you.\n3.0.0 - Rest based driver\n      - Manage existing/ unmanage\n      - Retype (storage-assisted migration)","commit_id":"e470bea66f7c91bdeac95890f40182d13d91b1e3"}],"cinder/volume/drivers/dell_emc/vmax/rest/provision.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f489deadacfe374cfd0e14aca4c28aad9167b935","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            except KeyError:"},{"line_number":390,"context_line":"                pass"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            exception_message \u003d \u0027Could not retrieve storage group %(sg)s\u0027"},{"line_number":393,"context_line":"            LOG.error(exception_message)"},{"line_number":394,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexception_message)"},{"line_number":395,"context_line":"        return \u0027%(slo)s+%(workload)s\u0027 % {\u0027slo\u0027: slo, \u0027workload\u0027: workload}"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f044301_c6766c07","line":392,"updated":"2017-05-06 18:48:59.000000000","message":"Since this is used in the exception message, this should have _().\n\nYou also have \"%(sg)s\" in the string, but you are not doing the string formatting to put something there, so if that LOG.error() gets called it will fail.","commit_id":"52ce6a6f67c3ed17d546d68fae6071dca1803f2b"}],"releasenotes/notes/vmax-rest-retype-ceba5e8d04f637b4.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f489deadacfe374cfd0e14aca4c28aad9167b935","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New VMAX driver version 3.0, replacing SMI-S with unisphere REST for"},{"line_number":5,"context_line":"    retype functionality."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3f044301_a671200f","line":4,"range":{"start_line":4,"start_character":54,"end_line":4,"end_character":63},"updated":"2017-05-06 18:48:59.000000000","message":"Should this be \"Unisphere\" instead of \"unisphere\"?","commit_id":"52ce6a6f67c3ed17d546d68fae6071dca1803f2b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0c1b18637d1fa3593622f865ac06b260c4a42d65","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New VMAX driver version 3.0, replacing SMI-S with Unisphere REST for"},{"line_number":5,"context_line":"    retype functionality."}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7f231b9d_f34535b5","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":25},"updated":"2017-06-16 04:22:15.000000000","message":"There\u0027s no need to repeat \"replacing SMI-S with REST\" as it was already in the base driver patch.  Change to the following:\n\nAdd retype functionality in the VMAX driver version 3.0.","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1d3c199e20af6ce00e082440eb5242e88b09766b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New VMAX driver version 3.0, replacing SMI-S with Unisphere REST for"},{"line_number":5,"context_line":"    retype functionality."}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7f231b9d_b479e0c8","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":25},"in_reply_to":"7f231b9d_f34535b5","updated":"2017-06-16 08:54:42.000000000","message":"Sure.  I will change it here and in all other feature release notes also","commit_id":"22849aa913b7703e01a68160e8185b0faba70e03"}]}
