]> git.pld-linux.org Git - projects/pld-builder.new.git/blame - PLD_Builder/request_handler_server.py
move queue.html styles and script to standalone files
[projects/pld-builder.new.git] / PLD_Builder / request_handler_server.py
CommitLineData
51c62214
AM
1#!/usr/bin/python
2
c49ac31f 3import socket
51c62214
AM
4import string
5import cgi
6import time
387d9f05 7import log
2825d596 8import sys
97d377c9 9import traceback
6d31e66e 10import os
8e837ecd 11from config import config, init_conf
51c62214 12
51c62214
AM
13from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
14
15import request_handler
6d31e66e 16import path
51c62214
AM
17
18class MyHandler(BaseHTTPRequestHandler):
19
20 def do_GET(self):
21 self.send_error(401);
22
23 def do_POST(self):
24 global rootnode
25 try:
26 length = int(self.headers.getheader('content-length'))
27 ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
28 if ctype != 'application/x-www-form-urlencoded':
39950739 29 log.error("request_handler_server: [%s]: 401 Unauthorized" % self.client_address[0])
51c62214
AM
30 self.send_error(401)
31 self.end_headers()
32 return
33
34 query = self.rfile.read(length)
51c62214 35
c1ad9456
ER
36 filename = self.headers.getheader('x-filename')
37
f02c1e4d 38 if not request_handler.handle_request_main(query, filename = filename):
0a33e679 39 error = log.last_log();
39950739 40 log.error("request_handler_server: [%s]: handle_request_main(..., %s) failed" % (self.client_address[0], filename))
6f69a3b6 41 self.send_error(500, "%s: request failed. %s" % (filename, error))
51c62214
AM
42 self.end_headers()
43 return
44
45 self.send_response(200)
46 self.end_headers()
47
48 except Exception, e:
0a33e679 49 self.send_error(500, "%s: %s" % (filename, e))
51c62214 50 self.end_headers()
97d377c9 51 log.error("request_handler_server: [%s]: exception: %s\n%s" % (self.client_address[0], e, traceback.format_exc()))
51c62214
AM
52 raise
53 pass
54
6d31e66e 55def write_css():
ed53f981 56 css_src = os.path.join(os.path.dirname(__file__), 'style.css')
6d31e66e 57 css_file = path.www_dir + "/style.css"
0d52c382 58 # skip if file exists and code is not newer
ed53f981 59 if os.path.exists(css_file) and os.stat(css_src).st_mtime < os.stat(css_file).st_mtime:
6d31e66e
ER
60 return
61
6d31e66e 62 old_umask = os.umask(0022)
ed53f981 63 r = open(css_src, 'r')
6d31e66e 64 f = open(css_file, "w")
ed53f981 65 f.write(r.read())
6d31e66e 66 f.close()
ed53f981 67 r.close()
6d31e66e
ER
68 os.umask(old_umask)
69
04ce7f54 70def write_js():
ed53f981
ER
71 js_src = os.path.join(os.path.dirname(__file__), 'script.js')
72 js_file = path.www_dir + '/script.js'
04ce7f54 73 # skip if file exists and code is not newer
ed53f981 74 if os.path.exists(js_file) and os.stat(js_src).st_mtime < os.stat(js_file).st_mtime:
04ce7f54
ER
75 return
76
04ce7f54 77 old_umask = os.umask(0022)
ed53f981
ER
78 r = open(js_src, 'r')
79 f = open(js_file, 'w')
80 f.write(r.read())
04ce7f54 81 f.close()
ed53f981 82 r.close()
04ce7f54
ER
83 os.umask(old_umask)
84
51c62214 85def main():
6d31e66e 86 write_css();
04ce7f54 87 write_js();
c49ac31f 88 socket.setdefaulttimeout(30)
51c62214 89 try:
8e837ecd
ER
90 init_conf()
91 host = ""
92 port = config.request_handler_server_port
93
2825d596
ER
94 try:
95 server = HTTPServer((host, port), MyHandler)
96 except Exception, e:
97 log.notice("request_handler_server: can't start server on [%s:%d]: %s" % (host, port, e))
98 print >> sys.stderr, "ERROR: Can't start server on [%s:%d]: %s" % (host, port, e)
99 sys.exit(1)
100
3f40dee2 101 log.notice('request_handler_server: started on [%s:%d]...' % (host, port))
51c62214
AM
102 server.serve_forever()
103 except KeyboardInterrupt:
3f40dee2 104 log.notice('request_handler_server: ^C received, shutting down server')
51c62214
AM
105 server.socket.close()
106
107if __name__ == '__main__':
108 main()
109
This page took 0.805454 seconds and 4 git commands to generate.