Package ganeti :: Package confd
[hide private]
[frames] | no frames]

Source Code for Package ganeti.confd

 1  # 
 2  # 
 3   
 4  # Copyright (C) 2009, 2012 Google Inc. 
 5  # 
 6  # This program is free software; you can redistribute it and/or modify 
 7  # it under the terms of the GNU General Public License as published by 
 8  # the Free Software Foundation; either version 2 of the License, or 
 9  # (at your option) any later version. 
10  # 
11  # This program is distributed in the hope that it will be useful, but 
12  # WITHOUT ANY WARRANTY; without even the implied warranty of 
13  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14  # General Public License for more details. 
15  # 
16  # You should have received a copy of the GNU General Public License 
17  # along with this program; if not, write to the Free Software 
18  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
19  # 02110-1301, USA. 
20   
21   
22  """Ganeti confd client/server library 
23   
24  """ 
25   
26  from ganeti import constants 
27  from ganeti import errors 
28  from ganeti import ht 
29   
30   
31  _FOURCC_LEN = 4 
32   
33   
34  #: Items in the individual rows of the NodeDrbd query 
35  _HTNodeDrbdItems = [ht.TString, ht.TInt, ht.TString, 
36                      ht.TString, ht.TString, ht.TString] 
37  #: Type for the (top-level) result of NodeDrbd query 
38  HTNodeDrbd = ht.TListOf(ht.TAnd(ht.TList, ht.TIsLength(len(_HTNodeDrbdItems)), 
39                                  ht.TItems(_HTNodeDrbdItems))) 
40   
41   
42 -def PackMagic(payload):
43 """Prepend the confd magic fourcc to a payload. 44 45 """ 46 return "".join([constants.CONFD_MAGIC_FOURCC, payload])
47 48
49 -def UnpackMagic(payload):
50 """Unpack and check the confd magic fourcc from a payload. 51 52 """ 53 if len(payload) < _FOURCC_LEN: 54 raise errors.ConfdMagicError("UDP payload too short to contain the" 55 " fourcc code") 56 57 magic_number = payload[:_FOURCC_LEN] 58 if magic_number != constants.CONFD_MAGIC_FOURCC: 59 raise errors.ConfdMagicError("UDP payload contains an unkown fourcc") 60 61 return payload[_FOURCC_LEN:]
62