nodenetwork sequels
[tests.git] / system / utils.py
index 7aa670f..d17dbef 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,10 +106,9 @@ 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())
     if background: command += " &"
     if options.dry_run:
         print 'dry_run:',command
@@ -117,6 +116,17 @@ def system(command,background=False):
     else:
         return os.system("set -x; " + command)
 
+### WARNING : this ALWAYS does its job, even in dry_run mode
+def output_of (command):
+    import commands
+#    if options.dry_run:
+#        print 'dry_run',command
+#        return (0,'[[dry-run - fake output]]')
+#    else:
+    (code,string) = commands.getstatusoutput(command)
+    return (code,string)
+
+# convenience: translating shell-like pattern into regexp
 def match (string, pattern):
     # tmp - there's probably much simpler
     # rewrite * into .*, ? into .