1
2
3
4 DEFAULT_HOST = '127.0.0.1'
5 DEFAULT_PORT = 8182
6
8 import socket
9 try:
10 return socket.gethostbyaddr(socket.gethostname())[0]
11
12
13
14 except:
15 return 'localhost'
16
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
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
58 server.serve_forever()
59
60 if __name__ == '__main__':
61 main()
62