From 4aca407bd66a5f0768650dab6413ef5d041070a8 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Fri, 24 Jan 2020 21:24:51 +0100 Subject: [PATCH] Add client_id to RPC client A Gearman client can set a client id which is then used on the server side to identify the connection. Lack of a client_id makes it harder to follow the flow when looking at logs: gear.Connection.b'unknown' INFO Connected to 127.0.0.1 port 4730 gear.Server Accepted connection ^^^^ In RPCClient, introduce a client_id argument which is passed to gear.Client(). Update callers to set a meaningful client_id. Change-Id: Idbd63f15b0cde3d77fe969c7650f4eb18aec1ef6 --- zuul/cmd/client.py | 5 +++-- zuul/lib/fingergw.py | 3 ++- zuul/rpcclient.py | 5 +++-- zuul/web/__init__.py | 3 ++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/zuul/cmd/client.py b/zuul/cmd/client.py index 82487ff2a1..6fc9128a3b 100755 --- a/zuul/cmd/client.py +++ b/zuul/cmd/client.py @@ -149,7 +149,7 @@ class ZuulRESTClient(object): class Client(zuul.cmd.ZuulApp): app_name = 'zuul' - app_description = 'Zuul client.' + app_description = 'Zuul CLI client.' log = logging.getLogger("zuul.Client") def createParser(self): @@ -405,7 +405,8 @@ class Client(zuul.cmd.ZuulApp): ssl_ca = get_default(self.config, 'gearman', 'ssl_ca') client = zuul.rpcclient.RPCClient( server, port, ssl_key, - ssl_cert, ssl_ca) + ssl_cert, ssl_ca, + client_id=self.app_description) elif 'webclient' in conf_sections: self.log.debug('web section found in config, using REST client') server = get_default(self.config, 'webclient', 'url', None) diff --git a/zuul/lib/fingergw.py b/zuul/lib/fingergw.py index 5f46418367..c93e558621 100644 --- a/zuul/lib/fingergw.py +++ b/zuul/lib/fingergw.py @@ -158,7 +158,8 @@ class FingerGateway(object): self.gear_port, self.gear_ssl_key, self.gear_ssl_cert, - self.gear_ssl_ca) + self.gear_ssl_ca, + client_id='Zuul Finger Gateway') self.server = streamer_utils.CustomThreadingTCPServer( self.address, diff --git a/zuul/rpcclient.py b/zuul/rpcclient.py index ec1e4e3542..097080a2e4 100644 --- a/zuul/rpcclient.py +++ b/zuul/rpcclient.py @@ -26,9 +26,10 @@ class RPCFailure(Exception): class RPCClient(object): log = logging.getLogger("zuul.RPCClient") - def __init__(self, server, port, ssl_key=None, ssl_cert=None, ssl_ca=None): + def __init__(self, server, port, ssl_key=None, ssl_cert=None, ssl_ca=None, + client_id='Zuul RPC Client'): self.log.debug("Connecting to gearman at %s:%s" % (server, port)) - self.gearman = gear.Client() + self.gearman = gear.Client(client_id) self.gearman.addServer(server, port, ssl_key, ssl_cert, ssl_ca, keepalive=True, tcp_keepidle=60, tcp_keepintvl=30, tcp_keepcnt=5) diff --git a/zuul/web/__init__.py b/zuul/web/__init__.py index 31b147d436..7a22ce384f 100755 --- a/zuul/web/__init__.py +++ b/zuul/web/__init__.py @@ -1085,7 +1085,8 @@ class ZuulWeb(object): self.static_path = os.path.abspath(static_path or STATIC_DIR) # instanciate handlers self.rpc = zuul.rpcclient.RPCClient(gear_server, gear_port, - ssl_key, ssl_cert, ssl_ca) + ssl_key, ssl_cert, ssl_ca, + client_id='Zuul Web Server') self.zk = zuul.zk.ZooKeeper(enable_cache=True) if zk_hosts: self.zk.connect(hosts=zk_hosts, read_only=True)