super-speed-up-slices
[tests.git] / system / TestPlc.py
index 16ae3eb..b983f46 100644 (file)
@@ -169,7 +169,7 @@ class TestPlc:
         'gather_logs_force', SEP,
         ]
     other_steps = [ 
-        'export', 'show_boxes', SEP,
+        '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,
         'delete_sites', 'delete_nodes', 'delete_slices', 'keys_clean', SEP,
@@ -1021,8 +1021,8 @@ class TestPlc:
                     return False
             def message (self):
                 return "CompleterTaskBootState with node %s"%self.hostname
-            def failure_message (self):
-                return "node %s in state %s - expected %s"%(self.hostname,self.last_boot_state,target_boot_state)
+            def failure_epilogue (self):
+                print "node %s in state %s - expected %s"%(self.hostname,self.last_boot_state,target_boot_state)
                 
         timeout = timedelta(minutes=timeout_minutes)
         graceout = timedelta(minutes=silent_minutes)
@@ -1049,8 +1049,8 @@ class TestPlc:
             def run(self,silent):
                 command="ping -c 1 -w 1 %s >& /dev/null"%self.hostname
                 return utils.system (command, silent=silent)==0
-            def failure_message (self):
-                return "Cannot ping node with name %s"%self.hostname
+            def failure_epilogue (self):
+                print "Cannot ping node with name %s"%self.hostname
         timeout=timedelta (seconds=timeout_seconds)
         graceout=timeout
         period=timedelta (seconds=period_seconds)
@@ -1134,8 +1134,8 @@ class TestPlc:
                 return self.test_sliver.check_initscript_stamp (self.stamp)
             def message (self):
                 return "initscript checker for %s"%self.test_sliver.name()
-            def failure_message (self):
-                return "initscript stamp %s not found in sliver %s"%(self.stamp,self.test_sliver.name())
+            def failure_epilogue (self):
+                print "initscript stamp %s not found in sliver %s"%(self.stamp,self.test_sliver.name())
             
         tasks=[]
         for slice_spec in self.plc_spec['slices']:
@@ -1213,9 +1213,9 @@ class TestPlc:
     def ssh_slice(self): pass
     @slice_mapper__tasks(20,19,15)
     def ssh_slice_off (self): pass
-    @slice_mapper__tasks(2,1,15)
+    @slice_mapper__tasks(1,1,15)
     def slice_fs_present(self): pass
-    @slice_mapper__tasks(2,1,15)
+    @slice_mapper__tasks(1,1,15)
     def slice_fs_deleted(self): pass
 
     # use another name so we can exclude/ignore it from the tests on the nightly command line
@@ -1235,20 +1235,28 @@ class TestPlc:
         return PlcapiUrlScanner (self.auth_root(),ip=self.vserverip).scan()
 
     def speed_up_slices (self):
-        "tweak nodemanager settings on all nodes using a conf file"
+        "tweak nodemanager cycle (wait time) to 30+/-10 s"
+        return self._speed_up_slices (30,10)
+    def super_speed_up_slices (self):
+        "dev mode: tweak nodemanager cycle (wait time) to 5+/-1 s"
+        return self._speed_up_slices (5,1)
+
+    def _speed_up_slices (self, p, r):
         # create the template on the server-side 
         template="%s.nodemanager"%self.name()
         template_file = open (template,"w")
-        template_file.write('OPTIONS="-p 30 -r 11 -d"\n')
+        template_file.write('OPTIONS="-p %s -r %s -d"\n'%(p,r))
         template_file.close()
         in_vm="/var/www/html/PlanetLabConf/nodemanager"
         remote="%s/%s"%(self.vm_root_in_host(),in_vm)
         self.test_ssh.copy_abs(template,remote)
         # Add a conf file
-        self.apiserver.AddConfFile (self.auth_root(),
-                                    {'dest':'/etc/sysconfig/nodemanager',
-                                     'source':'PlanetLabConf/nodemanager',
-                                     'postinstall_cmd':'service nm restart',})
+        if not self.apiserver.GetConfFiles (self.auth_root(),
+                                        {'dest':'/etc/sysconfig/nodemanager'}):
+            self.apiserver.AddConfFile (self.auth_root(),
+                                        {'dest':'/etc/sysconfig/nodemanager',
+                                         'source':'PlanetLabConf/nodemanager',
+                                         'postinstall_cmd':'service nm restart',})
         return True
 
     def debug_nodemanager (self):
@@ -1327,8 +1335,8 @@ class TestPlc:
                 return self.test_node._check_system_slice (slicename, dry_run=self.dry_run)
             def message (self): 
                 return "System slice %s @ %s"%(slicename, self.test_node.name())
-            def failure_message (self): 
-                return "COULD not find system slice %s @ %s"%(slicename, self.test_node.name())
+            def failure_epilogue (self): 
+                print "COULD not find system slice %s @ %s"%(slicename, self.test_node.name())
         timeout = timedelta(minutes=timeout_minutes)
         silent  = timedelta (0)
         period  = timedelta (seconds=period_seconds)