From ec7a44a52cfa1c99812fbf6f611f2c2811474dd9 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 30 Jun 2023 10:41:05 -0700 Subject: [PATCH] More test fixes --- salt/transport/base.py | 2 ++ salt/transport/ipc.py | 16 ++++------------ salt/transport/tcp.py | 9 ++++----- salt/transport/zeromq.py | 2 +- .../pytests/unit/channel/test_request_channel.py | 2 +- 5 files changed, 12 insertions(+), 19 deletions(-) diff --git a/salt/transport/base.py b/salt/transport/base.py index 9842c7c9067..6d5535ebb91 100644 --- a/salt/transport/base.py +++ b/salt/transport/base.py @@ -128,6 +128,7 @@ def publish_client(opts, io_loop, host=None, port=None, path=None): ttype = opts["transport"] elif "transport" in opts.get("pillar", {}).get("master", {}): ttype = opts["pillar"]["master"]["transport"] + # switch on available ttypes if ttype == "zeromq": import salt.transport.zeromq @@ -147,6 +148,7 @@ def publish_client(opts, io_loop, host=None, port=None, path=None): return salt.transport.ws.PublishClient( opts, io_loop, host=host, port=port, path=path ) + raise Exception("Transport type not found: {}".format(ttype)) diff --git a/salt/transport/ipc.py b/salt/transport/ipc.py index d698f1380ab..40d996ea234 100644 --- a/salt/transport/ipc.py +++ b/salt/transport/ipc.py @@ -241,12 +241,8 @@ class IPCServer: # pylint: disable=W1701 def __del__(self): - try: - self.close() - except TypeError: - # This is raised when Python's GC has collected objects which - # would be needed when calling self.close() - pass + if not self._closing: + log.warning("%r never closed") # pylint: enable=W1701 @@ -388,12 +384,8 @@ class IPCClient: # pylint: disable=W1701 def __del__(self): - try: - self.close() - except TypeError: - # This is raised when Python's GC has collected objects which - # would be needed when calling self.close() - pass + if not self._closing: + log.warning("%r never closed", self) # pylint: enable=W1701 diff --git a/salt/transport/tcp.py b/salt/transport/tcp.py index beeb67d5dca..61f3898a0d7 100644 --- a/salt/transport/tcp.py +++ b/salt/transport/tcp.py @@ -229,7 +229,6 @@ class TCPPubClient(salt.transport.base.PublishClient): def __init__(self, opts, io_loop, **kwargs): # pylint: disable=W0231 self.opts = opts self.io_loop = io_loop - self.message_client = None self.unpacker = salt.utils.msgpack.Unpacker() self.connected = False self._closing = False @@ -260,9 +259,9 @@ class TCPPubClient(salt.transport.base.PublishClient): if self._closing: return self._closing = True - if self.message_client is not None: - self.message_client.close() - self.message_client = None + self._stream.close() + self._stream = None + self._closed = True # pylint: disable=W1701 def __del__(self): @@ -345,7 +344,7 @@ class TCPPubClient(salt.transport.base.PublishClient): return body async def send(self, msg): - await self.message_client.send(msg, reply=False) + await self._stream.send(msg) async def recv(self, timeout=None): try: diff --git a/salt/transport/zeromq.py b/salt/transport/zeromq.py index 2104a99a874..fd97c24190c 100644 --- a/salt/transport/zeromq.py +++ b/salt/transport/zeromq.py @@ -1099,7 +1099,7 @@ class RequestClient(salt.transport.base.RequestClient): if self.socket: self.socket.close() self.socket = None - if self.context.closed is False: + if self.context and self.context.closed is False: # This hangs if closing the stream causes an import error self.context.term() self.context = None diff --git a/tests/pytests/unit/channel/test_request_channel.py b/tests/pytests/unit/channel/test_request_channel.py index 0fed2249c15..148cbc32b85 100644 --- a/tests/pytests/unit/channel/test_request_channel.py +++ b/tests/pytests/unit/channel/test_request_channel.py @@ -330,7 +330,7 @@ def test_clear_req_channel_master_uri_override(temp_salt_minion, temp_salt_maste master_ip="localhost", master_port=opts["master_port"] ) with salt.channel.client.ReqChannel.factory(opts, master_uri=master_uri) as channel: - assert "127.0.0.1" in channel.transport.message_client.addr + assert "127.0.0.1" in channel.transport.master_uri def run_loop_in_thread(loop, evt):