def generic_handler():
"""
The generic handler catches all requests not caught by any other route. It
checks the configuration to see if the URL requested is one registered as a
job's webhook URL handler. If so, it normalizes the request and queues the
job for building.
It returns immediately (aynsc) with a JSON structure containing the job id.
"""
jobdef_manager = request.deps['jobdef_manager']
build_queue = request.deps['build_queue']
config = request.deps['config']
providers = request.deps['providers']
jobdef = jobdef_manager.get_jobdef_from_url(request.path)
if not jobdef:
abort(404, "Not found")
logging.info("Received event for job '{}'".format(jobdef.name))
# Log debug info about the received request
logging.debug("request environ: {}".format(request.environ))
logging.debug("request path: {}".format(request.path))
logging.debug("request method: {}".format(request.method))
for k, v in request.headers.items():
logging.debug("request header: {}={}".format(k, v))
for k, v in request.query.items():
logging.debug("request query: {}={}".format(k, v))
logging.debug("request body: {}".format(request.body.read()))
logging.debug("request auth: {}".format(request.auth))
env = job.make_env(request, jobdef, providers)
job_inst = jobdef.make_job(request.body.read().decode('utf8'), env)
build_queue.put(job_inst)
return {'id': job_inst.id}
评论列表
文章目录