2009/9/16 Guido Trotter <[email protected]>:
> --- /dev/null
> +++ b/lib/confd/client.py
> +from ganeti.confd import PackMagic, UnpackMagic
Don't do this. Never import specific names in non-test code (and try
to avoid it even there).
> +class ConfdClient:
> + """Send queries to confd, and get back answers.
> +
> […]
> +
> + """
> +
> + def __init__(self, hmac_key, mc_list):
No empty line before __init__ after the class docstring.
> + """Constructor for ConfdClient
> +
> + �...@type hmac_key: string
> + �...@param hmac_key: hmac key to talk to confd
> + �...@type mc_list: list
> + �...@param mc_list: list of peer nodes
Why mc_? I know they're master candidates, but the client shouldn't
care. Also you shouldn't include type names in the variable name. How
about “peers”?
> +
> + """
> + if not isinstance(mc_list, list):
> + raise errors.ConfdClientError("mc_list must be a list")
errors.ProgrammerError, no?
> + def _PackRequest(self, request, now=None):
> + if now is None:
> + now = time.time()
> + tstamp = '%s' % int(now)
"%d" % now
> + def HandleResponse(self, payload, ip, port):
> + try:
> + try:
> + answer, salt = self._UnpackReply(payload)
> + except errors.SignatureError, err:
> + return
> + except errors.ConfdMagicError, err:
> + return
except (errors.SignatureError, errors.ConfdMagicError):
No need for the error variable.
> +
> + if salt in self._callbacks:
> + callback, type, query, args = self._callbacks[salt]
> + callback(answer, type, query, salt, ip, port, args)
try:
(callback, type, query, args) = self._callbacks[salt]
except KeyError:
pass
else:
callback(answer, type, query, salt, ip, port, args)
Please also add some comments as to why you ignore unknown salts.
> +
> + finally:
> + self._ExpireCallbacks()
> +
> +
> +class ConfdClientRequest(objects.ConfdRequest):
> + def __init__(self, **kwargs):
> + objects.ConfdRequest.__init__(self, **kwargs)
> + if not self.rsalt:
> + self.rsalt = utils.NewUUID()
Is this client library going to be used on non-Linux systems? NewUUID
works only on Linux as it is now.
Regards,
Michael