def main(): parser = ArgumentParser() parser.add_argument("--standalone", action="store_true") parser.add_argument("--debug", action="store_true") opts = parser.parse_args() if opts.standalone: Control.STANDALONE = True if opts.debug: Control.logger.setLevel(logging.DEBUG) try: request = WebService.Request(Control.STANDALONE, Control.logger) if request.logLevel > 1: Control.logger.setLevel(logging.DEBUG) Control.logger.info("%s request from %s", request.type, request.client) Control.logger.debug("Request body:\n%s", request.message) if request.type == "Ticket": response = check_ticket(Ticket(request.doc)) elif request.type == "Manifest": response = make_delta(Manifest(request.doc)) else: error = "Don't understand %r" % request.type response = WebService.ErrorResponse(error, Control.logger) except Exception as e: response = WebService.ErrorResponse(str(e), Control.logger) Control.logger.debug("Response:\n%s\n", response.body) if Control.STANDALONE: sys.stdout.write(response.body) else: response.send()