[Kimchi-devel] [PATCH 6/8] MockModel: Extend logical storage pool
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Jan 13 19:16:45 UTC 2015
Model does not use libvirt to extend the logical pool. Instead of that,
the LVM is extended by using vgextend command.
As in MockModel environment we don't have a LVM itself, we need to fake
the extend operation. In that case only the pool XML is updated without
affecting the current system.
Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
---
src/kimchi/mockmodel.py | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
index affbf42..0c8186c 100644
--- a/src/kimchi/mockmodel.py
+++ b/src/kimchi/mockmodel.py
@@ -26,6 +26,7 @@ import time
import kimchi.model.cpuinfo
from lxml import objectify
+from lxml.builder import E
from kimchi import config
from kimchi import imageinfo
@@ -35,6 +36,7 @@ from kimchi.model.host import DeviceModel
from kimchi.model.libvirtstoragepool import IscsiPoolDef, NetfsPoolDef
from kimchi.model.libvirtstoragepool import StoragePoolDef
from kimchi.model.model import Model
+from kimchi.model.storagepools import StoragePoolModel
from kimchi.model.storagevolumes import StorageVolumesModel
from kimchi.model.templates import LibvirtVMTemplate
from kimchi.model.users import PAMUsersModel
@@ -107,6 +109,7 @@ class MockModel(Model):
setattr(self, m, mock_method)
DeviceModel.lookup = self._mock_device_lookup
+ StoragePoolModel._update_lvm_disks = self._update_lvm_disks
StorageVolumesModel.get_list = self._mock_storagevolumes_get_list
DebugReportsModel._gen_debugreport_file = self._gen_debugreport_file
LibvirtVMTemplate._get_volume_path = self._get_volume_path
@@ -256,6 +259,20 @@ class MockModel(Model):
os.rename(tmpf, realf)
cb("OK", True)
+ def _update_lvm_disks(self, pool_name, disks):
+ conn = self.conn.get()
+ pool = conn.storagePoolLookupByName(pool_name.encode('utf-8'))
+ xml = pool.XMLDesc(0)
+
+ root = ET.fromstring(xml)
+ source = root.xpath('./source')[0]
+
+ for d in disks:
+ dev = E.device(path=d)
+ source.append(dev)
+
+ conn.storagePoolDefineXML(ET.tostring(root), 0)
+
def _mock_storagevolumes_create(self, pool, params):
vol_source = ['file', 'url', 'capacity']
index_list = list(i for i in range(len(vol_source))
--
2.1.0
More information about the Kimchi-devel
mailing list