)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2dc7bf56491db9f999c3674fe580654064ed0e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f68ae21a_b972efb9","updated":"2024-11-03 22:01:21.000000000","message":"Thanks Gorka for the review. The cinder patch is added in the commit message as Depends-On.","commit_id":"17161b291c162eb66775a9535d1948095b105374"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9348beee4cac635d00cfdf48e71142e6c58a746e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"704c4700_0dccb000","updated":"2024-11-04 07:02:13.000000000","message":"recheck tempest-full-py3 failed with unrelated test\n\ntest_resize_volume_backed_server_confirm","commit_id":"d4b7fcb7f79649515d16254a62d6732ebf029c81"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5f8b821af1ca7cf9794b4ba3870036a5badf273d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"195386c1_68310b15","updated":"2024-11-13 10:00:59.000000000","message":"recheck\n\nThanks Gorka for the review","commit_id":"f0e65dd06c4aab02c0fe2098fc9228d2dccdbdfe"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"96d3a6d42fe1126f5b296a361bb70791c0b26765","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4e170fa2_4d7d5852","updated":"2024-12-05 14:09:33.000000000","message":"run Pure Storage CI","commit_id":"f0e65dd06c4aab02c0fe2098fc9228d2dccdbdfe"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"5d35535a484899f954b083641544cd1dbb55ee89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"67baf27f_58524d9d","updated":"2024-12-03 17:41:01.000000000","message":"run Pure Storage CI","commit_id":"f0e65dd06c4aab02c0fe2098fc9228d2dccdbdfe"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"184d7b04ac22bf5f3bb8825c0a1b65a0122734cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"bfafea50_f7161a3d","updated":"2024-12-09 11:37:27.000000000","message":"Thanks Gorka!","commit_id":"697ae6b123dd4db67ab66c578d467761b9d07d05"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab860a23eac77207017e44700b65c923310cdb3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"93780f77_301614ba","updated":"2024-12-12 23:01:20.000000000","message":"Code and tests LGTM.  Waiting to +W until the dependency has merged.","commit_id":"8d919696a9f1b1361f00aac7032647b5e1656082"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"87edf5acb149a77a33a7b7ed01a0d6411cb5f1d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"9b1f60f5_7c4fe952","updated":"2024-12-13 13:08:50.000000000","message":"cinder dependency has merged","commit_id":"8d919696a9f1b1361f00aac7032647b5e1656082"}],"os_brick/initiator/connectors/base.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"35e9e84ce9e06e38beb9fcdb308467db7be40108","unresolved":true,"context_lines":[{"line_number":110,"context_line":"                                                 *args, **kwargs)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @staticmethod"},{"line_number":113,"context_line":"    def get_connector_properties(root_helper: str, *args, **kwargs) -\u003e dict:"},{"line_number":114,"context_line":"        \"\"\"The generic connector properties.\"\"\""},{"line_number":115,"context_line":"        # Return multipath to stay backward compatible"},{"line_number":116,"context_line":"        return {\u0027multipath\u0027: kwargs[\u0027multipath\u0027]}"}],"source_content_type":"text/x-python","patch_set":4,"id":"f5e39d21_697e9acf","line":113,"updated":"2024-10-29 08:17:32.000000000","message":"-1: Shouldn\u0027t we hhave a default `supports_multipath` method that returns `False`?  This would then be overwritten by the drivers that support multipath.","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2dc7bf56491db9f999c3674fe580654064ed0e9","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                                                 *args, **kwargs)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @staticmethod"},{"line_number":113,"context_line":"    def get_connector_properties(root_helper: str, *args, **kwargs) -\u003e dict:"},{"line_number":114,"context_line":"        \"\"\"The generic connector properties.\"\"\""},{"line_number":115,"context_line":"        # Return multipath to stay backward compatible"},{"line_number":116,"context_line":"        return {\u0027multipath\u0027: kwargs[\u0027multipath\u0027]}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5738c6bb_f34d239d","line":113,"in_reply_to":"f5e39d21_697e9acf","updated":"2024-11-03 22:01:21.000000000","message":"We should, i forgot to add it ...\nDone","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"f3a2e8f7d7e7f22b9e29828240f754d4a032f39f","unresolved":true,"context_lines":[{"line_number":141,"context_line":"            enforce_multipath \u003d connection_properties.get("},{"line_number":142,"context_line":"                \u0027enforce_multipath\u0027, False)"},{"line_number":143,"context_line":"        except AttributeError:"},{"line_number":144,"context_line":"            # The NVMe connector returns a NVMeOFConnProps object which raises"},{"line_number":145,"context_line":"            # attribute error"},{"line_number":146,"context_line":"            enforce_multipath \u003d False"},{"line_number":147,"context_line":"            # Check if the connection_properties has \u0027enforce_multipath\u0027 key"}],"source_content_type":"text/x-python","patch_set":7,"id":"eff84881_fc03a7f7","line":144,"updated":"2024-11-04 10:37:04.000000000","message":"Personally I think that\u0027s an NVMe connector problem, not a problem for the base class.\n\nThe NVMe connector can call this method with something like:\n\n```\n   self.check_multipath({\u0027enforce_multipath\u0027: connection_properties.getattr(\u0027enforce_multipath\u0027, False)})\n```\n\nOr maybe create the appropriate methos in the NVMeOFConnProps class so the `get` method works.","commit_id":"732670d8b1bbbbc1492047df356877b003e585d6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5f8b821af1ca7cf9794b4ba3870036a5badf273d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            enforce_multipath \u003d connection_properties.get("},{"line_number":142,"context_line":"                \u0027enforce_multipath\u0027, False)"},{"line_number":143,"context_line":"        except AttributeError:"},{"line_number":144,"context_line":"            # The NVMe connector returns a NVMeOFConnProps object which raises"},{"line_number":145,"context_line":"            # attribute error"},{"line_number":146,"context_line":"            enforce_multipath \u003d False"},{"line_number":147,"context_line":"            # Check if the connection_properties has \u0027enforce_multipath\u0027 key"}],"source_content_type":"text/x-python","patch_set":7,"id":"13043dde_28c5a290","line":144,"in_reply_to":"eff84881_fc03a7f7","updated":"2024-11-13 10:00:59.000000000","message":"Done","commit_id":"732670d8b1bbbbc1492047df356877b003e585d6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"f3a2e8f7d7e7f22b9e29828240f754d4a032f39f","unresolved":true,"context_lines":[{"line_number":143,"context_line":"        except AttributeError:"},{"line_number":144,"context_line":"            # The NVMe connector returns a NVMeOFConnProps object which raises"},{"line_number":145,"context_line":"            # attribute error"},{"line_number":146,"context_line":"            enforce_multipath \u003d False"},{"line_number":147,"context_line":"            # Check if the connection_properties has \u0027enforce_multipath\u0027 key"},{"line_number":148,"context_line":"            if hasattr(connection_properties, \u0027enforce_multipath\u0027):"},{"line_number":149,"context_line":"                enforce_multipath \u003d connection_properties.enforce_multipath"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        if not self.supports_multipath():"},{"line_number":152,"context_line":"            if multipath and enforce_multipath:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f44bd01_70592a50","line":149,"range":{"start_line":146,"start_character":0,"end_line":149,"end_character":75},"updated":"2024-11-04 10:37:04.000000000","message":"-1: In any case this can be written as:\n\n```\n    enforce_multipath \u003d   connection_properties.get_attr(\u0027enforce_multipath\u0027, False)\n```","commit_id":"732670d8b1bbbbc1492047df356877b003e585d6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5f8b821af1ca7cf9794b4ba3870036a5badf273d","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        except AttributeError:"},{"line_number":144,"context_line":"            # The NVMe connector returns a NVMeOFConnProps object which raises"},{"line_number":145,"context_line":"            # attribute error"},{"line_number":146,"context_line":"            enforce_multipath \u003d False"},{"line_number":147,"context_line":"            # Check if the connection_properties has \u0027enforce_multipath\u0027 key"},{"line_number":148,"context_line":"            if hasattr(connection_properties, \u0027enforce_multipath\u0027):"},{"line_number":149,"context_line":"                enforce_multipath \u003d connection_properties.enforce_multipath"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        if not self.supports_multipath():"},{"line_number":152,"context_line":"            if multipath and enforce_multipath:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7bf665a1_bfa11d39","line":149,"range":{"start_line":146,"start_character":0,"end_line":149,"end_character":75},"in_reply_to":"5f44bd01_70592a50","updated":"2024-11-13 10:00:59.000000000","message":"Done","commit_id":"732670d8b1bbbbc1492047df356877b003e585d6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c2fc1a718ffad172cef2058e024f7de435428c25","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                raise exception.BrickException("},{"line_number":146,"context_line":"                    \"Multipathing is enforced but the host doesn\u0027t \""},{"line_number":147,"context_line":"                    \"support multipathing.\")"},{"line_number":148,"context_line":"            elif multipath and not enforce_multipath:"},{"line_number":149,"context_line":"                LOG.warning("},{"line_number":150,"context_line":"                    \"Multipathing is requested but the host \""},{"line_number":151,"context_line":"                    \"doesn\u0027t support multipathing.\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"ec5ef696_6962ca9a","line":148,"range":{"start_line":148,"start_character":12,"end_line":148,"end_character":16},"updated":"2024-12-09 11:24:28.000000000","message":"nit: Not really a need for `elif`, it can be a normal `if` since the result of the previous `if` will exit with an exception.","commit_id":"697ae6b123dd4db67ab66c578d467761b9d07d05"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"184d7b04ac22bf5f3bb8825c0a1b65a0122734cb","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                raise exception.BrickException("},{"line_number":146,"context_line":"                    \"Multipathing is enforced but the host doesn\u0027t \""},{"line_number":147,"context_line":"                    \"support multipathing.\")"},{"line_number":148,"context_line":"            elif multipath and not enforce_multipath:"},{"line_number":149,"context_line":"                LOG.warning("},{"line_number":150,"context_line":"                    \"Multipathing is requested but the host \""},{"line_number":151,"context_line":"                    \"doesn\u0027t support multipathing.\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"52ff6d99_cec5e027","line":148,"range":{"start_line":148,"start_character":12,"end_line":148,"end_character":16},"in_reply_to":"ec5ef696_6962ca9a","updated":"2024-12-09 11:37:27.000000000","message":"Done","commit_id":"697ae6b123dd4db67ab66c578d467761b9d07d05"}],"os_brick/initiator/connectors/fibre_channel.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"35e9e84ce9e06e38beb9fcdb308467db7be40108","unresolved":true,"context_lines":[{"line_number":63,"context_line":"            cls, root_helper: str, *args, **kwargs) -\u003e dict[str, Any]:"},{"line_number":64,"context_line":"        \"\"\"The Fibre Channel connector properties.\"\"\""},{"line_number":65,"context_line":"        # Store these values to validate multipathing in connect_volume"},{"line_number":66,"context_line":"        cls.mpath \u003d kwargs.get(\u0027multipath\u0027)"},{"line_number":67,"context_line":"        cls.enforce_mpath \u003d kwargs.get(\u0027enforce_multipath\u0027)"},{"line_number":68,"context_line":"        props \u003d {}"},{"line_number":69,"context_line":"        fc \u003d linuxfc.LinuxFibreChannel(root_helper,"},{"line_number":70,"context_line":"                                       execute\u003dkwargs.get(\u0027execute\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"2e8bea8a_a32637e1","line":67,"range":{"start_line":66,"start_character":0,"end_line":67,"end_character":59},"updated":"2024-10-29 08:17:32.000000000","message":"-1: We shouldn\u0027t be setting class attributes based on a single request, as this wouldn\u0027t behave as expected with multiple requests that have different values.\n\nAnything that is on a \"per connection request\" basis needs to come from the `connect_volume` method must come from the connection information or provided in the instantiation of the class.\n\nIn this case the `multipath` value can come from the arguments to `__init__` (which is the one provided to `InitiatorConnector.factory`), as for the enforcing, it can be added to nova an cinder as a new parameter passed to `InitiatorConnector.factory` or it can be returned on the connector properties and then cinder needs to add it to the connection information.","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2dc7bf56491db9f999c3674fe580654064ed0e9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            cls, root_helper: str, *args, **kwargs) -\u003e dict[str, Any]:"},{"line_number":64,"context_line":"        \"\"\"The Fibre Channel connector properties.\"\"\""},{"line_number":65,"context_line":"        # Store these values to validate multipathing in connect_volume"},{"line_number":66,"context_line":"        cls.mpath \u003d kwargs.get(\u0027multipath\u0027)"},{"line_number":67,"context_line":"        cls.enforce_mpath \u003d kwargs.get(\u0027enforce_multipath\u0027)"},{"line_number":68,"context_line":"        props \u003d {}"},{"line_number":69,"context_line":"        fc \u003d linuxfc.LinuxFibreChannel(root_helper,"},{"line_number":70,"context_line":"                                       execute\u003dkwargs.get(\u0027execute\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"71d61c07_0a830604","line":67,"range":{"start_line":66,"start_character":0,"end_line":67,"end_character":59},"in_reply_to":"2e8bea8a_a32637e1","updated":"2024-11-03 22:01:21.000000000","message":"Done","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"}],"os_brick/initiator/connectors/iscsi.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"35e9e84ce9e06e38beb9fcdb308467db7be40108","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            cls, root_helper: str, *args, **kwargs) -\u003e dict:"},{"line_number":66,"context_line":"        \"\"\"The iSCSI connector properties.\"\"\""},{"line_number":67,"context_line":"        # Store these values to validate multipathing in connect_volume"},{"line_number":68,"context_line":"        cls.mpath \u003d kwargs.get(\u0027multipath\u0027)"},{"line_number":69,"context_line":"        cls.enforce_mpath \u003d kwargs.get(\u0027enforce_multipath\u0027)"},{"line_number":70,"context_line":"        props \u003d {}"},{"line_number":71,"context_line":"        iscsi \u003d ISCSIConnector(root_helper\u003droot_helper,"},{"line_number":72,"context_line":"                               execute\u003dkwargs.get(\u0027execute\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"dcc3c26b_3d261883","line":69,"range":{"start_line":68,"start_character":0,"end_line":69,"end_character":59},"updated":"2024-10-29 08:17:32.000000000","message":"-1: Same comment as the FC one.","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2dc7bf56491db9f999c3674fe580654064ed0e9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            cls, root_helper: str, *args, **kwargs) -\u003e dict:"},{"line_number":66,"context_line":"        \"\"\"The iSCSI connector properties.\"\"\""},{"line_number":67,"context_line":"        # Store these values to validate multipathing in connect_volume"},{"line_number":68,"context_line":"        cls.mpath \u003d kwargs.get(\u0027multipath\u0027)"},{"line_number":69,"context_line":"        cls.enforce_mpath \u003d kwargs.get(\u0027enforce_multipath\u0027)"},{"line_number":70,"context_line":"        props \u003d {}"},{"line_number":71,"context_line":"        iscsi \u003d ISCSIConnector(root_helper\u003droot_helper,"},{"line_number":72,"context_line":"                               execute\u003dkwargs.get(\u0027execute\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ee54ceb_bc7c5595","line":69,"range":{"start_line":68,"start_character":0,"end_line":69,"end_character":59},"in_reply_to":"dcc3c26b_3d261883","updated":"2024-11-03 22:01:21.000000000","message":"Done","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"}],"os_brick/initiator/connectors/nvmeof.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"35e9e84ce9e06e38beb9fcdb308467db7be40108","unresolved":true,"context_lines":[{"line_number":798,"context_line":"        uuid \u003d nvmf._get_host_uuid()"},{"line_number":799,"context_line":"        suuid \u003d priv_nvmeof.get_system_uuid()"},{"line_number":800,"context_line":"        # Store these values to validate multipathing in connect_volume"},{"line_number":801,"context_line":"        cls.mpath \u003d kwargs.get(\u0027multipath\u0027)"},{"line_number":802,"context_line":"        cls.enforce_mpath \u003d kwargs.get(\u0027enforce_multipath\u0027)"},{"line_number":803,"context_line":"        if cls.nvme_present():"},{"line_number":804,"context_line":"            nqn \u003d utils.get_host_nqn(suuid)"},{"line_number":805,"context_line":"            # Ensure /etc/nvme/hostid exists and defaults to the system uuid,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fbb1d1c0_649939d8","line":802,"range":{"start_line":801,"start_character":0,"end_line":802,"end_character":59},"updated":"2024-10-29 08:17:32.000000000","message":"-1: Same comment as the FC and iSCSI ones.","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2dc7bf56491db9f999c3674fe580654064ed0e9","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        uuid \u003d nvmf._get_host_uuid()"},{"line_number":799,"context_line":"        suuid \u003d priv_nvmeof.get_system_uuid()"},{"line_number":800,"context_line":"        # Store these values to validate multipathing in connect_volume"},{"line_number":801,"context_line":"        cls.mpath \u003d kwargs.get(\u0027multipath\u0027)"},{"line_number":802,"context_line":"        cls.enforce_mpath \u003d kwargs.get(\u0027enforce_multipath\u0027)"},{"line_number":803,"context_line":"        if cls.nvme_present():"},{"line_number":804,"context_line":"            nqn \u003d utils.get_host_nqn(suuid)"},{"line_number":805,"context_line":"            # Ensure /etc/nvme/hostid exists and defaults to the system uuid,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ab26790e_f3cffde1","line":802,"range":{"start_line":801,"start_character":0,"end_line":802,"end_character":59},"in_reply_to":"fbb1d1c0_649939d8","updated":"2024-11-03 22:01:21.000000000","message":"Done","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"}],"os_brick/initiator/linuxscsi.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c2fc1a718ffad172cef2058e024f7de435428c25","unresolved":true,"context_lines":[{"line_number":288,"context_line":"            # There was a bug in multipathd where it didn\u0027t return an error"},{"line_number":289,"context_line":"            # code and just printed the error message in stdout."},{"line_number":290,"context_line":"            if out and out.startswith(\u0027error receiving packet\u0027):"},{"line_number":291,"context_line":"                raise putils.ProcessExecutionError(\u0027\u0027, out, 1, cmd, None)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        except putils.ProcessExecutionError:"},{"line_number":294,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":11,"id":"30bc9e06_dd4844aa","line":291,"range":{"start_line":291,"start_character":0,"end_line":291,"end_character":73},"updated":"2024-12-09 11:24:28.000000000","message":"-1: This needs to return `False` because it\u0027s the same as when the call returns a non 0 exit code result.","commit_id":"697ae6b123dd4db67ab66c578d467761b9d07d05"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"184d7b04ac22bf5f3bb8825c0a1b65a0122734cb","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            # There was a bug in multipathd where it didn\u0027t return an error"},{"line_number":289,"context_line":"            # code and just printed the error message in stdout."},{"line_number":290,"context_line":"            if out and out.startswith(\u0027error receiving packet\u0027):"},{"line_number":291,"context_line":"                raise putils.ProcessExecutionError(\u0027\u0027, out, 1, cmd, None)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        except putils.ProcessExecutionError:"},{"line_number":294,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":11,"id":"2c2c9790_32fe0437","line":291,"range":{"start_line":291,"start_character":0,"end_line":291,"end_character":73},"in_reply_to":"30bc9e06_dd4844aa","updated":"2024-12-09 11:37:27.000000000","message":"Right now also it returns False but in an indirect way by catching the exception on L#293 but I see that directly returning False is much straightforward and more readable.","commit_id":"697ae6b123dd4db67ab66c578d467761b9d07d05"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1ee93493ba23b7ee66162469090eb461b514049e","unresolved":true,"context_lines":[{"line_number":277,"context_line":"        return out.strip()"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    @staticmethod"},{"line_number":280,"context_line":"    def is_multipath_running(enforce_multipath,"},{"line_number":281,"context_line":"                             root_helper,"},{"line_number":282,"context_line":"                             execute\u003dNone) -\u003e bool:"},{"line_number":283,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"47eb68b7_95fd45c2","side":"PARENT","line":280,"range":{"start_line":280,"start_character":29,"end_line":280,"end_character":46},"updated":"2025-02-27 14:28:26.000000000","message":"This causes breaking change in a public interface... I don\u0027t know if we want to revert it now, because it causes another breaking change but we should be careful when we make a similar change in the future.","commit_id":"b8300f6fdd09c2a7862dd54384a54f8d93ea4efc"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a624a0b61d2bba572e870fa97df05144d87b610d","unresolved":true,"context_lines":[{"line_number":277,"context_line":"        return out.strip()"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    @staticmethod"},{"line_number":280,"context_line":"    def is_multipath_running(enforce_multipath,"},{"line_number":281,"context_line":"                             root_helper,"},{"line_number":282,"context_line":"                             execute\u003dNone) -\u003e bool:"},{"line_number":283,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7d20114f_ef3c0a9e","side":"PARENT","line":280,"range":{"start_line":280,"start_character":29,"end_line":280,"end_character":46},"in_reply_to":"47eb68b7_95fd45c2","updated":"2025-02-27 15:14:24.000000000","message":"Sorry i don\u0027t understand the concern here. This method is only used internally by os-brick and all relevant places are modified before removing this parameter.\nWhy would we want to revert this? Is it causing failures in any environment?","commit_id":"b8300f6fdd09c2a7862dd54384a54f8d93ea4efc"}],"os_brick/utils.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"35e9e84ce9e06e38beb9fcdb308467db7be40108","unresolved":true,"context_lines":[{"line_number":511,"context_line":"ANY \u003d Anything()"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"def check_multipath(func):"},{"line_number":515,"context_line":"    @functools.wraps(func)"},{"line_number":516,"context_line":"    def is_multipath_supported(self, connection_info):"},{"line_number":517,"context_line":"        LOG.debug(\"Connection Info %s\", connection_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"d04235b7_8d0b9f41","line":514,"updated":"2024-10-29 08:17:32.000000000","message":"?: Why is this method not included in the `BaseLinuxConnector` instead of here?","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2dc7bf56491db9f999c3674fe580654064ed0e9","unresolved":false,"context_lines":[{"line_number":511,"context_line":"ANY \u003d Anything()"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"def check_multipath(func):"},{"line_number":515,"context_line":"    @functools.wraps(func)"},{"line_number":516,"context_line":"    def is_multipath_supported(self, connection_info):"},{"line_number":517,"context_line":"        LOG.debug(\"Connection Info %s\", connection_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"58a948c6_ec241ba5","line":514,"in_reply_to":"d04235b7_8d0b9f41","updated":"2024-11-03 22:01:21.000000000","message":"Done","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"35e9e84ce9e06e38beb9fcdb308467db7be40108","unresolved":true,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"def check_multipath(func):"},{"line_number":515,"context_line":"    @functools.wraps(func)"},{"line_number":516,"context_line":"    def is_multipath_supported(self, connection_info):"},{"line_number":517,"context_line":"        LOG.debug(\"Connection Info %s\", connection_info)"},{"line_number":518,"context_line":"        if self.mpath and self.enforce_mpath:"},{"line_number":519,"context_line":"            if not self.supports_multipath():"}],"source_content_type":"text/x-python","patch_set":4,"id":"a1b83e8f_5063bf85","line":516,"range":{"start_line":516,"start_character":37,"end_line":516,"end_character":52},"updated":"2024-10-29 08:17:32.000000000","message":"-1: Please preserve the original parameter name of the method this is wrapping: `connection_properties`","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2dc7bf56491db9f999c3674fe580654064ed0e9","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"def check_multipath(func):"},{"line_number":515,"context_line":"    @functools.wraps(func)"},{"line_number":516,"context_line":"    def is_multipath_supported(self, connection_info):"},{"line_number":517,"context_line":"        LOG.debug(\"Connection Info %s\", connection_info)"},{"line_number":518,"context_line":"        if self.mpath and self.enforce_mpath:"},{"line_number":519,"context_line":"            if not self.supports_multipath():"}],"source_content_type":"text/x-python","patch_set":4,"id":"a0f0ea46_f8d0c040","line":516,"range":{"start_line":516,"start_character":37,"end_line":516,"end_character":52},"in_reply_to":"a1b83e8f_5063bf85","updated":"2024-11-03 22:01:21.000000000","message":"Done","commit_id":"2a4469c1265cda74cdbd9a566529e24c9b40fb57"}],"releasenotes/notes/fix-multipathd-dependency-nvmeof-d61187f1ab3808c2.yaml":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c2fc1a718ffad172cef2058e024f7de435428c25","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    NVMe-oF connector `bug #2085013"},{"line_number":5,"context_line":"    \u003chttps://bugs.launchpad.net/os-brick/+bug/2085013\u003e`_ : Removed"},{"line_number":6,"context_line":"    ``multipathd`` dependency for NVMe-oF connections."},{"line_number":7,"context_line":"    Previously, multipathd must be installed to leverage native"},{"line_number":8,"context_line":"    NVMe multipathing (ANA) but now that dependency is removed."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"8db8fb3b_df193b8f","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":31},"updated":"2024-12-09 11:24:28.000000000","message":"nit: `had to`","commit_id":"697ae6b123dd4db67ab66c578d467761b9d07d05"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"184d7b04ac22bf5f3bb8825c0a1b65a0122734cb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    NVMe-oF connector `bug #2085013"},{"line_number":5,"context_line":"    \u003chttps://bugs.launchpad.net/os-brick/+bug/2085013\u003e`_ : Removed"},{"line_number":6,"context_line":"    ``multipathd`` dependency for NVMe-oF connections."},{"line_number":7,"context_line":"    Previously, multipathd must be installed to leverage native"},{"line_number":8,"context_line":"    NVMe multipathing (ANA) but now that dependency is removed."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"34a90c9b_1ceb0ae2","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":31},"in_reply_to":"8db8fb3b_df193b8f","updated":"2024-12-09 11:37:27.000000000","message":"Done","commit_id":"697ae6b123dd4db67ab66c578d467761b9d07d05"}]}
