source: server/lib/gutenbach/server/__init__.py @ 33ea505

no-cups
Last change on this file since 33ea505 was 33ea505, checked in by Jessica B. Hamrick <jhamrick@…>, 12 years ago

Keep IPP code in GutenbachPrinter?, not in GutenbachJob?

  • Property mode set to 100644
File size: 1.2 KB
Line 
1import errors
2from errors import *
3__all__ = ['errors']
4__all__.extend(errors.__all__)
5
6from job import GutenbachJob
7__all__.append('GutenbachJob')
8
9from printer import GutenbachPrinter
10__all__.append('GutenbachPrinter')
11
12from requests import make_empty_response, GutenbachRequestHandler
13__all__.append('make_empty_response')
14__all__.append('GutenbachRequestHandler')
15
16from server import IPPServer
17__all__.append('IPPServer')
18
19import BaseHTTPServer
20import logging
21import sys
22import traceback
23
24# configure and initialize logging
25logging.basicConfig(level=logging.DEBUG)
26logger = logging.getLogger(__name__)
27
28def error(self, request=None, client_address=None):
29    logger.fatal(traceback.format_exc())
30    self.gutenbach_printer.running = False
31    sys.exit(1)
32
33def 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')
Note: See TracBrowser for help on using the repository browser.