import subprocess import sys, os if sys.version_info>=(3,0): from urllib.parse import urlparse else: from urlparse import urlparse import http.server import socketserver #Web server class TsWEB(http.server.BaseHTTPRequestHandler): def do_GET(self): parsed_path=urlparse(self.path) message_parts = [ 'CLIENT VALUES:', 'client_address=%s (%s)' % (self.client_address, self.address_string()), 'command=%s' % self.command, 'path=%s' % self.path, 'real path=%s' % parsed_path.path, 'query=%s' % parsed_path.query, 'request_version=%s' % self.request_version, '', 'SERVER VALUES:', 'server_version=%s' % self.server_version, 'sys_version=%s' % self.sys_version, 'protocol_version=%s' % self.protocol_version, '', 'HEADERS RECEIVED:', ] for name, value in sorted(self.headers.items()): message_parts.append('%s=%s' % (name, value.rstrip())) message_parts.append('') message = '
'.join(message_parts) self.send_response(200) self.end_headers() self.wfile.write(b"

Trisurf-ng manager web interface


") oldstdout=sys.stdout if(parsed_path.path=='/analysis'): process=subprocess.Popen (['/usr/bin/python3', sys.argv[0], '--analysis', parsed_path.query, '--html'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) else: process=subprocess.Popen (['/usr/bin/python3', sys.argv[0], '-s', '--html'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr= process.communicate() output=stdout.decode('ascii') output=output+message output=output.replace('\n','
') output=bytearray(output,'ascii') self.wfile.write(output) class WebServer(): def __init__(self, port=8000): http_server = socketserver.TCPServer(('', port), TsWEB) try: http_server.serve_forever() except KeyboardInterrupt: print('^C received, shutting down the web server') http_server.socket.close()