From a3db74e4a2541045800a081f6c1b0f67b3305340 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Wed, 23 Sep 2009 12:19:47 +0100 Subject: [PATCH] Confd client library: enable optional logging If a logger is passed in, we log some debugging messages that might help someone who's debugging a confd client to understand what's going on. Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/confd/client.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/confd/client.py b/lib/confd/client.py index a11d25cde..7e7253588 100644 --- a/lib/confd/client.py +++ b/lib/confd/client.py @@ -65,7 +65,7 @@ class ConfdClient: through asyncore or with your own handling. """ - def __init__(self, hmac_key, peers, callback, port=None): + def __init__(self, hmac_key, peers, callback, port=None, logger=None): """Constructor for ConfdClient @type hmac_key: string @@ -76,6 +76,8 @@ class ConfdClient: @param callback: function to call when getting answers @type port: integer @keyword port: confd port (default: use GetDaemonPort) + @type logger: L{logging.Logger} + @keyword logger: optional logger for internal conditions """ if not isinstance(peers, list): @@ -88,6 +90,7 @@ class ConfdClient: self._socket = ConfdAsyncUDPClient(self) self._callback = callback self._confd_port = port + self._logger = logger self._requests = {} self._expire_requests = [] @@ -184,14 +187,16 @@ class ConfdClient: try: try: answer, salt = self._UnpackReply(payload) - except (errors.SignatureError, errors.ConfdMagicError): + except (errors.SignatureError, errors.ConfdMagicError), err: + if self._logger: + self._logger.debug("Discarding broken package: %s" % err) return try: (request, args) = self._requests[salt] except KeyError: - # If the salt is unkown the answer is probably a replay of an old - # expired query. Ignoring it. + if self._logger: + self._logger.debug("Discarding unknown (expired?) reply: %s" % err) return client_reply = ConfdUpcallPayload(salt=salt, -- GitLab