Kaitlin Rupert wrote:
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1240002683 25200
# Node ID eea660ff3ad6e589f76bf17b3697d30465e54398
# Parent ced161a8198115797a6036f3f22e02d234439a76
[TEST] (#2) Improve enum volumes
The providers don't return a template RASD for volumes that libvirt is
unable to get volume info for. So the testsuite needs to do the same.
The information that libvirt virsh pool-list is returning is not
completely correct:
For ex:
virsh -c qemu:///system vol-list cimtest-diskpoolName Path
-----------------------------------------
.X0-lock /tmp/.X0-lock
cimtest.uuid /tmp/cimtest.uuid
default-kvm-dimage /tmp/default-kvm-dimage
tmpnsIv8q /tmp/tmpnsIv8q
The last pool information tmpnsIv8q does not seem to exist on the
machine, hence when I ran the HostSystem/03_hs_to_settdefcap.py it
failed with the following error:
-------------------------------------------------------------------------------------------------------------------------------
ERROR - 'KVM_SettingsDefineCapabilities' returned 0 RASD objects instead
of 16
CIM_ERR_INVALID_CLASS: Linux_ComputerSystem
CIM_ERR_FAILED: Unable to get volume information: cannot open volume
'/tmp/tmpnsIv8q': No such file or directory
-------------------------------------------------------------------------------------------------------------------------------
The test case passed after I created the file /tmp/tmpnsIv8q.
I am not sure if this is the limitation from libvirt side or if its a
feature with libvirt.
Anyways +1 for these changes.
Also, don't use a hardcoded disk pool name - use the default
value from const.py
Updates:
-Remove test code
-Allow caller to specify pool name, or use default pool name if one isn't
specified
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r ced161a81981 -r eea660ff3ad6 suites/libvirt-cim/lib/XenKvmLib/pool.py
--- a/suites/libvirt-cim/lib/XenKvmLib/pool.py Wed Apr 15 20:19:31 2009 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/pool.py Fri Apr 17 14:11:23 2009 -0700
@@ -24,7 +24,7 @@
from CimTest.Globals import logger
from CimTest.ReturnCodes import PASS, FAIL
from XenKvmLib.classes import get_typed_class
-from XenKvmLib.const import get_provider_version
+from XenKvmLib.const import get_provider_version, default_pool_name
from XenKvmLib.enumclass import EnumInstances
from VirtLib.utils import run_remote
from XenKvmLib.xm_virt_util import virt2uri
@@ -80,16 +80,20 @@
return pool_insts, PASS
-def enum_volumes(virt, server):
+def enum_volumes(virt, server, pooln=default_pool_name):
volume = 0
cmd = "virsh -c %s vol-list %s | sed -e '1,2 d' -e '$ d'"
% \
- (virt2uri(virt), 'cimtest-diskpool')
+ (virt2uri(virt), default_pool_name)
ret, out = run_remote(server ,cmd)
if ret != 0:
return None
lines = out.split("\n")
for line in lines:
- volume = volume + 1
+ vol = line.split()[0]
+ cmd = "virsh -c %s vol-info --pool %s %s" % (virt2uri(virt), pooln,
vol)
+ ret, out = run_remote(server ,cmd)
+ if ret == 0:
+ volume = volume + 1
return volume
_______________________________________________
Libvirt-cim mailing list
Libvirt-cim(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-cim
--
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik(a)linux.vnet.ibm.com