do not create, delete, or check initscripts
[tests.git] / system / TestPlc.py
index 01b6ee4..9e39768 100644 (file)
@@ -140,7 +140,8 @@ class TestPlc:
         'plc_install', 'plc_configure', 'plc_start', SEP,
         'keys_fetch', 'keys_store', 'keys_clear_known_hosts', SEP,
         'plcapi_urls','speed_up_slices', SEP,
-        'initscripts', 'sites', 'nodes', 'slices', 'nodegroups', 'leases', SEP,
+        # noinitscript branch: 'initscripts',
+        'sites', 'nodes', 'slices', 'nodegroups', 'leases', SEP,
 # slices created under plcsh interactively seem to be fine but these ones don't have the tags
 # keep this our of the way for now
         'check_vsys_defaults_ignore', SEP,
@@ -160,9 +161,15 @@ class TestPlc:
         # 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_node_boot', 'node_bmlogs', 'ssh_slice', 'ssh_slice_basics',
+        # noinitscript branch: 'check_initscripts_ignore',
+        SEP,
+        '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
@@ -172,7 +179,8 @@ class TestPlc:
     other_steps = [ 
         'export', 'show_boxes', 'super_speed_up_slices', SEP,
         'check_hooks', 'plc_stop', 'plcvm_start', 'plcvm_stop', SEP,
-        'delete_initscripts', 'delete_nodegroups','delete_all_sites', SEP,
+        # noinitscript branch: 'delete_initscripts',
+        'delete_nodegroups','delete_all_sites', SEP,
         'delete_sites', 'delete_nodes', 'delete_slices', 'keys_clean', SEP,
         'delete_leases', 'list_leases', SEP,
         'populate', SEP,
@@ -275,11 +283,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...
@@ -1044,11 +1055,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):
@@ -1065,7 +1076,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)
@@ -1540,7 +1551,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"
@@ -1578,6 +1589,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
@@ -1599,10 +1621,16 @@ class TestPlc:
     @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
@@ -1814,3 +1842,4 @@ class TestPlc:
     # convenience for debugging the test logic
     def yes (self): return True
     def no (self): return False
+    def fail (self): return False