From 8455af9cfab145629b333cb1256858e27f550926 Mon Sep 17 00:00:00 2001 From: tarokkk <tarokkk@cloud.ik.bme.hu> Date: Tue, 3 Sep 2013 10:40:55 +0200 Subject: [PATCH] adding deserializers to VM classes --- vm.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vm.py b/vm.py index 3df113b..4f11b55 100755 --- a/vm.py +++ b/vm.py @@ -68,6 +68,12 @@ class VMInstance: self.seclabel_type = seclabel_type self.seclabel_mode = seclabel_mode + @classmethod + def deserialize(cls, desc): + desc['disk_list'] = [VMDisk.deserialize(d) for d in desc['disk_list']] + desc['network_list'] = [VMNetwork.deserialize(n) for n in desc['network_list']] + return cls(**desc) + def build_xml(self): '''Return the root Element Tree object ''' @@ -160,6 +166,10 @@ class VMDisk: self.driver_cache = driver_cache self.target_device = target_device + @classmethod + def deserialize(cls, desc): + return cls(**desc) + def build_xml(self): xml_top = ET.Element('disk', attrib={'type': self.disk_type, @@ -234,6 +244,10 @@ class VMNetwork: self.vlan = vlan self.managed = managed + @classmethod + def deserialize(cls, desc): + return cls(**desc) + # XML dump def build_xml(self): xml_top = ET.Element('interface', attrib={'type': self.network_type}) -- libgit2 0.26.0