Create module-build-macros component just once - do not duplicate it for each resubmition of a module.

This commit is contained in:
Jan Kaluza
2017-08-08 06:52:28 +02:00
parent d6056575c5
commit 4bbb0cc416
2 changed files with 28 additions and 12 deletions

View File

@@ -257,18 +257,27 @@ def wait(config, session, msg):
artifact_name = "module-build-macros"
task_id, state, reason, nvr = builder.build(artifact_name=artifact_name, source=srpm)
component_build = models.ComponentBuild(
module_id=build.id,
package=artifact_name,
format="rpms",
scmurl=srpm,
task_id=task_id,
state=state,
state_reason=reason,
nvr=nvr,
batch=1,
)
session.add(component_build)
component_build = models.ComponentBuild.from_component_name(
session, artifact_name, build.id)
if component_build:
component_build.task_id = task_id
component_build.state = state
component_build.state_reason = reason
component_build.nvr = nvr
else:
component_build = models.ComponentBuild(
module_id=build.id,
package=artifact_name,
format="rpms",
scmurl=srpm,
task_id=task_id,
state=state,
state_reason=reason,
nvr=nvr,
batch=1,
)
session.add(component_build)
build.transition(config, state="build")
session.add(build)
session.commit()

View File

@@ -31,6 +31,7 @@ import vcr
import koji
from tests import conf, db, app, scheduler_init_data
from module_build_service import build_logs
from module_build_service.models import ComponentBuild
base_dir = os.path.dirname(os.path.dirname(__file__))
cassette_dir = base_dir + '/vcr-request-data/'
@@ -118,6 +119,12 @@ class TestModuleWait(unittest.TestCase):
config=conf, session=db.session, msg=msg)
koji_session.newRepo.assert_called_once_with("module-123-build")
# When module-build-macros is reused, it still has to appear only
# once in database.
builds_count = db.session.query(ComponentBuild).filter_by(
package="module-build-macros", module_id=1).count()
self.assertEqual(builds_count, 1)
@patch("module_build_service.builder.GenericBuilder.default_buildroot_groups",
return_value={'build': [], 'srpm-build': []})
@patch("module_build_service.builder.KojiModuleBuilder.get_session")