Merge #446 Try to continue batch build only when there are some components to build, expire the build object to force its refresh from database

This commit is contained in:
Jan Kaluža
2017-03-17 18:07:29 +00:00
2 changed files with 10 additions and 1 deletions

View File

@@ -137,6 +137,7 @@ def wait(config, session, msg):
build = models.ModuleBuild.from_module_event(session, msg)
if 'mbs' in build.mmd().xmd:
return build
session.expire(build)
raise RuntimeError("{!r} doesn't contain xmd information for MBS."
.format(build))

View File

@@ -179,7 +179,15 @@ class MBSProducer(PollingProducer):
state=models.BUILD_STATES['build']).all():
# If there are no components in the build state on the module build,
# then no possible event will start off new component builds
if not module_build.current_batch(koji.BUILD_STATES['BUILDING']):
unbuilt_components = [
c for c in module_build.component_builds
if (c.state != koji.BUILD_STATES['COMPLETE']
and c.state != koji.BUILD_STATES["FAILED"]
and c.state != koji.BUILD_STATES["CANCELED"])
]
if (not module_build.current_batch(koji.BUILD_STATES['BUILDING'])
and unbuilt_components):
# Initialize the builder...
builder = GenericBuilder.create_from_module(
session, module_build, config)