Package Ganga :: Package Lib :: Package MonitoringServices :: Package OutputServerMS :: Module ganga_output_server
[hide private]
[frames] | no frames]

Source Code for Module Ganga.Lib.MonitoringServices.OutputServerMS.ganga_output_server

 1  #!/usr/bin/env python 
 2   
 3  # Create server 
 4  DEFAULT_HOST = '127.0.0.1' 
 5  DEFAULT_PORT = 8182 
 6   
7 -def hostname():
8 import socket 9 try: 10 return socket.gethostbyaddr(socket.gethostname())[0] 11 # [bugfix #20333]: 12 # while working offline and with an improper /etc/hosts configuration 13 # the localhost cannot be resolved 14 except: 15 return 'localhost'
16
17 -def main():
18 import sys,os 19 20 port = DEFAULT_PORT 21 host = hostname() 22 outputdir = os.path.expanduser('~/gangadir/outputserver') 23 24 def makedirs(path): 25 try: 26 os.makedirs(path) 27 except OSError,x: 28 import errno 29 if x.errno != errno.EEXIST: 30 raise
31 32 makedirs(outputdir) 33 34 if len(sys.argv)>1: 35 port = int(sys.argv[1]) 36 37 from SimpleXMLRPCServer import SimpleXMLRPCServer 38 39 server = SimpleXMLRPCServer((host,port)) 40 41 #server.register_introspection_functions() 42 43 def send_output(id,name,x): 44 jobdir = os.path.join(outputdir,id.replace('.',os.sep)) 45 makedirs(jobdir) 46 fn = os.path.join(jobdir,name) 47 print 'job %s received %s saved in %s'%(id,name,fn) 48 f = file(fn,'w') 49 f.write(x) 50 f.close() 51 return 1 52 53 server.register_function(send_output, 'send_output') 54 55 print 'Starting output server:',host,port,outputdir 56 57 # Run the server's main loop 58 server.serve_forever() 59 60 if __name__ == '__main__': 61 main() 62