diff --git a/control/grpc.py b/control/grpc.py index 0e7279c34..ed6e9968d 100644 --- a/control/grpc.py +++ b/control/grpc.py @@ -1643,10 +1643,14 @@ def create_listener_safe(self, request, context): ) self.logger.info(f"create_listener: {ret}") else: - errmsg=f"{create_listener_error_prefix}: Gateway name must match current gateway ({self.gateway_name})" - self.logger.error(f"{errmsg}") - return pb2.req_status(status=errno.ENOENT, - error_message=errmsg) + if context: + errmsg=f"{create_listener_error_prefix}: Gateway name must match current gateway ({self.gateway_name})" + self.logger.error(f"{errmsg}") + return pb2.req_status(status=errno.ENODEV, error_message=errmsg) + else: + errmsg=f"Listener not created as gateway {self.gateway_name} differs from requested gateway {request.gateway_name}" + self.logger.info(f"{errmsg}") + return pb2.req_status(status=0, error_message=errmsg) except Exception as ex: errmsg = f"{create_listener_error_prefix}:\n{ex}" self.logger.error(errmsg) diff --git a/tests/test_cli.py b/tests/test_cli.py index ee66a5aa5..b16c2b392 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -34,6 +34,7 @@ listener_list_ipv6 = [["-g", gateway_name, "-a", addr_ipv6, "-s", "5003", "--adrfam", "ipv6"], ["-g", gateway_name, "-a", addr_ipv6, "-s", "5004", "--adrfam", "IPV6"]] listener_list_discovery = [["-n", discovery_nqn, "-g", gateway_name, "-a", addr, "-s", "5012"]] listener_list_negative_port = [["-g", gateway_name, "-a", addr, "-s", "-2000"]] +listener_list_wrong_gw = [["-g", "WRONG", "-a", addr, "-s", "5015", "-t", "tcp", "-f", "ipv4"]] config = "ceph-nvmeof.conf" @pytest.fixture(scope="module") @@ -445,6 +446,12 @@ def test_create_listener_negative_port(self, caplog, listener, gateway): assert "error: trsvcid value must be positive" in caplog.text assert rc == 2 + @pytest.mark.parametrize("listener", listener_list_wrong_gw) + def test_create_listener_wrong_gateway(self, caplog, listener, gateway): + caplog.clear() + cli(["listener", "add", "--subsystem", subsystem] + listener) + assert f"Gateway name must match current gateway ({gateway_name})" in caplog.text + def test_create_listener_wrong_ha_state(self, caplog, gateway): gw, stub = gateway caplog.clear()