fix check_tcp - display iptables before running qemu - get test specs in build summary
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 8 Apr 2008 14:46:23 +0000 (14:46 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 8 Apr 2008 14:46:23 +0000 (14:46 +0000)
system/TestMapper.py
system/TestSliver.py
system/template-qemu/iptables.py
system/template-qemu/qemu-bridge-init
system/utils.py

index f7933ba..d60cf05 100644 (file)
@@ -47,7 +47,7 @@ class TestMapper:
                     # apply formatting if '%s' found in the value
                     if v.find('%s')>=0:
                         v=v%obj[k]
-                    utils.header("TestMapper, rewriting %s: %s into %s"%(name,k,v))
+                    print("TestMapper, rewriting %s: %s into %s"%(name,k,v))
                     o[step]=v
                 # only apply first rule
                 return
index f4d4be6..9dcda2b 100644 (file)
@@ -38,12 +38,14 @@ class TestSliver:
         return self.test_ssh.run("ls -l /tmp/%s.stamp"%initscript)==0
     
     def run_tcp_server (self,port,timeout=10):
-        server_command = "tcptest.py server -p %d -t %d"%(port,timeout)
-        return self.test_ssh.copy("tcptest.py")==0 and self.test_ssh.run(server_command)==0
+        server_command = "./tcptest.py server -p %d -t %d"%(port,timeout)
+        return self.test_ssh.copy("tcptest.py")==0 and \
+            self.test_ssh.run(server_command,background=True)==0
 
     def run_tcp_client (self,servername,port):
-        client_command="tcptest.py client -a %s -p %d"%(servername,port)
-        return self.test_ssh.copy("tcptest.py")==0 and self.test_ssh.run(client_command)==0
+        client_command="./tcptest.py client -a %s -p %d"%(servername,port)
+        return self.test_ssh.copy("tcptest.py")==0 and \
+            self.test_ssh.run(client_command,background=True)==0
 
     def tar_var_logs (self):
         return self.test_ssh.actual_command("sudo tar -C /var/log -cf - .")
index bd0b087..5fbde9a 100755 (executable)
@@ -10,14 +10,15 @@ def main ():
     
     found=False
     lo_matcher=re.compile("\A(?P<left>.+)\s+-i\s+lo\s+-j\s+ACCEPT")
-    ip_matcher=re.compile("--(source|destination) %s"%ip)
+    # what comes out of iptables-save has short-options syntax
+    ip_matcher=re.compile("-(s|d) %s"%ip)
     for line in fin.readlines():
         attempt=lo_matcher.match(line)
         if attempt:
             fou.write(line)
             # open-up for this IP
-            fou.write("%s --source %s -j ACCEPT\n"%(attempt.group('left'),ip))
-            fou.write("%s --destination %s -j ACCEPT\n"%(attempt.group('left'),ip))
+            fou.write("%s -s %s -j ACCEPT\n"%(attempt.group('left'),ip))
+            fou.write("%s -d %s -j ACCEPT\n"%(attempt.group('left'),ip))
             found=True
         else:
             attempt = ip_matcher.match(line)
index d8844ff..170946a 100755 (executable)
@@ -107,6 +107,9 @@ add () {
     # rewrite a new config - quick and dirty
     ./iptables.py iptables.pre iptables.post $IP
     iptables-restore < iptables.post
+
+    echo "Installed iptables"
+    iptables-save
     
 }
 
index 7aa670f..b4001b2 100644 (file)
@@ -32,59 +32,59 @@ def show_options (message,options):
         print "    ",k,":",getattr(options,k)
 
 def show_site_spec (site):
-    print '======== site',site['site_fields']['name']
+    print '======== site',site['site_fields']['name']
     for (k,v) in site.iteritems():
         if k=='nodes':
             if v: 
-                print '\t\t','nodes : ',
+                print '\t\t','nodes : ',
                 for node in v:  
                     print node['node_fields']['hostname'],'',
                 print ''
         elif k=='users':
             if v: 
-                print '\t\tusers : ',
+                print '\t\tusers : ',
                 for user in v:  
                     print user['name'],'',
                 print ''
         elif k == 'site_fields':
-            print '\t\tlogin_base',':',v['login_base']
+            print '\t\tlogin_base',':',v['login_base']
         elif k == 'address_fields':
             pass
         else:
-            print '\t\t',k,
+            print '\t\t',k,
             PrettyPrinter(indent=8,depth=2).pprint(v)
         
 def show_initscript_spec (initscript):
-    print '======== initscript',initscript['initscript_fields']['name']
+    print '======== initscript',initscript['initscript_fields']['name']
 
 def show_key_spec (key):
-    print '======== key',key['name']
+    print '======== key',key['name']
 
 def show_slice_spec (slice):
-    print '======== slice',slice['slice_fields']['name']
+    print '======== slice',slice['slice_fields']['name']
     for (k,v) in slice.iteritems():
         if k=='nodenames':
             if v: 
-                print '\t\tnodes : ',
+                print '\t\tnodes : ',
                 for nodename in v:  
                     print nodename,'',
                 print ''
         elif k=='usernames':
             if v: 
-                print '\t\tusers : ',
+                print '\t\tusers : ',
                 for username in v:  
                     print username,'',
                 print ''
         elif k=='slice_fields':
-            print '\t\tfields',':',
+            print '\t\tfields',':',
             print 'max_nodes=',v['max_nodes'],
             print ''
         else:
-            print '\t\t',k,v
+            print '\t\t',k,v
 
 def show_test_spec (message,all_plc_specs):
     now=time.strftime("%H:%M:%S", time.localtime())
-    print ">",now,"--",message
+    print "*",now,"--",message
     for plc_spec in all_plc_specs:
         show_test_spec_pass (plc_spec,1)
         show_test_spec_pass (plc_spec,2)
@@ -106,7 +106,7 @@ def show_test_spec_pass (plc_spec,passno):
                     show_key_spec (key)
         elif passno == 1:
             if key not in ['sites','initscripts','slices','keys']:
-                print '\t',key,':',val
+                print '\t',key,':',val
 
 def system(command,background=False):
     now=time.strftime("%H:%M:%S", time.localtime())