checking system slice will try netflow and drl
[tests.git] / system / TestNode.py
index 54ea416..9a980f5 100644 (file)
@@ -2,7 +2,6 @@
 # Copyright (C) 2010 INRIA 
 #
 import sys, os, os.path, time, base64
-import xmlrpclib
 
 import utils
 from TestUser import TestUser
@@ -122,6 +121,7 @@ class TestNode:
 
     # Do most of the stuff locally - will be pushed on host_box - *not* the plc - later if needed
     def qemu_local_init(self):
+        "all nodes : init a clean local directory for holding node-dep stuff like iso image..."
         utils.system("rm -rf %s"%self.nodedir())
         utils.system("mkdir %s"%self.nodedir())
         if not self.is_qemu():
@@ -129,6 +129,7 @@ class TestNode:
         return utils.system("rsync -v -a --exclude .svn template-qemu/ %s/"%self.nodedir())==0
 
     def bootcd(self):
+        "all nodes: invoke GetBootMedium and store result locally"
         utils.header("Calling GetBootMedium for %s"%self.name())
         options = []
         if self.is_qemu():
@@ -149,21 +150,25 @@ class TestNode:
             return True
 
     def nodestate_reinstall (self):
+        "all nodes: mark PLCAPI boot_state as reinstall"
         self.test_plc.apiserver.UpdateNode(self.test_plc.auth_root(),
                                            self.name(),{'boot_state':'reinstall'})
         return True
     
     def nodestate_safeboot (self):
+        "all nodes: mark PLCAPI boot_state as safeboot"
         self.test_plc.apiserver.UpdateNode(self.test_plc.auth_root(),
                                            self.name(),{'boot_state':'safeboot'})
         return True
     
     def nodestate_boot (self):
+        "all nodes: mark PLCAPI boot_state as boot"
         self.test_plc.apiserver.UpdateNode(self.test_plc.auth_root(),
                                            self.name(),{'boot_state':'boot'})
         return True
 
     def nodestate_show (self):
+        "all nodes: show PLCAPI boot_state"
         if self.test_plc.options.dry_run:
             print "Dry_run: skipped getting current node state"
             return True
@@ -172,6 +177,7 @@ class TestNode:
         return True
     
     def qemu_local_config(self):
+        "all nodes: compute qemu config qemu.conf and store it locally"
         if not self.is_qemu():
             return
         mac=self.node_spec['interface_fields']['mac']
@@ -194,6 +200,7 @@ class TestNode:
         return True
 
     def qemu_export (self):
+        "all nodes: push local node-dep directory on the qemu box"
         # if relevant, push the qemu area onto the host box
         if self.test_box().is_local():
             return True
@@ -203,6 +210,7 @@ class TestNode:
         return self.test_box().copy(self.nodedir(),recursive=True)==0
             
     def qemu_start (self):
+        "all nodes: start the qemu instance (also runs qemu-bridge-init start)"
         model=self.node_spec['node_fields']['model']
         #starting the Qemu nodes before 
         if self.is_qemu():
@@ -212,6 +220,7 @@ class TestNode:
         return True
 
     def timestamp_qemu (self):
+        "all nodes: start the qemu instance (also runs qemu-bridge-init start)"
         test_box = self.test_box()
         test_box.run_in_buildname("mkdir -p %s"%self.nodedir())
         now=int(time.time())
@@ -248,6 +257,7 @@ class TestNode:
         self.test_box().test_ssh.fetch(remote_log,local_log)
 
     def keys_clear_known_hosts (self):
+        "remove test nodes entries from the local known_hosts file"
         TestSsh(self.name()).clear_known_hosts()
         return True
 
@@ -257,7 +267,7 @@ class TestNode:
 ###        # assuming we've run testplc.fetch_keys()
 ###        key = "keys/%(vservername)s.rsa"%locals()
         # fetch_keys doesn't grab the root key anymore
-        key = "keys/key1.rsa"
+        key = "keys/key_admin.rsa"
         return TestSsh(self.name(), buildname=self.buildname(), key=key)
 
     def check_hooks (self):
@@ -286,22 +296,24 @@ class TestNode:
 
     def has_libvirt (self):
         test_ssh=self.create_test_ssh()
-        return test_ssh.run ("rpm -q libvirt-client")==0
+        return test_ssh.run ("rpm -q --quiet libvirt-client")==0
 
-    def check_systemslice (self, slicename,dry_run=False):
+    def _check_system_slice (self, slicename,dry_run=False):
         sitename=self.test_plc.plc_spec['PLC_SLICE_PREFIX']
         vservername="%s_%s"%(sitename,slicename)
         test_ssh=self.create_test_ssh()
         if self.has_libvirt():
+            utils.header("Checking system slice %s using virsh"%slicename)
             return test_ssh.run("virsh --connect lxc:// list | grep -q ' %s '"%vservername,
                                 dry_run=dry_run)==0
         else:
             (retcod,output)=utils.output_of(test_ssh.actual_command("cat /vservers/%s/etc/slicefamily 2> /dev/null")%vservername)
             # get last line only as ssh pollutes the output
             slicefamily=output.split("\n")[-1]
-            utils.header("system slice %s has slicefamily %s"%(slicename, slicefamily))
+            utils.header("Found slicefamily '%s'for slice %s"%(slicefamily,slicename))
             if retcod != 0: 
                 return False
+            utils.header("Checking system slice %s using vserver-stat"%slicename)
             return test_ssh.run("vserver-stat | grep %s"%vservername,dry_run=dry_run)==0