fixes
[tests.git] / system / TestPlc.py
index e7c9556..4e9a99b 100644 (file)
@@ -69,7 +69,7 @@ class TestPlc:
                      'init_node','bootcd', 'configure_qemu', 'export_qemu',
                      'kill_all_qemus', 'reinstall_node','start_node', SEP,
                      'nodes_booted', 'nodes_ssh', 'check_slice',
-                     'check_initscripts', 'check_tcp',SEP,
+                     'check_initscripts', 'check_tcp', 'plcsh_stress_test', SEP,
                      'force_gather_logs', 'force_kill_qemus', 'force_record_tracker','force_free_tracker' ]
     other_steps = [ 'stop_all_vservers','fresh_install', 'cache_rpm', 'stop', 'vs_start', SEP,
                     'clean_initscripts', 'clean_all_sites',
@@ -441,10 +441,9 @@ class TestPlc:
         for (nodegroupname,group_nodes) in groups_dict.iteritems():
             print 'nodegroups:','dealing with nodegroup',nodegroupname,'on nodes',group_nodes
             # first, check if the nodetagtype is here
-            tag_types = self.apiserver.GetNodeTagTypes(auth,{'tagname':nodegroupname})
+            tag_types = self.apiserver.GetTagTypes(auth,{'tagname':nodegroupname})
             if tag_types:
                 tag_type_id = tag_types[0]['node_tag_type_id']
-                print 'node-tag-type',nodegroupname,'already exists'
             else:
                 tag_type_id = self.apiserver.AddNodeTagType(auth,
                                                             {'tagname':nodegroupname,
@@ -453,13 +452,8 @@ class TestPlc:
                                                              'min_role_id':10})
             # create nodegroup
             nodegroups = self.apiserver.GetNodeGroups (auth, {'groupname':nodegroupname})
-            if nodegroups:
-                print 'nodegroup',nodegroupname,'already exists'
-            else:
-                self.apiserver.AddNodeGroup(auth,
-                                            {'groupname': nodegroupname,
-                                             'node_tag_type_id': tag_type_id,
-                                             'tagvalue': 'yes'})
+            if not nodegroups:
+                self.apiserver.AddNodeGroup(auth, nodegroupname, tag_type_id, 'yes')
             # set node tag on all nodes, value='yes'
             overall = True
             for nodename in group_nodes:
@@ -478,8 +472,9 @@ class TestPlc:
                         print 'Mismatch node tag on node',nodename,'got',expect_yes
                         overall=False
                 except:
-                    print 'Cannot find tag',nodegroupname,'on node',nodename
-                    overall = False
+                    if not self.options.dry_run:
+                        print 'Cannot find tag',nodegroupname,'on node',nodename
+                        overall = False
         return overall
 
     def all_hostnames (self) :
@@ -490,7 +485,7 @@ class TestPlc:
         return hostnames
 
     # gracetime : during the first <gracetime> minutes nothing gets printed
-    def do_nodes_booted (self, minutes, gracetime,period=30):
+    def do_nodes_booted (self, minutes, gracetime,period=15):
         if self.options.dry_run:
             print 'dry_run'
             return True
@@ -538,7 +533,7 @@ class TestPlc:
     def nodes_booted(self):
         return self.do_nodes_booted(minutes=20,gracetime=15)
 
-    def do_nodes_ssh(self,minutes,gracetime,period=30):
+    def do_nodes_ssh(self,minutes,gracetime,period=15):
         # compute timeout
         timeout = datetime.datetime.now()+datetime.timedelta(minutes=minutes)
         graceout = datetime.datetime.now()+datetime.timedelta(minutes=gracetime)
@@ -687,7 +682,17 @@ class TestPlc:
             if not c_test_sliver.run_tcp_client(s_test_sliver.test_node.name(),port):
                 overall=False
         return overall
-    
+
+    def plcsh_stress_test (self):
+        # install the stress-test in the plc image
+        location = "/usr/share/plc_api/plcsh-stress-test.py"
+        remote="/vservers/%s/%s"%(self.vservername,location)
+        self.test_ssh.copy_abs("plcsh-stress-test.py",remote)
+        command = location
+        command += " -- --check"
+        if self.options.small_test:
+            command +=  " --tiny"
+        return ( self.run_in_guest(command) == 0)
 
     def gather_logs (self):
         # (1) get the plc's /var/log and store it locally in logs/myplc.var-log.<plcname>/*