)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"811be6e09682a5581aa81cb38db51c1b051ddc32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0439a242_b6643675","updated":"2021-12-17 13:49:27.000000000","message":"Passing 3rd Party CI.  Think this is good.","commit_id":"cbc3516b3169e1f24987b7d5a97235179a5cc453"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"776f65d763d3ea8fd9932d1cced887918943359d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f6504850_a8821820","updated":"2021-11-25 15:59:51.000000000","message":"Sorry this has been sitting so long.  LGTM.","commit_id":"cbc3516b3169e1f24987b7d5a97235179a5cc453"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c3ba46122eacbcc83b92dbc96dbd3a6d86ddd2dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"07088714_d4b4e2da","updated":"2022-01-06 13:57:27.000000000","message":"recheck","commit_id":"cbc3516b3169e1f24987b7d5a97235179a5cc453"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"69254d1a20ff2ac8e1264715436e00b383f2d28e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6ea022b2_ba4e548a","updated":"2022-01-05 12:42:38.000000000","message":"recheck","commit_id":"cbc3516b3169e1f24987b7d5a97235179a5cc453"}],"cinder/volume/drivers/dell_emc/powermax/common.py":[{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"a61152918d509efbd13dc0ccf72d6841f29f7dd3","unresolved":true,"context_lines":[{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"},{"line_number":3226,"context_line":"            array \u003d self.utils.get_array_from_host(volume)"},{"line_number":3227,"context_line":"            device_id \u003d self.rest.find_volume_device_id(array, uuid_vol)"}],"source_content_type":"text/x-python","patch_set":2,"id":"55868623_b18d9549","line":3224,"range":{"start_line":3223,"start_character":0,"end_line":3224,"end_character":73},"updated":"2021-01-27 12:39:35.000000000","message":"The default of manage_volume_ref referenced in tempest for manage volume is [\u0027source-name\u0027,\u0027volume-%s\u0027], with a prefix of \u0027volume-\u0027.\nhttps://github.com/openstack/tempest/blob/master/tempest/config.py#L980\n\nIf you set manage_volume_ref \u003d source-name,%s in the conf file on the CI environment where tempest is executed, you will not need to call .replace(\u0027volume-\u0027, \u0027\u0027).","commit_id":"d6519f78691ef0c5ca7efbec4de4b8b030d0f6d3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a6293d0e09e0af1253a6998324429bc8837d9625","unresolved":false,"context_lines":[{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"},{"line_number":3226,"context_line":"            array \u003d self.utils.get_array_from_host(volume)"},{"line_number":3227,"context_line":"            device_id \u003d self.rest.find_volume_device_id(array, uuid_vol)"}],"source_content_type":"text/x-python","patch_set":2,"id":"b7c676ae_ab6930d2","line":3224,"range":{"start_line":3223,"start_character":0,"end_line":3224,"end_character":73},"in_reply_to":"30901787_1186d9da","updated":"2021-10-12 11:13:41.000000000","message":"Ack","commit_id":"d6519f78691ef0c5ca7efbec4de4b8b030d0f6d3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a6293d0e09e0af1253a6998324429bc8837d9625","unresolved":false,"context_lines":[{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"},{"line_number":3226,"context_line":"            array \u003d self.utils.get_array_from_host(volume)"},{"line_number":3227,"context_line":"            device_id \u003d self.rest.find_volume_device_id(array, uuid_vol)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fe74d0b6_63e250c6","line":3224,"range":{"start_line":3223,"start_character":0,"end_line":3224,"end_character":73},"in_reply_to":"30901787_1186d9da","updated":"2021-10-12 11:13:41.000000000","message":"Ack","commit_id":"d6519f78691ef0c5ca7efbec4de4b8b030d0f6d3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3ca03b9e711eb0727ffc69decd8adab8eb62736f","unresolved":true,"context_lines":[{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"},{"line_number":3226,"context_line":"            array \u003d self.utils.get_array_from_host(volume)"},{"line_number":3227,"context_line":"            device_id \u003d self.rest.find_volume_device_id(array, uuid_vol)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c2d364f8_532e8389","line":3224,"range":{"start_line":3223,"start_character":0,"end_line":3224,"end_character":73},"in_reply_to":"55868623_b18d9549","updated":"2021-01-27 13:57:42.000000000","message":"Thank you.","commit_id":"d6519f78691ef0c5ca7efbec4de4b8b030d0f6d3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"5954f209d4597e2fc9c26af5603e28ee937597d1","unresolved":true,"context_lines":[{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"},{"line_number":3226,"context_line":"            array \u003d self.utils.get_array_from_host(volume)"},{"line_number":3227,"context_line":"            device_id \u003d self.rest.find_volume_device_id(array, uuid_vol)"}],"source_content_type":"text/x-python","patch_set":2,"id":"db28ee8c_32a68549","line":3224,"range":{"start_line":3223,"start_character":0,"end_line":3224,"end_character":73},"in_reply_to":"c2d364f8_532e8389","updated":"2021-01-27 16:32:28.000000000","message":"Hi Kazumasa,\nI wonder does it hurt to have this there anyway even if the CI has it configured to remove it?  If it doesn\u0027t find the \u0027volume-\u0027 string nothing changes.  What do you think?","commit_id":"d6519f78691ef0c5ca7efbec4de4b8b030d0f6d3"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"8c4dd4388a73f108100166a755ea1afdbb83e321","unresolved":true,"context_lines":[{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"},{"line_number":3226,"context_line":"            array \u003d self.utils.get_array_from_host(volume)"},{"line_number":3227,"context_line":"            device_id \u003d self.rest.find_volume_device_id(array, uuid_vol)"}],"source_content_type":"text/x-python","patch_set":2,"id":"30901787_1186d9da","line":3224,"range":{"start_line":3223,"start_character":0,"end_line":3224,"end_character":73},"in_reply_to":"db28ee8c_32a68549","updated":"2021-01-28 08:09:42.000000000","message":"I thought it\u0027s better to fix this code for keeping easily maintain codes, but to fix against my comment is not mandatory. Having this code there doesn\u0027t hurt the driver\u0027s behavior as you said.","commit_id":"d6519f78691ef0c5ca7efbec4de4b8b030d0f6d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"747541ba42a2da35b0b3a1271f4a5b9b84500dc1","unresolved":true,"context_lines":[{"line_number":3217,"context_line":"        :returns: array, device_id -- str, str"},{"line_number":3218,"context_line":"        \"\"\""},{"line_number":3219,"context_line":"        uuid_vol \u003d external_ref.get(u\u0027source-name\u0027, None)"},{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"}],"source_content_type":"text/x-python","patch_set":4,"id":"de52616b_5a4c76cf","line":3220,"range":{"start_line":3220,"start_character":8,"end_line":3220,"end_character":63},"updated":"2021-06-23 19:26:08.000000000","message":"you might want to make this the first statement in the function so if someone passes in a string or something for external_ref, it will get logged before what you do at line 3219 raises an exception","commit_id":"7503d79433cf2b81964007deae464aeab0b60759"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ef9a2d844e04f5c755770c103b3d73229c982605","unresolved":false,"context_lines":[{"line_number":3217,"context_line":"        :returns: array, device_id -- str, str"},{"line_number":3218,"context_line":"        \"\"\""},{"line_number":3219,"context_line":"        uuid_vol \u003d external_ref.get(u\u0027source-name\u0027, None)"},{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"}],"source_content_type":"text/x-python","patch_set":4,"id":"79f259df_f91a2c78","line":3220,"range":{"start_line":3220,"start_character":8,"end_line":3220,"end_character":63},"in_reply_to":"de52616b_5a4c76cf","updated":"2021-10-12 10:42:56.000000000","message":"Done","commit_id":"7503d79433cf2b81964007deae464aeab0b60759"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"747541ba42a2da35b0b3a1271f4a5b9b84500dc1","unresolved":true,"context_lines":[{"line_number":3219,"context_line":"        uuid_vol \u003d external_ref.get(u\u0027source-name\u0027, None)"},{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5770e88e_745a8ebb","line":3222,"range":{"start_line":3222,"start_character":40,"end_line":3222,"end_character":42},"updated":"2021-06-23 19:26:08.000000000","message":"you don\u0027t need to make this a unicode literal; in python 3 it already is (same at line 3219)","commit_id":"7503d79433cf2b81964007deae464aeab0b60759"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ef9a2d844e04f5c755770c103b3d73229c982605","unresolved":false,"context_lines":[{"line_number":3219,"context_line":"        uuid_vol \u003d external_ref.get(u\u0027source-name\u0027, None)"},{"line_number":3220,"context_line":"        LOG.debug(\"External_ref: %(er)s\", {\u0027er\u0027: external_ref})"},{"line_number":3221,"context_line":"        if not uuid_vol:"},{"line_number":3222,"context_line":"            uuid_vol \u003d external_ref.get(u\u0027source-id\u0027, None)"},{"line_number":3223,"context_line":"        if uuid_vol:"},{"line_number":3224,"context_line":"            uuid_vol \u003d uuid_vol.replace(\u0027OS-\u0027, \u0027\u0027).replace(\u0027volume-\u0027, \u0027\u0027)"},{"line_number":3225,"context_line":"        if uuid_vol and self.utils.check_uuid_regex(uuid_vol):"}],"source_content_type":"text/x-python","patch_set":4,"id":"f20df99c_8440aa25","line":3222,"range":{"start_line":3222,"start_character":40,"end_line":3222,"end_character":42},"in_reply_to":"5770e88e_745a8ebb","updated":"2021-10-12 10:42:56.000000000","message":"Done","commit_id":"7503d79433cf2b81964007deae464aeab0b60759"}],"cinder/volume/drivers/dell_emc/powermax/utils.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"747541ba42a2da35b0b3a1271f4a5b9b84500dc1","unresolved":true,"context_lines":[{"line_number":517,"context_line":"        \"\"\""},{"line_number":518,"context_line":"        host \u003d volume.host"},{"line_number":519,"context_line":"        host_list \u003d host.split(\u0027+\u0027)"},{"line_number":520,"context_line":"        return host_list[(len(host_list) - 1)]"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    def is_compression_disabled(self, extra_specs):"},{"line_number":523,"context_line":"        \"\"\"Check is compression is to be disabled."}],"source_content_type":"text/x-python","patch_set":4,"id":"f90f255c_f966baba","line":520,"range":{"start_line":520,"start_character":15,"end_line":520,"end_character":46},"updated":"2021-06-23 19:26:08.000000000","message":"you want the last element of the list, so you can just use host_list[-1] here","commit_id":"7503d79433cf2b81964007deae464aeab0b60759"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ef9a2d844e04f5c755770c103b3d73229c982605","unresolved":false,"context_lines":[{"line_number":517,"context_line":"        \"\"\""},{"line_number":518,"context_line":"        host \u003d volume.host"},{"line_number":519,"context_line":"        host_list \u003d host.split(\u0027+\u0027)"},{"line_number":520,"context_line":"        return host_list[(len(host_list) - 1)]"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    def is_compression_disabled(self, extra_specs):"},{"line_number":523,"context_line":"        \"\"\"Check is compression is to be disabled."}],"source_content_type":"text/x-python","patch_set":4,"id":"e51d6849_2f12ab3d","line":520,"range":{"start_line":520,"start_character":15,"end_line":520,"end_character":46},"in_reply_to":"f90f255c_f966baba","updated":"2021-10-12 10:42:56.000000000","message":"Done","commit_id":"7503d79433cf2b81964007deae464aeab0b60759"}]}
