not sure if it's the 21 nodes that have a larger payload, or if it's because we have...
[tests.git] / system / TestPlc.py
index 88b7feb..1d1d7c3 100644 (file)
@@ -153,15 +153,20 @@ class TestPlc:
         'sfa_register_user@1', 'sfa_update_user@1', 'sfa_register_slice@1', 'sfa_renew_slice@1', SEPSFA,
         'sfa_remove_user_from_slice@1','sfi_show_slice_researchers@1', 
         'sfa_insert_user_in_slice@1','sfi_show_slice_researchers@1', SEPSFA,
-        'sfa_discover@1', 'sfa_create_slice@1', 'sfa_check_slice_plc@1', 'sfa_update_slice@1', SEPSFA,
+        'sfa_discover@1', 'sfa_rspec@1', 'sfa_allocate@1', 'sfa_provision@1', SEPSFA,
+        'sfa_check_slice_plc@1', 'sfa_update_slice@1', SEPSFA,
         'sfi_list@1', 'sfi_show_site@1', 'sfa_utest@1', SEPSFA,
         # we used to run plcsh_stress_test, and then ssh_node_debug and ssh_node_boot
         # but as the stress test might take a while, we sometimes missed the debug mode..
         'probe_kvm_iptables',
         'ping_node', 'ssh_node_debug', 'plcsh_stress_test@1', SEP,
         'ssh_node_boot', 'node_bmlogs', 'ssh_slice', 'ssh_slice_basics', 'check_initscripts_ignore', SEP,
-        'ssh_slice_sfa@1', 'sfa_delete_slice@1', 'sfa_delete_user@1', SEPSFA,
+        'ssh_slice_sfa@1', SEPSFA, 
+        'sfa_rspec_empty@1', 'sfa_allocate_empty@1', 'sfa_provision_empty@1','sfa_check_slice_plc_empty@1', SEPSFA,
+        'sfa_delete_slice@1', 'sfa_delete_user@1', SEPSFA,
         'cross_check_tcp@1', 'check_system_slice', SEP,
+        # for inspecting the slice while it runs the first time
+        #'fail',
         # check slices are turned off properly
         'empty_slices', 'ssh_slice_off', 'slice_fs_deleted_ignore', SEP,
         # check they are properly re-created with the same name
@@ -274,11 +279,14 @@ class TestPlc:
     # see e.g. plc_start esp. the version for f14
     #command gets run in the plc's vm
     def host_to_guest(self,command):
+        vservername=self.vservername
+        personality=self.options.personality
+        raw="%(personality)s virsh -c lxc:/// lxc-enter-namespace %(vservername)s"%locals()
         # f14 still needs some extra help
         if self.options.fcdistro == 'f14':
-            raw="virsh -c lxc:/// lxc-enter-namespace %s -- /usr/bin/env PATH=/bin:/sbin:/usr/bin:/usr/sbin %s" %(self.vservername,command)
+            raw +=" -- /usr/bin/env PATH=/bin:/sbin:/usr/bin:/usr/sbin %(command)s" %locals()
         else:
-            raw="virsh -c lxc:/// lxc-enter-namespace %s -- /usr/bin/env %s" %(self.vservername,command)
+            raw +=" -- /usr/bin/env %(command)s"%locals()
         return raw
     
     # this /vservers thing is legacy...
@@ -1043,11 +1051,11 @@ class TestPlc:
         return True
 
     # probing nodes
-    def check_nodes_ping(self,timeout_seconds=120,period_seconds=10):
-        class CompleterTaskPingNode (CompleterTask):
+    def check_nodes_ping(self, timeout_seconds=240, period_seconds=10):
+        class CompleterTaskPingNode(CompleterTask):
             def __init__ (self, hostname):
                 self.hostname=hostname
-            def run(self,silent):
+            def run(self, silent):
                 command="ping -c 1 -w 1 %s >& /dev/null"%self.hostname
                 return utils.system (command, silent=silent)==0
             def failure_epilogue (self):
@@ -1064,7 +1072,7 @@ class TestPlc:
         "Ping nodes"
         return self.check_nodes_ping ()
 
-    def check_nodes_ssh(self,debug,timeout_minutes,silent_minutes,period_seconds=15):
+    def check_nodes_ssh(self, debug, timeout_minutes, silent_minutes, period_seconds=15):
         # various delays 
         timeout  = timedelta(minutes=timeout_minutes)
         graceout = timedelta(minutes=silent_minutes)
@@ -1539,7 +1547,7 @@ class TestPlc:
                                      " ".join([ plc.registry_xml_line() for plc in other_plcs ]))
         utils.header ("(Over)wrote %s"%reg_fname)
         return self.test_ssh.copy_abs(agg_fname,'/%s/etc/sfa/aggregates.xml'%self.vm_root_in_host())==0 \
-            and  self.test_ssh.copy_abs(reg_fname,'/%s/etc/sfa/registries.xml'%self.vm_root_in_host())==0
+           and self.test_ssh.copy_abs(reg_fname,'/%s/etc/sfa/registries.xml'%self.vm_root_in_host())==0
 
     def sfa_import(self):
         "use sfaadmin to import from plc"
@@ -1577,6 +1585,17 @@ class TestPlc:
         self.run_in_guest("rm -rf /root/sfi")
         return True
 
+    def sfa_rspec_empty(self):
+        "expose a static empty rspec (ships with the tests module) in the sfi directory"
+        filename="empty-rspec.xml"
+        overall=True
+        for slice_spec in self.plc_spec['sfa']['auth_sfa_specs']:
+            test_slice=TestAuthSfa(self,slice_spec)
+            in_vm = test_slice.sfi_path()
+            remote="%s/%s"%(self.vm_root_in_host(),in_vm)
+            if self.test_ssh.copy_abs (filename, remote) !=0: overall=False
+        return overall
+
     @auth_sfa_mapper
     def sfa_register_site (self): pass
     @auth_sfa_mapper
@@ -1594,10 +1613,20 @@ class TestPlc:
     @auth_sfa_mapper
     def sfa_discover(self): pass
     @auth_sfa_mapper
-    def sfa_create_slice(self): pass
+    def sfa_rspec(self): pass
+    @auth_sfa_mapper
+    def sfa_allocate(self): pass
+    @auth_sfa_mapper
+    def sfa_allocate_empty(self): pass
+    @auth_sfa_mapper
+    def sfa_provision(self): pass
+    @auth_sfa_mapper
+    def sfa_provision_empty(self): pass
     @auth_sfa_mapper
     def sfa_check_slice_plc(self): pass
     @auth_sfa_mapper
+    def sfa_check_slice_plc_empty(self): pass
+    @auth_sfa_mapper
     def sfa_update_slice(self): pass
     @auth_sfa_mapper
     def sfa_remove_user_from_slice(self): pass
@@ -1809,3 +1838,4 @@ class TestPlc:
     # convenience for debugging the test logic
     def yes (self): return True
     def no (self): return False
+    def fail (self): return False