mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-04 19:28:49 +08:00
Create module-build-macros component just once - do not duplicate it for each resubmition of a module.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user