)]}'
{"cinder/cmd/status.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"45cb5867e5cedbad4e1cc4b2bcb771f85bd4d644","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder.policy import DEFAULT_POLICY_FILENAME"},{"line_number":27,"context_line":"import cinder.service  # noqa"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"import cinder.volume.driver as vol_driver"},{"line_number":30,"context_line":"import cinder.volume.drivers.san.san as driver_san"},{"line_number":31,"context_line":"import cinder.volume.manager as volume_manager"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_c30de290","line":28,"updated":"2019-07-29 13:57:04.000000000","message":"nit: Extra blank line here and on line 32 should be removed.","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"45cb5867e5cedbad4e1cc4b2bcb771f85bd4d644","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                    CONF[backend][\u0027driver_ssl_cert_path\u0027])"},{"line_number":107,"context_line":"                            else:"},{"line_number":108,"context_line":"                                powermax_conn_info[\u0027SSLVerify\u0027] \u003d True"},{"line_number":109,"context_line":"                        else:"},{"line_number":110,"context_line":"                            powermax_conn_info[\u0027SSLVerify\u0027] \u003d False"},{"line_number":111,"context_line":"                    else:"},{"line_number":112,"context_line":"                        powermax_conn_info[\u0027SSLVerify\u0027] \u003d False"},{"line_number":113,"context_line":"        return powermax_conn_info"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_03621a3f","line":112,"range":{"start_line":109,"start_character":24,"end_line":112,"end_character":63},"updated":"2019-07-29 13:57:04.000000000","message":"Might be better to just set this to False as a default, then let the condition code set it to the configured value.","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6b42c8c5e12e2355ecb2b5e3941273771c4955f8","unresolved":false,"context_lines":[{"line_number":312,"context_line":"                    \u0027PowerMax. Please upgrade to the minimum version \u0027"},{"line_number":313,"context_line":"                    \u0027highlighted in the online documentation.\u0027"},{"line_number":314,"context_line":"                    % powermax_conn_info[\u0027volume_driver\u0027])"},{"line_number":315,"context_line":"        else:"},{"line_number":316,"context_line":"            return uc.Result("},{"line_number":317,"context_line":"                FAILURE,"},{"line_number":318,"context_line":"                \u0027Unable to retrieve the necessary information to determine \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_2754fbc9","line":315,"updated":"2019-07-29 19:42:45.000000000","message":"I think your get_powermax_connection_info() will return an empty dict if enabled_backends is None (the default) or if the config file doesn\u0027t have any of your 4 drivers configured, thereby giving the user a Failure, which doesn\u0027t seem to be the correct response to either situation.\n\nMaybe a Warning if enabled_backends is empty, saying that no backends are enabled and hence you can\u0027t check the upgrade status of any driver related stuff?\n\nIf enabled_backends is configured and does not contain any of your 4 drivers, shouldn\u0027t the result of the check be Success?","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"5e9ddad976ade864e53dfe08631f411c5a9547b9","unresolved":false,"context_lines":[{"line_number":312,"context_line":"                    \u0027PowerMax. Please upgrade to the minimum version \u0027"},{"line_number":313,"context_line":"                    \u0027highlighted in the online documentation.\u0027"},{"line_number":314,"context_line":"                    % powermax_conn_info[\u0027volume_driver\u0027])"},{"line_number":315,"context_line":"        else:"},{"line_number":316,"context_line":"            return uc.Result("},{"line_number":317,"context_line":"                FAILURE,"},{"line_number":318,"context_line":"                \u0027Unable to retrieve the necessary information to determine \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_102ecc91","line":315,"in_reply_to":"7faddb67_2754fbc9","updated":"2019-07-30 14:34:26.000000000","message":"Thanks Brian, I will make those changes","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cc37a2fa2d3ed71301685b663baf03d232e98b8c","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            # enable_backends empty"},{"line_number":332,"context_line":"            return uc.Result("},{"line_number":333,"context_line":"                WARNING,"},{"line_number":334,"context_line":"                \u0027enabled_backends is empty so enable to check the \u0027"},{"line_number":335,"context_line":"                \u0027upgrade status.\u0027)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    _upgrade_checks \u003d ("},{"line_number":338,"context_line":"        # added in Stein"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_f747df1d","line":335,"range":{"start_line":334,"start_character":17,"end_line":335,"end_character":31},"updated":"2019-08-07 18:55:27.000000000","message":"This is a confusing warning message.","commit_id":"b4f5e49443fdf206a676f4d3dd391f38fa48cd92"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3680d19624d9394ae54122de1d4d99df2fcbea05","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            # enable_backends empty"},{"line_number":332,"context_line":"            return uc.Result("},{"line_number":333,"context_line":"                WARNING,"},{"line_number":334,"context_line":"                \u0027enabled_backends is empty so enable to check the \u0027"},{"line_number":335,"context_line":"                \u0027upgrade status.\u0027)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    _upgrade_checks \u003d ("},{"line_number":338,"context_line":"        # added in Stein"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_bb738ab4","line":335,"range":{"start_line":334,"start_character":17,"end_line":335,"end_character":31},"in_reply_to":"7faddb67_f747df1d","updated":"2019-08-08 08:45:46.000000000","message":"Sure, I will clarify","commit_id":"b4f5e49443fdf206a676f4d3dd391f38fa48cd92"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"63e4c7f11be09494e91c9e1150ba51dca706d092","unresolved":false,"context_lines":[{"line_number":31,"context_line":"import cinder.volume.manager as volume_manager"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# We must first register Cinder\u0027s objects. Otherwise"},{"line_number":35,"context_line":"# we cannot import the volume manager."},{"line_number":36,"context_line":"objects.register_all()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONF \u003d cfg.CONF"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_8d1c4914","line":36,"range":{"start_line":34,"start_character":0,"end_line":36,"end_character":22},"updated":"2019-08-08 15:13:48.000000000","message":"This comment explains that the volume manager import was after objects.register_all -- it can\u0027t be moved above it.","commit_id":"1076d1e92fdd6b3d495c99f7fb0bce231e2777b8"}],"cinder/volume/drivers/dell_emc/powermax/common.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4e1246001e04ae65b0d1927dfc27677e6c8cce79","unresolved":false,"context_lines":[{"line_number":1812,"context_line":"        # Remove from any storage groups and cleanup replication"},{"line_number":1813,"context_line":"        self._remove_vol_and_cleanup_replication("},{"line_number":1814,"context_line":"            array, device_id, volume_name, extra_specs, volume)"},{"line_number":1815,"context_line":"        # Check if volume is in any storage group"},{"line_number":1816,"context_line":"        sg_list \u003d self.rest.get_storage_groups_from_volume(array, device_id)"},{"line_number":1817,"context_line":"        if sg_list:"},{"line_number":1818,"context_line":"            LOG.error(\"Device %(device_id)s is in storage group(s) \""},{"line_number":1819,"context_line":"                      \"%(sg_list)s prior to delete. Delete will fail.\","},{"line_number":1820,"context_line":"                      {\u0027device_id\u0027: device_id, \u0027sg_list\u0027: sg_list})"},{"line_number":1821,"context_line":"        self._delete_from_srp("},{"line_number":1822,"context_line":"            array, device_id, volume_name, extra_specs)"},{"line_number":1823,"context_line":"        return volume_name"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_47a7b7a8","line":1820,"range":{"start_line":1815,"start_character":0,"end_line":1820,"end_character":67},"updated":"2019-07-29 20:07:37.000000000","message":"This doesn\u0027t seem related to this patch.","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cc37a2fa2d3ed71301685b663baf03d232e98b8c","unresolved":false,"context_lines":[{"line_number":1812,"context_line":"        # Remove from any storage groups and cleanup replication"},{"line_number":1813,"context_line":"        self._remove_vol_and_cleanup_replication("},{"line_number":1814,"context_line":"            array, device_id, volume_name, extra_specs, volume)"},{"line_number":1815,"context_line":"        # Check if volume is in any storage group"},{"line_number":1816,"context_line":"        sg_list \u003d self.rest.get_storage_groups_from_volume(array, device_id)"},{"line_number":1817,"context_line":"        if sg_list:"},{"line_number":1818,"context_line":"            LOG.error(\"Device %(device_id)s is in storage group(s) \""},{"line_number":1819,"context_line":"                      \"%(sg_list)s prior to delete. Delete will fail.\","},{"line_number":1820,"context_line":"                      {\u0027device_id\u0027: device_id, \u0027sg_list\u0027: sg_list})"},{"line_number":1821,"context_line":"        self._delete_from_srp("},{"line_number":1822,"context_line":"            array, device_id, volume_name, extra_specs)"},{"line_number":1823,"context_line":"        return volume_name"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_978c6b36","line":1820,"range":{"start_line":1815,"start_character":0,"end_line":1820,"end_character":67},"in_reply_to":"7faddb67_47a7b7a8","updated":"2019-08-07 18:55:27.000000000","message":"+1, this should be removed or comment why this is needed for the upgrade check.","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a136fce8545237d5c0a1106226d91241e8869f8f","unresolved":false,"context_lines":[{"line_number":1812,"context_line":"        # Remove from any storage groups and cleanup replication"},{"line_number":1813,"context_line":"        self._remove_vol_and_cleanup_replication("},{"line_number":1814,"context_line":"            array, device_id, volume_name, extra_specs, volume)"},{"line_number":1815,"context_line":"        # Check if volume is in any storage group"},{"line_number":1816,"context_line":"        sg_list \u003d self.rest.get_storage_groups_from_volume(array, device_id)"},{"line_number":1817,"context_line":"        if sg_list:"},{"line_number":1818,"context_line":"            LOG.error(\"Device %(device_id)s is in storage group(s) \""},{"line_number":1819,"context_line":"                      \"%(sg_list)s prior to delete. Delete will fail.\","},{"line_number":1820,"context_line":"                      {\u0027device_id\u0027: device_id, \u0027sg_list\u0027: sg_list})"},{"line_number":1821,"context_line":"        self._delete_from_srp("},{"line_number":1822,"context_line":"            array, device_id, volume_name, extra_specs)"},{"line_number":1823,"context_line":"        return volume_name"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_5e9da455","line":1820,"range":{"start_line":1815,"start_character":0,"end_line":1820,"end_character":67},"in_reply_to":"7faddb67_5b6e1697","updated":"2019-08-09 13:25:29.000000000","message":"This has already been removed in p9","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3680d19624d9394ae54122de1d4d99df2fcbea05","unresolved":false,"context_lines":[{"line_number":1812,"context_line":"        # Remove from any storage groups and cleanup replication"},{"line_number":1813,"context_line":"        self._remove_vol_and_cleanup_replication("},{"line_number":1814,"context_line":"            array, device_id, volume_name, extra_specs, volume)"},{"line_number":1815,"context_line":"        # Check if volume is in any storage group"},{"line_number":1816,"context_line":"        sg_list \u003d self.rest.get_storage_groups_from_volume(array, device_id)"},{"line_number":1817,"context_line":"        if sg_list:"},{"line_number":1818,"context_line":"            LOG.error(\"Device %(device_id)s is in storage group(s) \""},{"line_number":1819,"context_line":"                      \"%(sg_list)s prior to delete. Delete will fail.\","},{"line_number":1820,"context_line":"                      {\u0027device_id\u0027: device_id, \u0027sg_list\u0027: sg_list})"},{"line_number":1821,"context_line":"        self._delete_from_srp("},{"line_number":1822,"context_line":"            array, device_id, volume_name, extra_specs)"},{"line_number":1823,"context_line":"        return volume_name"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_5b6e1697","line":1820,"range":{"start_line":1815,"start_character":0,"end_line":1820,"end_character":67},"in_reply_to":"7faddb67_978c6b36","updated":"2019-08-08 08:45:46.000000000","message":"Oversight, I will remove it.","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"}],"cinder/volume/drivers/dell_emc/powermax/masking.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4e1246001e04ae65b0d1927dfc27677e6c8cce79","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"            LOG.debug("},{"line_number":1350,"context_line":"                \"Volume %(volume_name)s successfully removed from \""},{"line_number":1351,"context_line":"                \"storage group %(sg)s.\","},{"line_number":1352,"context_line":"                {\u0027volume_name\u0027: volume_name, \u0027sg\u0027: storagegroup_name})"},{"line_number":1353,"context_line":""},{"line_number":1354,"context_line":"        num_vol_in_sg \u003d self.rest.get_num_vols_in_sg("},{"line_number":1355,"context_line":"            serial_number, storagegroup_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_27dabb16","line":1352,"updated":"2019-07-29 20:07:37.000000000","message":"These changes also seem unrelated?","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"5e9ddad976ade864e53dfe08631f411c5a9547b9","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"            LOG.debug("},{"line_number":1350,"context_line":"                \"Volume %(volume_name)s successfully removed from \""},{"line_number":1351,"context_line":"                \"storage group %(sg)s.\","},{"line_number":1352,"context_line":"                {\u0027volume_name\u0027: volume_name, \u0027sg\u0027: storagegroup_name})"},{"line_number":1353,"context_line":""},{"line_number":1354,"context_line":"        num_vol_in_sg \u003d self.rest.get_num_vols_in_sg("},{"line_number":1355,"context_line":"            serial_number, storagegroup_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_10532c19","line":1352,"in_reply_to":"7faddb67_27dabb16","updated":"2019-07-30 14:34:26.000000000","message":"Sure, best suited to https://review.opendev.org/#/c/673292","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"}],"cinder/volume/drivers/dell_emc/powermax/rest.py":[{"author":{"_account_id":23601,"name":"michael","display_name":"michael-mcaleer","email":"Michael.Mcaleer@dell.com","username":"michael-mcaleer"},"change_message_id":"0dd1d012e83f2072cb46900403b0ab599a5df5e9","unresolved":false,"context_lines":[{"line_number":591,"context_line":"            LOG.error(\"Unisphere version info not found.\")"},{"line_number":592,"context_line":"        return version_dict"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"    def validate_unisphere_version(self):"},{"line_number":595,"context_line":"        \"\"\"Validate that the running Unisphere version meets min requirement"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"        :returns: unisphere_meets_min_req -- boolean"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_f6d5aeb8","line":594,"range":{"start_line":594,"start_character":4,"end_line":594,"end_character":41},"updated":"2019-06-17 08:29:59.000000000","message":"I think this function would be better in common.py with the rest of the checks/tasks and only calling into rest.py to get the Unisphere version, or alternatively, put it into utils.py and pass in the Unisphere version so it can validate it from there.\n\nI have just spotted other validation calls which make no rest calls in this class, we should look at that in the future when we have time.","commit_id":"833c4ba739a1cab58094c060f3915d5c6d13506e"},{"author":{"_account_id":23601,"name":"michael","display_name":"michael-mcaleer","email":"Michael.Mcaleer@dell.com","username":"michael-mcaleer"},"change_message_id":"0dd1d012e83f2072cb46900403b0ab599a5df5e9","unresolved":false,"context_lines":[{"line_number":599,"context_line":"        \"\"\""},{"line_number":600,"context_line":"        version \u003d None"},{"line_number":601,"context_line":"        unisphere_meets_min_req \u003d False"},{"line_number":602,"context_line":"        post_90_endpoint \u003d \u0027/version\u0027"},{"line_number":603,"context_line":"        pre_91_endpoint \u003d \u0027/system/version\u0027"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        status_code, message \u003d self.request(post_90_endpoint, GET)"},{"line_number":606,"context_line":"        if status_code is not STATUS_200:"},{"line_number":607,"context_line":"            status_code, message \u003d self.request(pre_91_endpoint, GET)"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        if message and (status_code is STATUS_200):"},{"line_number":610,"context_line":"            version \u003d message[\u0027version\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_f6504e61","line":607,"range":{"start_line":602,"start_character":8,"end_line":607,"end_character":69},"updated":"2019-06-17 08:29:59.000000000","message":"I think this should be built into the call above get_unisphere_version() so other calls can make use of it","commit_id":"833c4ba739a1cab58094c060f3915d5c6d13506e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"45cb5867e5cedbad4e1cc4b2bcb771f85bd4d644","unresolved":false,"context_lines":[{"line_number":2700,"context_line":""},{"line_number":2701,"context_line":"        if unisphere_meets_min_req:"},{"line_number":2702,"context_line":"            LOG.info(\"Unisphere version {} meets minimum requirement of \""},{"line_number":2703,"context_line":"                     \"version {}.\".format(running_version, minimum_version))"},{"line_number":2704,"context_line":"        elif running_version:"},{"line_number":2705,"context_line":"            msg \u003d (\"Unisphere version {} does not meet minimum requirement \""},{"line_number":2706,"context_line":"                   \"for use with this release, please upgrade to Unisphere {}\""}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_63f8ae48","line":2703,"range":{"start_line":2703,"start_character":34,"end_line":2703,"end_character":42},"updated":"2019-07-29 13:57:04.000000000","message":"These should be using the printf style of string formatting so the formatting values can be passed in to the logger to format later only if needed based on the set log level.","commit_id":"3e0322302d35a26fb404a6f680e39222395d25ee"}]}
