[Libvirt-cim] [PATCH 1 of 2] (#2) Add function to poll for a guest

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Wed Aug 6 19:19:44 UTC 2008


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1217542638 25200
# Node ID 3f73022d65dc1385ba90a2de874c878c631e7aee
# Parent  01e5197b144a873a55bb0c088fc29cd31a5a9b0e
(#2) Add function to poll for a guest

This function is a work around to deal with a stale data issue seen with libvirt on RHEL 5.x.

-Updates:
  -Changed name of polling function for clarity.

Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>

diff -r 01e5197b144a -r 3f73022d65dc suites/libvirt-cim/lib/XenKvmLib/common_util.py
--- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py	Wed Aug 06 09:15:45 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py	Thu Jul 31 15:17:18 2008 -0700
@@ -33,10 +33,12 @@
 from pywbem.cim_obj import CIMInstanceName
 from XenKvmLib.devices import CIM_Instance
 from XenKvmLib.classes import get_typed_class
-from CimTest.Globals import logger, log_param, CIM_ERROR_ENUMERATE
+from CimTest.Globals import logger, log_param, CIM_ERROR_ENUMERATE, \
+                            CIM_ERROR_GETINSTANCE
 from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC
-from VirtLib.live import diskpool_list, virsh_version, net_list
+from VirtLib.live import diskpool_list, virsh_version, net_list, domain_list
 from XenKvmLib.vxml import PoolXML, NetXML
+from XenKvmLib.enumclass import getInstance
 
 test_dpath = "foo"
 disk_file = '/etc/libvirt/diskpool.conf'
@@ -57,7 +59,7 @@
             return (1, cs)
 
     except Exception, detail:
-        logger.error(Globals.CIM_ERROR_GETINSTANCE, 
+        logger.error(CIM_ERROR_GETINSTANCE, 
                      get_typed_class(virt, 'ComputerSystem'))
         logger.error("Exception: %s", detail)
         return (1, cs) 
@@ -397,3 +399,18 @@
 
     return PASS 
 
+def libvirt_cached_data_poll(ip, virt, dom_name):
+    cs = None
+
+    dom_list = domain_list(ip, virt)
+    if dom_name in dom_list:
+        timeout = 10 
+
+        for i in range(0, timeout):
+            rc, cs = get_cs_instance(dom_name, ip, virt)
+            if rc == 0:
+                return cs 
+
+            sleep(1)
+            
+    return cs 




More information about the Libvirt-cim mailing list