[Libvirt-cim] [PATCH] [TEST] WIP: Update FilterList/03_create.py

Eduardo Lima (Etrunko) eblima at linux.vnet.ibm.com
Thu Jan 26 19:16:58 UTC 2012


From: "Eduardo Lima (Etrunko)" <eblima at br.ibm.com>

According to recent changes in FilterList provider.

Note that this is still work in progress. Sending only for testing purposes.

Signed-off-by: Eduardo Lima (Etrunko) <eblima at br.ibm.com>
---
 suites/libvirt-cim/cimtest/FilterList/03_create.py |   36 ++++++++++++++++----
 suites/libvirt-cim/cimtest/FilterList/helper.py    |   18 +++++++++-
 2 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/suites/libvirt-cim/cimtest/FilterList/03_create.py b/suites/libvirt-cim/cimtest/FilterList/03_create.py
index 157bd23..4a66f09 100644
--- a/suites/libvirt-cim/cimtest/FilterList/03_create.py
+++ b/suites/libvirt-cim/cimtest/FilterList/03_create.py
@@ -37,6 +37,9 @@ from VirtLib.utils import run_remote
 sup_types = ["KVM",]
 
 domain = None
+flist_name = None
+nested_name = None
+applied_name = None
 
 def get_filter_inst_and_inst_name(name):
     try:
@@ -88,6 +91,7 @@ def create_filter_list(name):
 
     # A NestedFilterList instance will add the "clean-traffic" filter
     # as an entry of the newly created FilterList
+    global nested_name
     logger.info("Creating NestedFilterList instance")
     nested_name = test.CreateFilterListInstance(None, "KVM_NestedFilterList",
                                   {"Antecedent":flist_name,
@@ -124,8 +128,12 @@ def get_nwport_inst_and_inst_name(domain_name):
 
 def cleanup():
     try:
-        # Destroy filter list
-        test.wbem.DeleteInstance(flist_name)
+        # Destroy filter list instances
+        for n in [applied_name, nested_name, flist_name]:
+            if n is not None:
+                logger.info("Deleting instance %s", n)
+                test.wbem.DeleteInstance(n)
+                logger.info("OK")
     except Exception, e:
         logger.error("Error deleting filter list: %s", e)
 
@@ -164,15 +172,29 @@ def main():
 
         # An AppliedFilterList Instance will apply the filter to the network
         # port of the defined domain
-        test.CreateFilterListInstance(None, "KVM_AppliedFilterList",
-                                      {"Antecedent":nwport_name,
-                                       "Dependent":flist_name})
+        global applied_name
+        logger.info ("Creating AppliedFilterList instance")
+        applied_name = test.CreateFilterListInstance(None, "KVM_AppliedFilterList",
+                                                     {"Antecedent":nwport_name,
+                                                      "Dependent":flist_name})
+        logger.info("Got AppliedFilterList name '%s'", applied_name)
+        #applied = test.GetInstance(applied_name)
+        #logger.info("Got AppliedFilterList '%s'", applied)
+
+        # Check results
+        filterref = test.libvirt_applied_filter_lists(domain_name)[0]
+        rule = helper.FilterRule(filterref)
+        if rule.filter != test_flist:
+            raise Exception("AppliedFilterList name '%s' does not match expected '%s'",
+                            rule.filter, test_flist)
+
+        test.cim_applied_filter_lists(domain_name)
+        logger.info("AppliedFilterList created succesfully")
+        result = PASS
     except Exception, e:
         logger.error("Caught exception: %s", e)
         result = FAIL
 
-    # Check results
-
     # Cleanup
     cleanup()
 
diff --git a/suites/libvirt-cim/cimtest/FilterList/helper.py b/suites/libvirt-cim/cimtest/FilterList/helper.py
index 294ae8f..c7e8612 100644
--- a/suites/libvirt-cim/cimtest/FilterList/helper.py
+++ b/suites/libvirt-cim/cimtest/FilterList/helper.py
@@ -307,6 +307,22 @@ class FilterListTest(BaseTestObject):
 
         return self.Associators(_inst_name, result_class="CIM_FilterEntryBase")
     # cim_entries_in_filter_list
+
+    def libvirt_applied_filter_lists(self, dom_name):
+        cmd = "virsh -q -c %s dumpxml %s 2>/dev/null" % (self.uri, dom_name)
+        ret, dom_xml = run_remote(self.server, cmd)
+        if ret:
+            logger.error("Error retrieving domain xml for %s", dom_name)
+            return None
+
+        xdoc = etree.fromstring(dom_xml)
+        filter_list = xdoc.xpath("/domain/devices/interface/filterref")
+        return filter_list
+    # libvirt_applied_filter_lists
+
+    def cim_applied_filter_lists(self, dom_name):
+        pass
+    # cim_applied_filter_lists
 # FilterListTest
 
 
@@ -394,7 +410,7 @@ class FilterRule(object):
 
         for e in element:
             self.__dict = dict(self.__dict, **e.attrib)
-            if not self.__type:
+            if self.__type is None:
                 self.__type = e.tag
 
         try:
-- 
1.7.7.6




More information about the Libvirt-cim mailing list