Revision f6c5e64f lib/network.py

b/lib/network.py
26 26
import ipaddr
27 27

  
28 28
from bitarray import bitarray
29
from base64 import b64encode
30
from base64 import b64decode
29 31

  
30 32
from ganeti import errors
31 33

  
......
60 62
      self.gateway6 = ipaddr.IPv6Address(self.net.gateway6)
61 63

  
62 64
    if self.net.reservations:
63
      self.reservations = bitarray(self.net.reservations)
65
      self.reservations = bitarray()
66
      self.reservations.fromstring(b64decode(self.net.reservations))
64 67
    else:
65 68
      self.reservations = bitarray(self.network.numhosts)
66 69
      self.reservations.setall(False)
67 70

  
68 71
    if self.net.ext_reservations:
69
      self.ext_reservations = bitarray(self.net.ext_reservations)
72
      self.ext_reservations = bitarray()
73
      self.ext_reservations.fromstring(b64decode(self.net.ext_reservations))
70 74
    else:
71 75
      self.ext_reservations = bitarray(self.network.numhosts)
72 76
      self.ext_reservations.setall(False)
......
92 96

  
93 97
  def _Update(self):
94 98
    """Write address pools back to the network object"""
95
    self.net.ext_reservations = self.ext_reservations.to01()
96
    self.net.reservations = self.reservations.to01()
99
    self.net.ext_reservations = b64encode(self.ext_reservations.tostring())
100
    self.net.reservations = b64encode(self.reservations.tostring())
97 101

  
98 102
  def _Mark(self, address, value=True, external=False):
99 103
    idx = self._GetAddrIndex(address)

Also available in: Unified diff