check system slice using 'drl' for now
[tests.git] / system / TestPlc.py
index 23e463d..463e794 100644 (file)
@@ -98,7 +98,7 @@ class TestPlc:
         'ssh_node_debug@1', 'plcsh_stress_test@1', SEP,
         'ssh_node_boot@1', 'ssh_slice', 'check_initscripts', SEP,
         'ssh_slice_sfa@1', 'sfa_delete_slice@1', 'sfa_delete_user@1', SEPSFA,
-        'check_tcp', 'check_netflow', SEP,
+        'check_tcp', 'check_sys_slice', SEP,
         'force_gather_logs', SEP,
         ]
     other_steps = [ 
@@ -179,7 +179,7 @@ class TestPlc:
     #command gets run in the plc's vm
     def host_to_guest(self,command):
         if self.options.plcs_use_lxc:
-            return "ssh -o StrictHostKeyChecking=no %s %s"%(self.hostname(),command)
+            return "ssh -o StrictHostKeyChecking=no %s %s"%(self.vserverip,command)
         else:
             return "vserver %s exec %s"%(self.vservername,command)
     
@@ -191,14 +191,14 @@ class TestPlc:
 
     def vm_timestamp_path (self):
         if self.options.plcs_use_lxc:
-            return "/var/lib/lxc/%s.timestamp"%(self.vservername)
+            return "/var/lib/lxc/%s/%s.timestamp"%(self.vservername,self.vservername)
         else:
             return "/vservers/%s.timestamp"%(self.vservername)
 
     #start/stop the vserver
     def start_guest_in_host(self):
         if self.options.plcs_use_lxc:
-            return "lxc-start --name=%s"%(self.vservername)
+            return "lxc-start --daemon --name=%s"%(self.vservername)
         else:
             return "vserver %s start"%(self.vservername)
     
@@ -367,8 +367,13 @@ class TestPlc:
         domain=socket.gethostname().split('.',1)[1]
         fqdn="%s.%s"%(self.plc_spec['host_box'],domain)
         print "export BUILD=%s"%self.options.buildname
-        print "export PLCHOST=%s"%fqdn
-        print "export GUEST=%s"%self.plc_spec['vservername']
+        if self.options.plcs_use_lxc:
+            print "export PLCHOSTLXC=%s"%fqdn
+        else:
+            print "export PLCHOSTVS=%s"%fqdn
+        print "export GUESTNAME=%s"%self.plc_spec['vservername']
+        vplcname=self.plc_spec['vservername'].split('-')[-1]
+        print "export GUESTHOSTNAME=%s.%s"%(vplcname,domain)
         # find hostname of first node
         (hostname,qemubox) = self.all_node_infos()[0]
         print "export KVMHOST=%s.%s"%(qemubox,domain)
@@ -497,6 +502,7 @@ class TestPlc:
         stamp_path=self.vm_timestamp_path()
         self.run_in_host("rm -f %s"%stamp_path)
         if self.options.plcs_use_lxc:
+            self.run_in_host("lxc-stop --name %s"%self.vservername)
             self.run_in_host("lxc-destroy --name %s"%self.vservername)
             return True
         else:
@@ -1119,9 +1125,12 @@ class TestPlc:
         return overall
 
     # painfully enough, we need to allow for some time as netflow might show up last
-    def check_netflow (self): 
-        "all nodes: check that the netflow slice is alive"
-        return self.check_systemslice ('netflow')
+    def check_sys_slice (self): 
+        "all nodes: check that a system slice is alive"
+# would probably make more sense to check for netflow, 
+# but that one is currently not working in the lxc distro        
+#        return self.check_systemslice ('netflow')
+        return self.check_systemslice ('drl')
     
     # we have the slices up already here, so it should not take too long
     def check_systemslice (self, slicename, timeout_minutes=5, period=15):
@@ -1129,7 +1138,7 @@ class TestPlc:
         test_nodes=self.all_nodes()
         while test_nodes:
             for test_node in test_nodes:
-                if test_node.check_systemslice (slicename):
+                if test_node.check_systemslice (slicename,dry_run=self.options.dry_run):
                     utils.header ("ok")
                     test_nodes.remove(test_node)
                 else:
@@ -1436,6 +1445,7 @@ class TestPlc:
         "gets all possible logs from plc's/qemu node's/slice's for future reference"
         # (1.a) get the plc's /var/log/ and store it locally in logs/myplc.var-log.<plcname>/*
         # (1.b) get the plc's  /var/lib/pgsql/data/pg_log/ -> logs/myplc.pgsql-log.<plcname>/*
+        # (1.c) get the plc's /root/sfi -> logs/sfi.<plcname>/
         # (2) get all the nodes qemu log and store it as logs/node.qemu.<node>.log
         # (3) get the nodes /var/log and store is as logs/node.var-log.<node>/*
         # (4) as far as possible get the slice's /var/log as logs/sliver.var-log.<sliver>/*
@@ -1445,6 +1455,9 @@ class TestPlc:
         # (1.b)
         print "-------------------- TestPlc.gather_logs : PLC's /var/lib/psql/data/pg_log/"
         self.gather_pgsql_logs ()
+        # (1.c)
+        print "-------------------- TestPlc.gather_logs : PLC's /root/sfi/"
+        self.gather_root_sfi ()
         # (2) 
         print "-------------------- TestPlc.gather_logs : nodes's QEMU logs"
         for site_spec in self.plc_spec['sites']:
@@ -1482,6 +1495,12 @@ class TestPlc:
         command = to_plc + "| tar -C logs/myplc.pgsql-log.%s -xf -"%self.name()
         utils.system(command)
 
+    def gather_root_sfi (self):
+        utils.system("mkdir -p logs/sfi.%s"%self.name())
+        to_plc = self.actual_command_in_guest("tar -C /root/sfi/ -cf - .")        
+        command = to_plc + "| tar -C logs/sfi.%s -xf -"%self.name()
+        utils.system(command)
+
     def gather_nodes_var_logs (self):
         for site_spec in self.plc_spec['sites']:
             test_site = TestSite (self,site_spec)