From f6c5e64f46087f75abf37086b7eb75efa366257d Mon Sep 17 00:00:00 2001 From: Dimitris Aragiorgis <dimara@grnet.gr> Date: Thu, 9 Aug 2012 16:10:52 +0300 Subject: [PATCH] Use base64 format in network reservations slots Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr> --- lib/network.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/network.py b/lib/network.py index 747904083..58dbcf647 100644 --- a/lib/network.py +++ b/lib/network.py @@ -26,6 +26,8 @@ import ipaddr from bitarray import bitarray +from base64 import b64encode +from base64 import b64decode from ganeti import errors @@ -60,13 +62,15 @@ class AddressPool(object): self.gateway6 = ipaddr.IPv6Address(self.net.gateway6) if self.net.reservations: - self.reservations = bitarray(self.net.reservations) + self.reservations = bitarray() + self.reservations.fromstring(b64decode(self.net.reservations)) else: self.reservations = bitarray(self.network.numhosts) self.reservations.setall(False) if self.net.ext_reservations: - self.ext_reservations = bitarray(self.net.ext_reservations) + self.ext_reservations = bitarray() + self.ext_reservations.fromstring(b64decode(self.net.ext_reservations)) else: self.ext_reservations = bitarray(self.network.numhosts) self.ext_reservations.setall(False) @@ -92,8 +96,8 @@ class AddressPool(object): def _Update(self): """Write address pools back to the network object""" - self.net.ext_reservations = self.ext_reservations.to01() - self.net.reservations = self.reservations.to01() + self.net.ext_reservations = b64encode(self.ext_reservations.tostring()) + self.net.reservations = b64encode(self.reservations.tostring()) def _Mark(self, address, value=True, external=False): idx = self._GetAddrIndex(address) -- GitLab