Make it optional to tag build for CG import

Fixes FACTORY-3467

Signed-off-by: Chenxiong Qi <cqi@redhat.com>
This commit is contained in:
Chenxiong Qi
2018-11-20 19:31:03 +08:00
parent 42429cf043
commit b5860fa039
4 changed files with 33 additions and 14 deletions

View File

@@ -41,7 +41,7 @@ from six import text_type
import koji
import pungi.arch
from module_build_service import log, build_logs, Modulemd, glib
from module_build_service import conf, log, build_logs, Modulemd, glib
logging.basicConfig(level=logging.DEBUG)
@@ -734,7 +734,8 @@ class KojiContentGenerator(object):
try:
serverdir = self._upload_outputs(session, metadata, file_dir)
build_info = session.CGImport(metadata, serverdir)
self._tag_cg_build()
if conf.koji_cg_tag_build:
self._tag_cg_build()
log.info("Content generator import done.")
log.debug(json.dumps(build_info, sort_keys=True, indent=4))

View File

@@ -423,6 +423,11 @@ class Config(object):
'type': dict,
'default': {},
'desc': 'Per base-module name:stream Koji arches list.'},
'koji_cg_tag_build': {
'type': bool,
'default': True,
'desc': 'Indicate whether tagging build is enabled during importing '
'module to Koji.'},
'koji_cg_build_tag_template': {
'type': str,
'default': "{}-modular-updates-candidate",

View File

@@ -294,10 +294,15 @@ def wait(config, session, msg):
log.debug("Assigning koji tag=%s to module build" % tag)
build.koji_tag = tag
cg_build_koji_tag = get_content_generator_build_koji_tag(build_deps)
log.debug("Assigning Content Generator build koji tag=%s to module "
"build", cg_build_koji_tag)
build.cg_build_koji_tag = cg_build_koji_tag
if conf.koji_cg_tag_build:
cg_build_koji_tag = get_content_generator_build_koji_tag(build_deps)
log.debug("Assigning Content Generator build koji tag=%s to module build",
cg_build_koji_tag)
build.cg_build_koji_tag = cg_build_koji_tag
else:
log.debug('It is disabled to tag module build during importing into'
' Koji by Content Generator.')
log.debug('Skip to assign Content Generator build koji tag to module build.')
builder = module_build_service.builder.GenericBuilder.create_from_module(
session, build, config)

View File

@@ -26,6 +26,7 @@ import module_build_service.messaging
import module_build_service.scheduler.handlers.modules
import os
import koji
import pytest
from tests import conf, db, app, scheduler_init_data
import module_build_service.resolver
from module_build_service import build_logs, Modulemd
@@ -206,6 +207,10 @@ class TestModuleWait:
module_build = ModuleBuild.query.filter_by(id=2).one()
assert module_build.cg_build_koji_tag == "modular-updates-candidate"
@pytest.mark.parametrize('koji_cg_tag_build,expected_cg_koji_build_tag', [
[True, 'f27-modular-updates-candidate'],
[False, None],
])
@patch("module_build_service.builder.GenericBuilder.default_buildroot_groups",
return_value={'build': [], 'srpm-build': []})
@patch("module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.get_session")
@@ -215,7 +220,8 @@ class TestModuleWait:
@patch("module_build_service.config.Config.base_module_names",
new_callable=mock.PropertyMock, return_value=set(["base-runtime", "platform"]))
def test_set_cg_build_koji_tag(
self, cfg, generic_resolver, resolver, create_builder, koji_get_session, dbg):
self, cfg, generic_resolver, resolver, create_builder, koji_get_session, dbg,
koji_cg_tag_build, expected_cg_koji_build_tag):
"""
Test that build.cg_build_koji_tag is set.
"""
@@ -243,10 +249,12 @@ class TestModuleWait:
resolver.get_module_build_dependencies.return_value = {
"module-bootstrap-tag": base_mmd}
with patch.object(module_build_service.resolver, 'system_resolver', new=resolver):
msg = module_build_service.messaging.MBSModule(msg_id=None, module_build_id=2,
module_build_state='some state')
module_build_service.scheduler.handlers.modules.wait(
config=conf, session=db.session, msg=msg)
module_build = ModuleBuild.query.filter_by(id=2).one()
assert module_build.cg_build_koji_tag == "f27-modular-updates-candidate"
with patch.object(module_build_service.scheduler.handlers.modules.conf,
'koji_cg_tag_build', new=koji_cg_tag_build):
with patch.object(module_build_service.resolver, 'system_resolver', new=resolver):
msg = module_build_service.messaging.MBSModule(msg_id=None, module_build_id=2,
module_build_state='some state')
module_build_service.scheduler.handlers.modules.wait(
config=conf, session=db.session, msg=msg)
module_build = ModuleBuild.query.filter_by(id=2).one()
assert module_build.cg_build_koji_tag == expected_cg_koji_build_tag