X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/12426ae1b629bd413eb3efd70b9c0b0132b855de..087ed2edee08da7bd3c4872cabde13c57585ca5a:/lib/confd/__init__.py diff --git a/lib/confd/__init__.py b/lib/confd/__init__.py index ecf3f24..4a8ac78 100644 --- a/lib/confd/__init__.py +++ b/lib/confd/__init__.py @@ -19,7 +19,34 @@ # 02110-1301, USA. -"""Ganeti confd library +"""Ganeti confd client/server library """ +from ganeti import constants + + +_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:] +