Skip to content

Instantly share code, notes, and snippets.

@rogaha
Created April 8, 2014 17:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rogaha/10157966 to your computer and use it in GitHub Desktop.
Save rogaha/10157966 to your computer and use it in GitHub Desktop.
def highland_build_hook(request):
log.debug(u"(highland_build_hook) start")
if request.method == 'POST':
try:
log.debug(u"(highland_build_hook) POST")
data = JSONParser().parse(request)
build_code = data.get('build_code', None)
dockerfile = data.get('dockerfile_contents', None)
readme = data.get('readme_contents', None)
source_tarball_url = data.get('source_tarball_url', None)
log.debug(u"(highland_build_hook) build_code={0}".format(build_code))
try:
build_request = BuildRequest.objects.get(highland_build_code=build_code)
except BuildRequest.DoesNotExist:
log.debug(u"(highland_build_hook) invalid build_code")
return HttpResponse(u'Invalid build_code')
status = data.get('status', None)
build_request.status = status
build_request.source_build_url = source_tarball_url
build_request.save()
repository = build_request.build.repository
if build_request.status == BuildRequest.DONE:
log.debug(u"(highland_build_hook) build is done, trigger_transfer")
#trigger_transfer(build_request)
if dockerfile:
log.debug(u"(highland_build_hook) have dockerfile, add to repo")
add_dockerfile(repository, dockerfile)
if readme:
log.debug(u"(highland_build_hook) have readme, add to repo")
repository.full_description = readme
repository.save()
repository.expire_cache()
else:
log.debug(u"(highland_build_hook) build status is {0}".format(status))
if build_request.status == BuildRequest.ERROR:
notify(build_request.build.user, 'trusted_build_fail', {
'build': build_request.build,
'step': 'build',
'request': build_request
})
except ParseError as exc:
log.debug(u"(highland_build_hook) parse request error = {0}".format(exc))
return HttpResponse(u'Invalid payload')
log.debug("(highland_build_hook) finished")
return HttpResponse('OK')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment