X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/d73ef63f22f47eebb11d56bb0ddbe4bb4bf0fcbb..95f84636f431ffaf777de917dabbb12bc548a678:/lib/confd/__init__.py diff --git a/lib/confd/__init__.py b/lib/confd/__init__.py index 786de1b..895884c 100644 --- a/lib/confd/__init__.py +++ b/lib/confd/__init__.py @@ -19,6 +19,35 @@ # 02110-1301, USA. -"""Ganeti confd library +"""Ganeti confd client/server library """ + +from ganeti import constants +from ganeti import errors + + +_FOURCC_LEN = 4 + + +def PackMagic(payload): + """Prepend the confd magic fourcc to a payload. + + """ + return ''.join([constants.CONFD_MAGIC_FOURCC, payload]) + + +def UnpackMagic(payload): + """Unpack and check the confd magic fourcc from a payload. + + """ + if len(payload) < _FOURCC_LEN: + raise errors.ConfdMagicError("UDP payload too short to contain the" + " fourcc code") + + magic_number = payload[:_FOURCC_LEN] + if magic_number != constants.CONFD_MAGIC_FOURCC: + raise errors.ConfdMagicError("UDP payload contains an unkown fourcc") + + return payload[_FOURCC_LEN:] +