Python wrapper for running instances of trisurf-ng
Samo Penic
2019-07-15 7f64589f9f172b7965a086bcceed8c47a51daca7
trisurf/tsmgr.py
@@ -16,7 +16,6 @@
   from urlparse import urlparse
   from vtk import *
   
from . import VTKRendering
#import io
from IPython import embed
@@ -57,6 +56,7 @@
   parser.add_argument('-R','--raw',help='print status and the rest of the information in raw format', action="store_true")
   parser.add_argument('-x','--local-only',help='do not attempt to contact remote hosts. Run all operations only on local machine',action='store_true')
   parser.add_argument('--originating-host',nargs=1,help='specify which host started the remote connections. Useful mainly fo internal functionaly of tsmgr and analyses.')
   parser.add_argument('--analysis-options', nargs='+', help='options passed down to analyses')
   args = parser.parse_args(arguments)
   return args
@@ -203,9 +203,9 @@
   exit(0)
def analyze(args,host,a_dict, analysis,hosts):
   if len(a_dict)==0:
      print ('Error: no analyses are specified in the tsmgr.start()!')
def analyze(args,host,analysis,hosts):
   if len(trisurf._analysis_list)==0:
      print ('Error: no decorated function with @analysis decorator!')
      exit(1)
   target_runs=getTargetRunIdxList(args)
   if target_runs==None:
@@ -213,11 +213,11 @@
   for i in target_runs:
      for anal in analysis:
         if(anal not in a_dict):
            print("Analysis '"+anal+"' is not known. Available analyses: "+", ".join(a_dict.keys())+".")
         if(anal not in trisurf._analysis_list):
            print("Analysis '"+anal+"' is not known. Available analyses: "+", ".join(trisurf._analysis_list.keys())+".")
            exit(0)
      for anal in analysis:
         retval=a_dict[anal](host['runs'][i-1],host=host, args=args, hosts=hosts)
         retval=trisurf._analysis_list[anal](host['runs'][i-1],host=host, args=args, hosts=hosts)
         #try:
         if(retval):
            exit(0)
@@ -248,7 +248,7 @@
      embed()
      exit(0)
   elif args['analysis']!= None:
      analyze(args,host,kwargs.get('analyses', {}), args['analysis'],kwargs.get('hosts',None))
      analyze(args,host, args['analysis'],kwargs.get('hosts',None))
      exit(0)
   else: #version requested
      print(getTrisurfVersion())
@@ -257,12 +257,16 @@
def preview_vtu(args,host):
   #only for localhost at the moment
   #if sys.version_info>=(3,0):
   #   print("Preview works only with python 2.7")
   #   exit(1)
   from . import VTKRendering
   target_runs=getTargetRunIdxList(args)
   if target_runs==None:
      target_runs=list(range(1,len(host['runs'])+1))
   if host['name'] == socket.gethostname():
      VTKRendering.Renderer(args,host)
      for i in target_runs:
         VTKRendering.Renderer(args,host,host['runs'][i-1])
   else:
      print("VTK rendering currently works on localhost only!")
def getListOfHostConfigurationByHostname(hosts,host):
   rhost=[]
@@ -273,7 +277,7 @@
def start(hosts,argv=sys.argv[1:], analyses={}):
def start(hosts,argv=sys.argv[1:]):
   args=vars(ParseCLIArguments(argv))
   #Backward compatibility... If running just on localmode, the host specification is unnecessary. Check if only Runs are specified
   try:
@@ -301,7 +305,7 @@
            print("Host <font color='orange'>"+host['name']+"</font> reports:")
         else:
            print("Host "+bcolors.WARNING+host['name']+bcolors.ENDC+" reports:")
         perform_action(args,host, analyses=analyses, hosts=hosts)
         perform_action(args,host, hosts=hosts)
      elif not args['local_only']:
         if('remotebasepath' in host):
            remote_dir=host['remotebasepath']