
On 16/01/2015 11:32, Royce Lv wrote:
On 01/13/2015 02:16 PM, Aline Manera wrote:
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@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) Does this also work when logical storage pool status is active?
Yeap! But I will add a test case to cover this scenario and send a V2. Thanks.
+ def _mock_storagevolumes_create(self, pool, params): vol_source = ['file', 'url', 'capacity'] index_list = list(i for i in range(len(vol_source))
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel