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