Close the database connection after operations in buildman

Also adds a *temporary* hack to prevent this from breaking tests
This commit is contained in:
Joseph Schorr 2017-07-26 12:10:48 -04:00
parent c271b1f386
commit 9febb539a7
3 changed files with 90 additions and 73 deletions

View file

@ -15,8 +15,9 @@ from buildman.jobutil.buildjob import BuildJobLoadException
from buildman.jobutil.buildstatus import StatusHandler
from buildman.jobutil.workererror import WorkerError
from app import app
from data import model
from data.database import BUILD_PHASE
from data.database import BUILD_PHASE, UseThenDisconnect
from data.model import InvalidRepositoryBuildException
from util import slash_join
@ -358,16 +359,17 @@ class BuildComponent(BaseComponent):
# Label the pushed manifests with the build metadata.
manifest_digests = kwargs.get('digests') or []
for digest in manifest_digests:
try:
manifest = model.tag.load_manifest_by_digest(self._current_job.namespace,
self._current_job.repo_name, digest)
model.label.create_manifest_label(manifest, model.label.INTERNAL_LABEL_BUILD_UUID,
build_id, 'internal', 'text/plain')
except model.InvalidManifestException:
logger.debug('Could not find built manifest with digest %s under repo %s/%s for build %s',
digest, self._current_job.namespace, self._current_job.repo_name,
build_id)
continue
with UseThenDisconnect(app.config):
try:
manifest = model.tag.load_manifest_by_digest(self._current_job.namespace,
self._current_job.repo_name, digest)
model.label.create_manifest_label(manifest, model.label.INTERNAL_LABEL_BUILD_UUID,
build_id, 'internal', 'text/plain')
except model.InvalidManifestException:
logger.debug('Could not find built manifest with digest %s under repo %s/%s for build %s',
digest, self._current_job.namespace, self._current_job.repo_name,
build_id)
continue
# Send the notification that the build has completed successfully.
self._current_job.send_notification('build_success',