-def show_key_spec (key):
- print '* ======== key',key['name']
-
-def show_slice_spec (slice):
- print '* ======== slice',slice['slice_fields']['name']
- for (k,v) in slice.iteritems():
- if k=='nodenames':
- if v:
- print '* \t\tnodes : ',
- for nodename in v:
- print nodename,'',
- print ''
- elif k=='usernames':
- if v:
- print '* \t\tusers : ',
- for username in v:
- print username,'',
- print ''
- elif k=='slice_fields':
- print '* \t\tfields',':',
- print 'max_nodes=',v['max_nodes'],
- print ''
- else:
- print '* \t\t',k,v
-
-def show_test_spec (message,all_plc_specs):
- now=time.strftime("%H:%M:%S", time.localtime())
- print "*",now,"--",message
- for plc_spec in all_plc_specs:
- show_test_spec_pass (plc_spec,1)
- show_test_spec_pass (plc_spec,2)
-
-def show_test_spec_pass (plc_spec,passno):
- for (key,val) in plc_spec.iteritems():
- if passno == 2:
- if key == 'sites':
- for site in val:
- show_site_spec(site)
- elif key=='initscripts':
- for initscript in val:
- show_initscript_spec (initscript)
- elif key=='slices':
- for slice in val:
- show_slice_spec (slice)
- elif key=='keys':
- for key in val:
- show_key_spec (key)
- elif passno == 1:
- if key not in ['sites','initscripts','slices','keys']:
- print '* \t',key,':',val
-
-def system(command,background=False):
- if background: command += " &"
- if options.dry_run:
- print 'dry_run:',command
+# set a default timeout to 15 minutes - this should be plenty even for installations
+# call with timeout=None if the intention really is to wait until full completion
+def system(command, background=False, silent=False, dry_run=None, timeout=15*60):
+ dry_run = dry_run if dry_run is not None else getattr(options, 'dry_run', False)
+ if dry_run:
+ print('dry_run:', command)