1 | import errors |
---|
2 | from errors import * |
---|
3 | __all__ = ['errors'] |
---|
4 | __all__.extend(errors.__all__) |
---|
5 | |
---|
6 | from job import GutenbachJob |
---|
7 | __all__.append('GutenbachJob') |
---|
8 | |
---|
9 | from printer import GutenbachPrinter |
---|
10 | __all__.append('GutenbachPrinter') |
---|
11 | |
---|
12 | from requests import make_empty_response, GutenbachRequestHandler |
---|
13 | __all__.append('make_empty_response') |
---|
14 | __all__.append('GutenbachRequestHandler') |
---|
15 | |
---|
16 | from server import IPPServer |
---|
17 | __all__.append('IPPServer') |
---|
18 | |
---|
19 | import BaseHTTPServer |
---|
20 | import logging |
---|
21 | import sys |
---|
22 | import traceback |
---|
23 | |
---|
24 | # configure and initialize logging |
---|
25 | logging.basicConfig(level=logging.DEBUG) |
---|
26 | logger = logging.getLogger(__name__) |
---|
27 | |
---|
28 | def error(self, request=None, client_address=None): |
---|
29 | logger.fatal(traceback.format_exc()) |
---|
30 | self.gutenbach_printer.running = False |
---|
31 | sys.exit(1) |
---|
32 | |
---|
33 | def start(): |
---|
34 | logger.info("Starting Gutenbach server...") |
---|
35 | gutenbach = GutenbachPrinter("test") |
---|
36 | gutenbach.start() |
---|
37 | |
---|
38 | logger.info("Starting IPP server...") |
---|
39 | server_address = ('', 8000) |
---|
40 | httpd = BaseHTTPServer.HTTPServer(server_address, IPPServer) |
---|
41 | httpd.handle_error = error.__get__(httpd) |
---|
42 | httpd.gutenbach_printer = gutenbach |
---|
43 | while gutenbach.isAlive(): |
---|
44 | try: |
---|
45 | httpd.handle_request() |
---|
46 | except: |
---|
47 | error(httpd) |
---|
48 | |
---|
49 | __all__.append('start') |
---|