From d6583ebf40c9e99bfbec3652f8ef8639160f5fb6 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@fe.uni-lj.si> Date: Thu, 07 Jul 2016 14:40:36 +0000 Subject: [PATCH] Another fix. still not working if we have inititer. --- python/trisurf/tsmgr.py | 69 +++++++++++++++++++++++++++++++--- 1 files changed, 62 insertions(+), 7 deletions(-) diff --git a/python/trisurf/tsmgr.py b/python/trisurf/tsmgr.py index caff785..ac5c8f2 100644 --- a/python/trisurf/tsmgr.py +++ b/python/trisurf/tsmgr.py @@ -1,17 +1,20 @@ import argparse import paramiko from . import Remote -from trisurf import trisurf +from . import trisurf import socket -import sys +import os,sys import tabulate import subprocess,re import psutil #import http.server #import socketserver -from urllib.parse import urlparse - -from . import WebTrisurf +if sys.version_info>=(3,0): + from urllib.parse import urlparse + from . import WebTrisurf +else: + from urlparse import urlparse + from vtk import * #import io @@ -40,6 +43,7 @@ action_group.add_argument('-s','--status',help='print status of the processes',action='store_true') action_group.add_argument('-v','--version', help='print version information and exit', action='store_true') action_group.add_argument('--web-server', type=int,metavar="PORT", nargs=1, help='EXPERIMENTAL: starts web server and never exist.') + action_group.add_argument('-p','--preview',help='preview last VTU shape',action='store_true') parser.add_argument('--force', help='if dangerous operation (killing all the processes) is requested, this flag is required to execute the operation. Otherwise, the request will be ignored.', action="store_true") parser.add_argument('-H', '--host', nargs=1, help='specifies which host is itended for the operation. Defauts to localhost for all operations except --status and --version, where all configured hosts are assumed.') parser.add_argument('--html', help='Generate HTML output', action="store_true") @@ -169,7 +173,10 @@ def start_web_server(args,host): print('Server listening on port {}'.format(args['web_server'][0])) - WebTrisurf.WebServer(port=args['web_server'][0]) + if sys.version_info>=(3,0): + WebTrisurf.WebServer(port=args['web_server'][0]) + else: + print("Cannot start WebServer in python 2.7") exit(0) def perform_action(args,host): @@ -186,12 +193,60 @@ delete_comments(args,host) elif args['web_server']!=None: start_web_server(args,host) + elif args['preview']: + preview_vtu(args,host) else: #version requested print(getTrisurfVersion()) return - + +def preview_vtu(args,host): + #only for localhost at the moment + Dir=trisurf.Directory(maindir=host['runs'][0].maindir,simdir=host['runs'][0].subdir) + filename=os.path.join("./",Dir.fullpath(),host['runs'][0].getLastVTU()) + print(filename) + if sys.version_info>=(3,0): + print("Preview works only with python 2.7") + exit(1) + if host['name'] == socket.gethostname(): + target_runs=getTargetRunIdxList(args) + #if target_runs==None: + # target_runs=list(range(1,len(host['runs'])+1)) + #for i in target_runs: + # host['runs'][i-1].start() + reader=vtkXMLUnstructuredGridReader() + reader.SetFileName(filename) + reader.Update() # Needed because of GetScalarRange + output = reader.GetOutput() + scalar_range = output.GetScalarRange() + + # Create the mapper that corresponds the objects of the vtk file + # into graphics elements + mapper = vtkDataSetMapper() + mapper.SetInput(output) + mapper.SetScalarRange(scalar_range) + + # Create the Actor + actor = vtkActor() + actor.SetMapper(mapper) + + # Create the Renderer + renderer = vtkRenderer() + renderer.AddActor(actor) + renderer.SetBackground(0, 0, 0) # Set background to white + + # Create the RendererWindow + renderer_window = vtkRenderWindow() + renderer_window.AddRenderer(renderer) + + # Create the RendererWindowInteractor and display the vtk_file + interactor = vtkRenderWindowInteractor() + interactor.SetRenderWindow(renderer_window) + interactor.Initialize() + interactor.Start() + + def getListOfHostConfigurationByHostname(hosts,host): rhost=[] -- Gitblit v1.9.3