)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"24f32fe8ba91e7ee5bfc25207722d4e4b975b5ae","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Fix paths for NVMe devices (non-nguid)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixed regression introduced by"},{"line_number":10,"context_line":"https://review.opendev.org/c/openstack/os-brick/+/800014, where"},{"line_number":11,"context_line":"connect_volume method returned a list with a single path instead of"},{"line_number":12,"context_line":"just the path."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"e9c0ecf7_3a59032b","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":56},"updated":"2021-09-30 17:18:26.000000000","message":"nit: It\u0027s better to do references by Change-Id numbers or commit","commit_id":"dd90bb6356d05a7b12198e77418befc1acc87c11"}],"os_brick/initiator/connectors/nvmeof.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"5e82302feac177f48b61cccc428447bb2486294e","unresolved":true,"context_lines":[{"line_number":204,"context_line":"                                   \u0027nvme-eui.%s\u0027 % nguid)"},{"line_number":205,"context_line":"        LOG.debug(\"Try to retrieve symlink to %(device_path)s.\","},{"line_number":206,"context_line":"                  {\"device_path\": device_path})"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            path, _err \u003d self._execute(\u0027readlink\u0027,"},{"line_number":209,"context_line":"                                       \u0027-e\u0027,"},{"line_number":210,"context_line":"                                       device_path,"},{"line_number":211,"context_line":"                                       run_as_root\u003dTrue,"},{"line_number":212,"context_line":"                                       root_helper\u003dself._root_helper)"},{"line_number":213,"context_line":"            if not path:"},{"line_number":214,"context_line":"                raise exception.VolumePathsNotFound()"},{"line_number":215,"context_line":"            return path.rstrip()"},{"line_number":216,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":217,"context_line":"            LOG.exception(e)"},{"line_number":218,"context_line":"            raise exception.VolumeDeviceNotFound(device\u003ddevice_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"4f3e40f2_e0c7ce45","line":215,"range":{"start_line":207,"start_character":0,"end_line":215,"end_character":32},"updated":"2021-09-30 10:23:31.000000000","message":"This is unrelated to the actual bugfix right? It looks like this is doing the correct thing regardless but you might want to throw it in a follow up change.","commit_id":"7a762fc3293ad08c4723e5036c373210860169e4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b0e6c98ae8d53758c98f97603e4323abada5ecb4","unresolved":true,"context_lines":[{"line_number":204,"context_line":"                                   \u0027nvme-eui.%s\u0027 % nguid)"},{"line_number":205,"context_line":"        LOG.debug(\"Try to retrieve symlink to %(device_path)s.\","},{"line_number":206,"context_line":"                  {\"device_path\": device_path})"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            path, _err \u003d self._execute(\u0027readlink\u0027,"},{"line_number":209,"context_line":"                                       \u0027-e\u0027,"},{"line_number":210,"context_line":"                                       device_path,"},{"line_number":211,"context_line":"                                       run_as_root\u003dTrue,"},{"line_number":212,"context_line":"                                       root_helper\u003dself._root_helper)"},{"line_number":213,"context_line":"            if not path:"},{"line_number":214,"context_line":"                raise exception.VolumePathsNotFound()"},{"line_number":215,"context_line":"            return path.rstrip()"},{"line_number":216,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":217,"context_line":"            LOG.exception(e)"},{"line_number":218,"context_line":"            raise exception.VolumeDeviceNotFound(device\u003ddevice_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"b595c88f_dd43a4b6","line":215,"range":{"start_line":207,"start_character":0,"end_line":215,"end_character":32},"in_reply_to":"4f3e40f2_e0c7ce45","updated":"2021-09-30 13:55:45.000000000","message":"So is it guaranteed that there will only be a single path in the response, possibly with some whitespace at the end?  Was that paths.split()[0] on line 215 in the base patch just a misleading way to do an rstrip?","commit_id":"7a762fc3293ad08c4723e5036c373210860169e4"},{"author":{"_account_id":13671,"name":"Vladislav Belogrudov","email":"v.belogrudov@yadro.com","username":"vb"},"change_message_id":"1ae21c9bf20bef0f63626c6579ab0f83e6f6e96f","unresolved":true,"context_lines":[{"line_number":204,"context_line":"                                   \u0027nvme-eui.%s\u0027 % nguid)"},{"line_number":205,"context_line":"        LOG.debug(\"Try to retrieve symlink to %(device_path)s.\","},{"line_number":206,"context_line":"                  {\"device_path\": device_path})"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            path, _err \u003d self._execute(\u0027readlink\u0027,"},{"line_number":209,"context_line":"                                       \u0027-e\u0027,"},{"line_number":210,"context_line":"                                       device_path,"},{"line_number":211,"context_line":"                                       run_as_root\u003dTrue,"},{"line_number":212,"context_line":"                                       root_helper\u003dself._root_helper)"},{"line_number":213,"context_line":"            if not path:"},{"line_number":214,"context_line":"                raise exception.VolumePathsNotFound()"},{"line_number":215,"context_line":"            return path.rstrip()"},{"line_number":216,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":217,"context_line":"            LOG.exception(e)"},{"line_number":218,"context_line":"            raise exception.VolumeDeviceNotFound(device\u003ddevice_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1261156f_1f1cf326","line":215,"range":{"start_line":207,"start_character":0,"end_line":215,"end_character":32},"in_reply_to":"b595c88f_dd43a4b6","updated":"2021-09-30 14:42:41.000000000","message":"yes, that split()[0] was to get rid of \u0027\\n\u0027, and the paths should be path. We can only have one Linux link to point to one file. For example:\n\n\u003e\u003e\u003e subprocess.run([\u0027readlink\u0027, \u0027-e\u0027, \u0027/dev/disk/by-id/nvme-eui.0d7b617d3e15c8978ccf09680015bdf4\u0027], stdout\u003dsubprocess.PIPE).stdout\nb\u0027/dev/nvme0n1\\n\u0027\n\u003e\u003e\u003e b\u0027/dev/nvme0n1\\n\u0027.rstrip()\nb\u0027/dev/nvme0n1\u0027\n\u003e\u003e\u003e b\u0027/dev/nvme0n1\\n\u0027.split()[0]\nb\u0027/dev/nvme0n1\u0027\n\nrstrip makes clear we don\u0027t have a list of paths.\n\neui.0d7b617d3e15c8978ccf09680015bdf4 is unique identifier of a disk","commit_id":"7a762fc3293ad08c4723e5036c373210860169e4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3f38b525437d5c3ece24ef7e61ff52d385336294","unresolved":true,"context_lines":[{"line_number":362,"context_line":"            path \u003d self._get_device_path_by_nguid(device_nguid)"},{"line_number":363,"context_line":"        else:"},{"line_number":364,"context_line":"            path \u003d self._get_device_path(current_nvme_devices)"},{"line_number":365,"context_line":"        device_info[\u0027path\u0027] \u003d path"},{"line_number":366,"context_line":"        LOG.debug(\"NVMe device to be connected to is %(path)s\","},{"line_number":367,"context_line":"                  {\u0027path\u0027: path})"},{"line_number":368,"context_line":"        return device_info"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a9d4c69_ff482792","line":365,"updated":"2021-09-30 15:43:34.000000000","message":"With this change, both _get_device_path_by_nguid() and _get_device_path() return a single path as a string data type, so nova will find what it expects in the device_info.","commit_id":"dd90bb6356d05a7b12198e77418befc1acc87c11"}],"os_brick/tests/initiator/connectors/test_nvmeof.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3f38b525437d5c3ece24ef7e61ff52d385336294","unresolved":true,"context_lines":[{"line_number":235,"context_line":"    def test__get_device_path_by_nguid(self, mock_execute):"},{"line_number":236,"context_line":"        mock_execute.return_value \u003d \u0027/dev/nvme0n1\\n\u0027, None"},{"line_number":237,"context_line":"        res \u003d self.connector._get_device_path_by_nguid(NVME_DEVICE_NGUID)"},{"line_number":238,"context_line":"        self.assertEqual(res, \u0027/dev/nvme0n1\u0027)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @mock.patch.object(nvmeof.NVMeOFConnector, \u0027_execute\u0027, autospec\u003dTrue)"},{"line_number":241,"context_line":"    def test__get_device_path_by_nguid_empty_response(self, mock_execute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"527ff5c8_d6bad690","line":238,"updated":"2021-09-30 15:43:34.000000000","message":"Line 223 and 238 verify that each of these methods returns a single string path, so we shouldn\u0027t see this particular regression again.","commit_id":"dd90bb6356d05a7b12198e77418befc1acc87c11"}],"releasenotes/notes/bug-1945323-4140f5aff3558082.yaml":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"24f32fe8ba91e7ee5bfc25207722d4e4b975b5ae","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NVMe-oF connector `bug #1945323"},{"line_number":5,"context_line":"    \u003chttps://bugs.launchpad.net/os-brick/+bug/1945323\u003e`_ [bugs.launchpad.net]: Fixed a regression"},{"line_number":6,"context_line":"    where connect_volume returned a list with a single path instead of just the path"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5e59afd6_7c1f0ad2","line":6,"range":{"start_line":6,"start_character":80,"end_line":6,"end_character":84},"updated":"2021-09-30 17:18:26.000000000","message":"nit: path.","commit_id":"dd90bb6356d05a7b12198e77418befc1acc87c11"}]}
