From 7f64589f9f172b7965a086bcceed8c47a51daca7 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Mon, 15 Jul 2019 09:14:08 +0000
Subject: [PATCH] Add missing file

---
 trisurf/tsmgr.py |   41 +++++++++++++++++------------------------
 1 files changed, 17 insertions(+), 24 deletions(-)

diff --git a/trisurf/tsmgr.py b/trisurf/tsmgr.py
index 0beaf73..3cbffc5 100644
--- a/trisurf/tsmgr.py
+++ b/trisurf/tsmgr.py
@@ -18,7 +18,7 @@
 	
 #import io
 
-#from IPython import embed
+from IPython import embed
 
 import __main__ as main
 
@@ -56,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
 
@@ -94,12 +95,8 @@
 				port=host['port']
 			except:
 				port=22 #default ssh port
-			try:
-				rm=Remote.Connection(hostname=host['address'],username=username, port=port)
-				rm.connect()
-			except:
-				host['_conn']=None
-				continue
+			rm=Remote.Connection(hostname=host['address'],username=username, port=port)
+			rm.connect()
 #			print ("Sendind file:"+main.__file__)
 			if('remotebasepath' in host):
 				remote_dir=host['remotebasepath']
@@ -135,7 +132,6 @@
 
 
 def status_processes(args,host):
-	print("in status processes")
 	target_runs=getTargetRunIdxList(args)
 	if target_runs==None:
 		target_runs=list(range(1,len(host['runs'])+1))
@@ -207,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:
@@ -217,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)
@@ -252,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())
@@ -281,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:
@@ -309,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']
@@ -319,19 +315,16 @@
 			#print(remote_dir)
 			#print(main.__file__)
 			#print('python3 '+main.__file__+' -x '+" ".join(argv))
-			if(host['_conn']!=None):
-#				print("was here, "+'cd '+remote_dir+ '; python3 '+main.__file__+' -x --originating-host ' +socket.gethostname()+" "+" ".join(argv))
-				output=host['_conn'].execute('cd '+remote_dir+ '; python3 '+main.__file__+' -x --originating-host ' +socket.gethostname()+" "+" ".join(argv))
-				for line in output:
-					print(line.replace('\n',''))
+			output=host['_conn'].execute('cd '+remote_dir+ '; python3 '+main.__file__+' -x --originating-host ' +socket.gethostname()+" "+" ".join(argv))
+			for line in output:
+				print(line.replace('\n',''))
 
 
 	if not args['local_only']:
 		print("Closing connections to remote hosts")
 		for host in hosts:
 			if(host['name'] !=socket.gethostname()):
-				if(host['_conn']):
-					host['_conn'].disconnect()
+				host['_conn'].disconnect()
 
 
 

--
Gitblit v1.9.3