mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-05 03:38:12 +08:00
Reuse function load_mmd
GenericResolver.extract_modulemd is not removed, but deprecated. Call of it will result in a deprecation message printed. Any new code should call load_mmd. Signed-off-by: Chenxiong Qi <cqi@redhat.com>
This commit is contained in:
@@ -45,7 +45,7 @@ import pungi.arch
|
||||
|
||||
from module_build_service import conf, log, build_logs, Modulemd, glib
|
||||
from module_build_service.scm import SCM
|
||||
from module_build_service.utils import to_text_type
|
||||
from module_build_service.utils import to_text_type, load_mmd
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
|
||||
@@ -409,7 +409,7 @@ class KojiContentGenerator(object):
|
||||
with open(mmd_path, 'rb') as mmd_f:
|
||||
raw_data = mmd_f.read()
|
||||
data = to_text_type(raw_data)
|
||||
mmd = Modulemd.Module().new_from_string(data)
|
||||
mmd = load_mmd(data)
|
||||
ret['filename'] = mmd_filename
|
||||
ret['filesize'] = len(raw_data)
|
||||
ret['checksum'] = hashlib.md5(raw_data).hexdigest()
|
||||
|
||||
@@ -41,7 +41,7 @@ from sqlalchemy.orm import validates, scoped_session, sessionmaker, load_only
|
||||
|
||||
import module_build_service.messaging
|
||||
from module_build_service.glib import from_variant_dict
|
||||
from module_build_service import db, log, get_url_for, app, conf, Modulemd
|
||||
from module_build_service import db, log, get_url_for, app, conf
|
||||
|
||||
DEFAULT_MODULE_CONTEXT = '00000000'
|
||||
|
||||
@@ -416,13 +416,12 @@ class ModuleBuild(MBSBase):
|
||||
return session.query(ModuleBuild).filter_by(koji_tag=tag).first()
|
||||
|
||||
def mmd(self):
|
||||
from module_build_service.utils import load_mmd
|
||||
try:
|
||||
mmd = Modulemd.Module().new_from_string(self.modulemd)
|
||||
mmd.upgrade()
|
||||
return load_mmd(self.modulemd)
|
||||
except Exception:
|
||||
log.exception('An error occurred while trying to parse the modulemd')
|
||||
raise ValueError("Invalid modulemd")
|
||||
return mmd
|
||||
|
||||
@property
|
||||
def previous_non_failed_state(self):
|
||||
@@ -470,9 +469,9 @@ class ModuleBuild(MBSBase):
|
||||
:return: Tuple with build_context, strem_build_context, runtime_context and
|
||||
context hashes.
|
||||
"""
|
||||
from module_build_service.utils import load_mmd
|
||||
try:
|
||||
mmd = Modulemd.Module().new_from_string(mmd_str)
|
||||
mmd.upgrade()
|
||||
mmd = load_mmd(mmd_str)
|
||||
except Exception:
|
||||
raise ValueError("Invalid modulemd")
|
||||
mbs_xmd = mmd.get_xmd().get('mbs', {})
|
||||
|
||||
@@ -70,11 +70,12 @@ class DBResolver(GenericResolver):
|
||||
less than or equal the stream version computed from `stream`.
|
||||
:return: List of Modulemd metadata instances matching the query
|
||||
"""
|
||||
from module_build_service.utils import load_mmd
|
||||
if version and context:
|
||||
mmd = self._get_module(name, stream, version, context, strict=strict)
|
||||
if mmd is None:
|
||||
return
|
||||
return [self.extract_modulemd(mmd['modulemd'])]
|
||||
return [load_mmd(mmd['modulemd'])]
|
||||
|
||||
with models.make_session(self.config) as session:
|
||||
if not version and not context:
|
||||
|
||||
@@ -33,6 +33,7 @@ from module_build_service import db, conf
|
||||
from module_build_service import models
|
||||
from module_build_service.errors import UnprocessableEntity
|
||||
from module_build_service.resolver.base import GenericResolver
|
||||
from module_build_service.utils.submit import load_mmd
|
||||
from module_build_service.utils.general import import_mmd
|
||||
|
||||
log = logging.getLogger()
|
||||
@@ -113,7 +114,7 @@ class MBSResolver(GenericResolver):
|
||||
if strict:
|
||||
raise UnprocessableEntity("Failed to find module in MBS %r" % query)
|
||||
else:
|
||||
return None
|
||||
return modules
|
||||
|
||||
if version is None and "stream_version_lte" not in kwargs:
|
||||
# Only return the latest version
|
||||
@@ -168,7 +169,7 @@ class MBSResolver(GenericResolver):
|
||||
else:
|
||||
return None
|
||||
|
||||
mmds.append(self.extract_modulemd(yaml, strict=strict))
|
||||
mmds.append(load_mmd(yaml))
|
||||
return mmds
|
||||
|
||||
def get_buildrequired_modulemds(self, name, stream, base_module_nsvc):
|
||||
@@ -183,17 +184,9 @@ class MBSResolver(GenericResolver):
|
||||
:rtype: list
|
||||
:return: List of modulemd metadata.
|
||||
"""
|
||||
yaml = None
|
||||
modules = self._get_modules(name, stream, strict=False,
|
||||
base_module_br=base_module_nsvc)
|
||||
if not modules:
|
||||
return []
|
||||
|
||||
mmds = []
|
||||
for module in modules:
|
||||
yaml = module['modulemd']
|
||||
mmds.append(self.extract_modulemd(yaml))
|
||||
return mmds
|
||||
return [load_mmd(module['modulemd']) for module in modules]
|
||||
|
||||
def resolve_profiles(self, mmd, keys):
|
||||
"""
|
||||
@@ -233,7 +226,7 @@ class MBSResolver(GenericResolver):
|
||||
|
||||
for module in modules:
|
||||
yaml = module['modulemd']
|
||||
dep_mmd = self.extract_modulemd(yaml)
|
||||
dep_mmd = load_mmd(yaml)
|
||||
# Take note of what rpms are in this dep's profile.
|
||||
for key in keys:
|
||||
if key in dep_mmd.get_profiles().keys():
|
||||
@@ -281,7 +274,7 @@ class MBSResolver(GenericResolver):
|
||||
queried_module = self._get_module(
|
||||
name, stream, version, context, strict=strict)
|
||||
yaml = queried_module['modulemd']
|
||||
queried_mmd = self.extract_modulemd(yaml, strict=strict)
|
||||
queried_mmd = load_mmd(yaml)
|
||||
|
||||
if (not queried_mmd or not queried_mmd.get_xmd().get('mbs') or
|
||||
'buildrequires' not in queried_mmd.get_xmd()['mbs'].keys()):
|
||||
@@ -316,7 +309,7 @@ class MBSResolver(GenericResolver):
|
||||
if m["koji_tag"] is None:
|
||||
continue
|
||||
module_tags.setdefault(m["koji_tag"], [])
|
||||
module_tags[m["koji_tag"]].append(self.extract_modulemd(m["modulemd"]))
|
||||
module_tags[m["koji_tag"]].append(load_mmd(m["modulemd"]))
|
||||
|
||||
return module_tags
|
||||
|
||||
@@ -370,7 +363,7 @@ class MBSResolver(GenericResolver):
|
||||
module_name, module_stream, module_version,
|
||||
module_context, strict=True)
|
||||
if module.get('modulemd'):
|
||||
mmd = self.extract_modulemd(module['modulemd'])
|
||||
mmd = load_mmd(module['modulemd'])
|
||||
if mmd.get_xmd().get('mbs') and 'commit' in mmd.get_xmd()['mbs'].keys():
|
||||
commit_hash = mmd.get_xmd()['mbs']['commit']
|
||||
|
||||
@@ -416,6 +409,6 @@ class MBSResolver(GenericResolver):
|
||||
data = resp.json()
|
||||
if data['items']:
|
||||
modulemd = data['items'][0]['modulemd']
|
||||
return self.extract_modulemd(modulemd)
|
||||
return load_mmd(modulemd)
|
||||
else:
|
||||
return None
|
||||
|
||||
@@ -28,7 +28,7 @@ import six
|
||||
from abc import ABCMeta, abstractmethod
|
||||
|
||||
import module_build_service.config as cfg
|
||||
from module_build_service import conf, Modulemd
|
||||
from module_build_service import conf, log
|
||||
|
||||
|
||||
class GenericResolver(six.with_metaclass(ABCMeta)):
|
||||
@@ -100,12 +100,10 @@ class GenericResolver(six.with_metaclass(ABCMeta)):
|
||||
|
||||
@staticmethod
|
||||
def extract_modulemd(yaml, strict=False):
|
||||
try:
|
||||
mmd = Modulemd.Module().new_from_string(yaml)
|
||||
mmd.upgrade()
|
||||
except Exception:
|
||||
raise ValueError('Invalid modulemd')
|
||||
return mmd
|
||||
log.warning('GenericResolver.extract_modulemd is deprecated. Please call '
|
||||
'module_build_service.utils.load_mmd in new code.')
|
||||
from module_build_service.utils import load_mmd
|
||||
return load_mmd(yaml)
|
||||
|
||||
@abstractmethod
|
||||
def get_module_modulemds(self, name, stream, version=None, context=None, strict=False,
|
||||
|
||||
@@ -29,6 +29,7 @@ import time
|
||||
import shutil
|
||||
import tempfile
|
||||
import os
|
||||
from functools import partial
|
||||
from multiprocessing.dummy import Pool as ThreadPool
|
||||
from datetime import datetime
|
||||
import copy
|
||||
@@ -39,14 +40,11 @@ import requests
|
||||
from gi.repository import GLib
|
||||
|
||||
import module_build_service.scm
|
||||
import module_build_service.resolver
|
||||
|
||||
from module_build_service import conf, db, log, models, Modulemd
|
||||
from module_build_service.errors import (
|
||||
ValidationError, UnprocessableEntity, Forbidden, Conflict)
|
||||
from module_build_service import glib
|
||||
from module_build_service.resolver import GenericResolver
|
||||
from .mse import generate_expanded_mmds
|
||||
|
||||
|
||||
def record_filtered_rpms(mmd):
|
||||
@@ -63,6 +61,7 @@ def record_filtered_rpms(mmd):
|
||||
"""
|
||||
# Imported here to allow import of utils in GenericBuilder.
|
||||
from module_build_service.builder import GenericBuilder
|
||||
from module_build_service.resolver import GenericResolver
|
||||
|
||||
resolver = GenericResolver.create(conf)
|
||||
builder = GenericBuilder.backends[conf.system]
|
||||
@@ -615,6 +614,7 @@ def submit_module_build(username, mmd, params):
|
||||
:return: List with submitted module builds.
|
||||
"""
|
||||
import koji # Placed here to avoid py2/py3 conflicts...
|
||||
from .mse import generate_expanded_mmds
|
||||
|
||||
log.debug('Submitted %s module build for %s:%s:%s',
|
||||
("scratch" if params.get('scratch', False) else "normal"),
|
||||
@@ -839,7 +839,7 @@ def load_mmd(yaml, is_file=False):
|
||||
error = 'The modulemd file {} not found!'.format(os.path.basename(yaml))
|
||||
log.error('The modulemd file %s not found!', yaml)
|
||||
else:
|
||||
error = 'The modulemd is invalid. Please verify the syntax is correct'
|
||||
error = 'The modulemd is invalid. Please verify the syntax is correct.'
|
||||
log.debug('Modulemd content:\n%s', yaml)
|
||||
log.exception(error)
|
||||
raise UnprocessableEntity(error)
|
||||
@@ -847,6 +847,9 @@ def load_mmd(yaml, is_file=False):
|
||||
return mmd
|
||||
|
||||
|
||||
load_mmd_file = partial(load_mmd, is_file=True)
|
||||
|
||||
|
||||
def load_local_builds(local_build_nsvs, session=None):
|
||||
"""
|
||||
Loads previously finished local module builds from conf.mock_resultsdir
|
||||
|
||||
@@ -26,12 +26,12 @@ from mock import patch
|
||||
import time
|
||||
import hashlib
|
||||
from traceback import extract_stack
|
||||
from module_build_service.utils import to_text_type
|
||||
from module_build_service.utils import to_text_type, load_mmd_file
|
||||
|
||||
import koji
|
||||
import module_build_service
|
||||
from module_build_service import db
|
||||
from module_build_service.utils import get_rpm_release, import_mmd, load_mmd
|
||||
from module_build_service.utils import get_rpm_release, import_mmd
|
||||
from module_build_service.config import init_config
|
||||
from module_build_service.models import ModuleBuild, ComponentBuild, make_session, BUILD_STATES
|
||||
from module_build_service import glib, Modulemd
|
||||
@@ -106,7 +106,7 @@ def clean_database(add_platform_module=True):
|
||||
db.drop_all()
|
||||
db.create_all()
|
||||
if add_platform_module:
|
||||
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
import_mmd(db.session, mmd)
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ def init_data(data_size=10, contexts=False, multiple_stream_versions=False, scra
|
||||
"""
|
||||
clean_database()
|
||||
if multiple_stream_versions:
|
||||
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
for stream in ["f28.0.0", "f29.0.0", "f29.1.0", "f29.2.0"]:
|
||||
mmd.set_name("platform")
|
||||
mmd.set_stream(stream)
|
||||
@@ -320,8 +320,7 @@ def scheduler_init_data(tangerine_state=None, scratch=False):
|
||||
current_dir = os.path.dirname(__file__)
|
||||
formatted_testmodule_yml_path = os.path.join(
|
||||
current_dir, 'staged_data', 'formatted_testmodule.yaml')
|
||||
mmd = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
|
||||
mmd.upgrade()
|
||||
mmd = load_mmd_file(formatted_testmodule_yml_path)
|
||||
mmd.get_rpm_components()['tangerine'].set_buildorder(0)
|
||||
|
||||
platform_br = module_build_service.models.ModuleBuild.query.get(1)
|
||||
@@ -418,8 +417,7 @@ def reuse_component_init_data():
|
||||
current_dir = os.path.dirname(__file__)
|
||||
formatted_testmodule_yml_path = os.path.join(
|
||||
current_dir, 'staged_data', 'formatted_testmodule.yaml')
|
||||
mmd = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
|
||||
mmd.upgrade()
|
||||
mmd = load_mmd_file(formatted_testmodule_yml_path)
|
||||
|
||||
platform_br = module_build_service.models.ModuleBuild.query.get(1)
|
||||
|
||||
@@ -589,8 +587,7 @@ def reuse_shared_userspace_init_data():
|
||||
current_dir = os.path.dirname(__file__)
|
||||
formatted_testmodule_yml_path = os.path.join(
|
||||
current_dir, 'staged_data', 'shared-userspace-570.yaml')
|
||||
mmd = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
|
||||
mmd.upgrade()
|
||||
mmd = load_mmd_file(formatted_testmodule_yml_path)
|
||||
|
||||
module_build = module_build_service.models.ModuleBuild(
|
||||
name=mmd.get_name(),
|
||||
@@ -641,8 +638,7 @@ def reuse_shared_userspace_init_data():
|
||||
# Create shared-userspace-577, state is WAIT, no component built
|
||||
formatted_testmodule_yml_path = os.path.join(
|
||||
current_dir, 'staged_data', 'shared-userspace-577.yaml')
|
||||
mmd2 = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
|
||||
mmd2.upgrade()
|
||||
mmd2 = load_mmd_file(formatted_testmodule_yml_path)
|
||||
|
||||
module_build = module_build_service.models.ModuleBuild(
|
||||
name=mmd2.get_name(),
|
||||
|
||||
@@ -1383,8 +1383,8 @@ class TestBuild:
|
||||
Test that when a build is submitted with a buildrequire without a Koji tag,
|
||||
MBS doesn't supply it as a dependency to the builder.
|
||||
"""
|
||||
metadata_mmd = module_build_service.utils.load_mmd(
|
||||
path.join(base_dir, 'staged_data', 'build_metadata_module.yaml'), True)
|
||||
metadata_mmd = module_build_service.utils.load_mmd_file(
|
||||
path.join(base_dir, 'staged_data', 'build_metadata_module.yaml'))
|
||||
module_build_service.utils.import_mmd(db.session, metadata_mmd)
|
||||
|
||||
FakeSCM(mocked_scm, 'testmodule', 'testmodule_br_metadata_module.yaml',
|
||||
|
||||
@@ -865,7 +865,7 @@ class TestBuild:
|
||||
def test_finalize_mmd_devel(self):
|
||||
self.cg.devel = True
|
||||
mmd = self.cg.module.mmd()
|
||||
new_mmd = Modulemd.Module.new_from_string(self.cg._finalize_mmd("x86_64"))
|
||||
new_mmd = module_build_service.utils.load_mmd(self.cg._finalize_mmd("x86_64"))
|
||||
|
||||
# Check that -devel suffix is set.
|
||||
assert new_mmd.get_name().endswith("-devel")
|
||||
|
||||
@@ -24,11 +24,11 @@ import os
|
||||
from datetime import datetime
|
||||
|
||||
import module_build_service
|
||||
from module_build_service.utils import load_mmd
|
||||
|
||||
from tests import db, clean_database
|
||||
from module_build_service.config import init_config
|
||||
from module_build_service.models import ModuleBuild, BUILD_STATES
|
||||
from module_build_service import Modulemd
|
||||
|
||||
app = module_build_service.app
|
||||
|
||||
@@ -38,8 +38,7 @@ datadir = os.path.dirname(__file__) + '/data/'
|
||||
|
||||
|
||||
def module_build_from_modulemd(yaml):
|
||||
mmd = Modulemd.Module().new_from_string(yaml)
|
||||
mmd.upgrade()
|
||||
mmd = load_mmd(yaml)
|
||||
build = ModuleBuild()
|
||||
build.name = mmd.get_name()
|
||||
build.stream = mmd.get_stream()
|
||||
|
||||
@@ -29,7 +29,7 @@ from module_build_service.utils import to_text_type
|
||||
|
||||
import module_build_service.resolver as mbs_resolver
|
||||
from module_build_service import app, db, models, glib, utils, Modulemd
|
||||
from module_build_service.utils import import_mmd, load_mmd
|
||||
from module_build_service.utils import import_mmd, load_mmd_file
|
||||
from module_build_service.models import ModuleBuild
|
||||
import tests
|
||||
|
||||
@@ -43,7 +43,7 @@ class TestDBModule:
|
||||
tests.reuse_component_init_data()
|
||||
|
||||
def test_get_buildrequired_modulemds(self):
|
||||
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
mmd.set_stream('f30.1.3')
|
||||
import_mmd(db.session, mmd)
|
||||
platform_f300103 = ModuleBuild.query.filter_by(stream='f30.1.3').one()
|
||||
|
||||
@@ -26,7 +26,7 @@ from datetime import datetime
|
||||
from module_build_service.utils import to_text_type
|
||||
import module_build_service.resolver as mbs_resolver
|
||||
from module_build_service import db
|
||||
from module_build_service.utils import import_mmd, load_mmd
|
||||
from module_build_service.utils import import_mmd, load_mmd_file
|
||||
from module_build_service.models import ModuleBuild
|
||||
import tests
|
||||
|
||||
@@ -40,7 +40,7 @@ class TestLocalResolverModule:
|
||||
tests.reuse_component_init_data()
|
||||
|
||||
def test_get_buildrequired_modulemds(self):
|
||||
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
mmd.set_stream('f8')
|
||||
import_mmd(db.session, mmd)
|
||||
platform_f8 = ModuleBuild.query.filter_by(stream='f8').one()
|
||||
|
||||
@@ -25,7 +25,7 @@ from mock import patch, PropertyMock, Mock, call
|
||||
import module_build_service.resolver as mbs_resolver
|
||||
import module_build_service.utils
|
||||
import module_build_service.models
|
||||
from module_build_service import glib, Modulemd, app
|
||||
from module_build_service import glib, app
|
||||
import tests
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ class TestMBSModule:
|
||||
def test_get_module_build_dependencies_empty_buildrequires(self, mock_session,
|
||||
testmodule_mmd_9c690d0e):
|
||||
|
||||
mmd = Modulemd.Module().new_from_string(testmodule_mmd_9c690d0e)
|
||||
mmd = module_build_service.utils.load_mmd(testmodule_mmd_9c690d0e)
|
||||
# Wipe out the dependencies
|
||||
mmd.set_dependencies()
|
||||
xmd = glib.from_variant_dict(mmd.get_xmd())
|
||||
@@ -324,3 +324,45 @@ class TestMBSModule:
|
||||
set(['bar'])
|
||||
}
|
||||
assert result == expected
|
||||
|
||||
def test_get_empty_buildrequired_modulemds(self):
|
||||
resolver = mbs_resolver.GenericResolver.create(tests.conf, backend='mbs')
|
||||
|
||||
with patch.object(resolver, 'session') as session:
|
||||
session.get.return_value = Mock(ok=True)
|
||||
session.get.return_value.json.return_value = {
|
||||
'items': [], 'meta': {'next': None}
|
||||
}
|
||||
|
||||
result = resolver.get_buildrequired_modulemds(
|
||||
'nodejs', '10', 'platform:el8:1:00000000')
|
||||
assert [] == result
|
||||
|
||||
def test_get_buildrequired_modulemds(self):
|
||||
resolver = mbs_resolver.GenericResolver.create(tests.conf, backend='mbs')
|
||||
|
||||
with patch.object(resolver, 'session') as session:
|
||||
session.get.return_value = Mock(ok=True)
|
||||
session.get.return_value.json.return_value = {
|
||||
'items': [{
|
||||
'name': 'nodejs', 'stream': '10',
|
||||
'version': 1, 'context': 'c1',
|
||||
'modulemd': tests.make_module(
|
||||
'nodejs:10:1:c1', store_to_db=False).dumps(),
|
||||
}, {
|
||||
'name': 'nodejs', 'stream': '10',
|
||||
'version': 2, 'context': 'c1',
|
||||
'modulemd': tests.make_module(
|
||||
'nodejs:10:2:c1', store_to_db=False).dumps(),
|
||||
}], 'meta': {'next': None}
|
||||
}
|
||||
|
||||
result = resolver.get_buildrequired_modulemds(
|
||||
'nodejs', '10', 'platform:el8:1:00000000')
|
||||
|
||||
assert 1 == len(result)
|
||||
mmd = result[0]
|
||||
assert 'nodejs' == mmd.get_name()
|
||||
assert '10' == mmd.get_stream()
|
||||
assert 1 == mmd.get_version()
|
||||
assert 'c1' == mmd.get_context()
|
||||
|
||||
@@ -25,7 +25,7 @@ from shutil import copyfile, rmtree
|
||||
from datetime import datetime
|
||||
from werkzeug.datastructures import FileStorage
|
||||
from mock import patch
|
||||
from module_build_service.utils import to_text_type
|
||||
from module_build_service.utils import to_text_type, load_mmd_file
|
||||
import module_build_service.utils
|
||||
import module_build_service.scm
|
||||
from module_build_service import models, conf
|
||||
@@ -302,9 +302,8 @@ class TestUtils:
|
||||
|
||||
@pytest.mark.parametrize('context', ["c1", None])
|
||||
def test_import_mmd_contexts(self, context):
|
||||
mmd = Modulemd.Module().new_from_file(
|
||||
path.join(BASE_DIR, '..', 'staged_data', 'formatted_testmodule.yaml'))
|
||||
mmd.upgrade()
|
||||
mmd = load_mmd_file(path.join(
|
||||
BASE_DIR, '..', 'staged_data', 'formatted_testmodule.yaml'))
|
||||
mmd.set_context(context)
|
||||
|
||||
xmd = glib.from_variant_dict(mmd.get_xmd())
|
||||
@@ -429,7 +428,7 @@ class TestUtils:
|
||||
scheduler_init_data(1)
|
||||
mmd_path = path.abspath(path.join(
|
||||
__file__, path.pardir, path.pardir, 'staged_data', 'build_metadata_module.yaml'))
|
||||
metadata_mmd = module_build_service.utils.load_mmd(mmd_path, True)
|
||||
metadata_mmd = module_build_service.utils.load_mmd_file(mmd_path)
|
||||
module_build_service.utils.import_mmd(db.session, metadata_mmd)
|
||||
|
||||
build_one = models.ModuleBuild.query.get(2)
|
||||
@@ -847,7 +846,7 @@ class TestUtils:
|
||||
v = module_build_service.utils.submit.get_prefixed_version(mmd)
|
||||
assert v == 7000120180205135154
|
||||
|
||||
@patch('module_build_service.utils.submit.generate_expanded_mmds')
|
||||
@patch('module_build_service.utils.mse.generate_expanded_mmds')
|
||||
def test_submit_build_new_mse_build(self, generate_expanded_mmds):
|
||||
"""
|
||||
Tests that finished build can be resubmitted in case the resubmitted
|
||||
@@ -864,7 +863,7 @@ class TestUtils:
|
||||
generate_expanded_mmds.return_value = [mmd1, mmd2]
|
||||
|
||||
# Create a copy of mmd1 without xmd.mbs, since that will cause validate_mmd to fail
|
||||
mmd1_copy = Modulemd.Module.new_from_string(mmd1.dumps())
|
||||
mmd1_copy = module_build_service.utils.load_mmd(mmd1.dumps())
|
||||
mmd1_copy.set_xmd({})
|
||||
builds = module_build_service.utils.submit_module_build("foo", mmd1_copy, {})
|
||||
ret = {b.mmd().get_context(): b.state for b in builds}
|
||||
|
||||
@@ -358,8 +358,8 @@ class TestUtilsModuleStreamExpansion:
|
||||
def test__get_base_module_mmds(self):
|
||||
"""Ensure the correct results are returned without duplicates."""
|
||||
init_data(data_size=1, multiple_stream_versions=True)
|
||||
mmd = module_build_service.utils.load_mmd(
|
||||
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'), True)
|
||||
mmd = module_build_service.utils.load_mmd_file(
|
||||
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'))
|
||||
deps = mmd.get_dependencies()
|
||||
brs = deps[0].get_buildrequires()
|
||||
brs['platform'].set(['f29.1.0', 'f29.2.0'])
|
||||
@@ -380,8 +380,8 @@ class TestUtilsModuleStreamExpansion:
|
||||
def test__get_base_module_mmds_virtual_streams(self, virtual_streams):
|
||||
"""Ensure the correct results are returned without duplicates."""
|
||||
init_data(data_size=1, multiple_stream_versions=True)
|
||||
mmd = module_build_service.utils.load_mmd(
|
||||
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'), True)
|
||||
mmd = module_build_service.utils.load_mmd_file(
|
||||
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'))
|
||||
deps = mmd.get_dependencies()
|
||||
brs = deps[0].get_buildrequires()
|
||||
brs['platform'].set(['f29.2.0'])
|
||||
@@ -406,8 +406,8 @@ class TestUtilsModuleStreamExpansion:
|
||||
|
||||
def test__get_base_module_mmds_virtual_streams_latest_stream_version(self):
|
||||
init_data(data_size=1, multiple_stream_versions=True)
|
||||
mmd = module_build_service.utils.load_mmd(
|
||||
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'), True)
|
||||
mmd = module_build_service.utils.load_mmd_file(
|
||||
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'))
|
||||
deps = mmd.get_dependencies()
|
||||
brs = deps[0].get_buildrequires()
|
||||
brs['platform'].set(['f35'])
|
||||
|
||||
@@ -32,7 +32,7 @@ from os.path import basename, dirname, splitext
|
||||
from requests.utils import quote
|
||||
import hashlib
|
||||
import pytest
|
||||
from module_build_service.utils import to_text_type
|
||||
from module_build_service.utils import to_text_type, load_mmd_file
|
||||
import re
|
||||
|
||||
from tests import app, init_data, clean_database, reuse_component_init_data
|
||||
@@ -40,10 +40,10 @@ from tests import read_staged_data
|
||||
from tests.test_scm import base_dir as scm_base_dir
|
||||
from module_build_service.errors import UnprocessableEntity
|
||||
from module_build_service.models import ModuleBuild
|
||||
from module_build_service import db, version, Modulemd
|
||||
from module_build_service import db, version
|
||||
import module_build_service.config as mbs_config
|
||||
import module_build_service.scheduler.handlers.modules
|
||||
from module_build_service.utils import import_mmd, load_mmd
|
||||
from module_build_service.utils import import_mmd
|
||||
from module_build_service.glib import dict_values, from_variant_dict
|
||||
|
||||
|
||||
@@ -724,7 +724,7 @@ class TestViews:
|
||||
|
||||
def test_query_base_module_br_filters(self):
|
||||
reuse_component_init_data()
|
||||
mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
mmd.set_stream('f30.1.3')
|
||||
import_mmd(db.session, mmd)
|
||||
platform_f300103 = ModuleBuild.query.filter_by(stream='f30.1.3').one()
|
||||
@@ -830,8 +830,7 @@ class TestViews:
|
||||
assert data['state_trace'][0]['state'] == 0
|
||||
assert data['tasks'] == {}
|
||||
assert data['siblings'] == []
|
||||
mmd = Modulemd.Module().new_from_string(data['modulemd'])
|
||||
mmd.upgrade()
|
||||
module_build_service.utils.load_mmd(data['modulemd'])
|
||||
|
||||
# Make sure the buildrequires entry was created
|
||||
module = ModuleBuild.query.get(8)
|
||||
@@ -1299,7 +1298,7 @@ class TestViews:
|
||||
rv = self.client.post(post_url, data=json.dumps(json_input))
|
||||
data = json.loads(rv.data)
|
||||
|
||||
mmd = Modulemd.Module().new_from_string(data[0]['modulemd'])
|
||||
mmd = module_build_service.utils.load_mmd(data[0]['modulemd'])
|
||||
assert len(mmd.get_dependencies()) == 1
|
||||
dep = mmd.get_dependencies()[0]
|
||||
assert set(dep.get_buildrequires()['platform'].get()) == expected_br
|
||||
@@ -1768,8 +1767,7 @@ class TestViews:
|
||||
assert data['state_trace'][0]['state'] == 0
|
||||
assert data['tasks'] == {}
|
||||
assert data['siblings'] == []
|
||||
mmd = Modulemd.Module().new_from_string(data['modulemd'])
|
||||
mmd.upgrade()
|
||||
module_build_service.utils.load_mmd(data['modulemd'])
|
||||
|
||||
# Make sure the buildrequires entry was created
|
||||
module = ModuleBuild.query.get(8)
|
||||
@@ -1857,8 +1855,7 @@ class TestViews:
|
||||
assert data['state_trace'][0]['state'] == 0
|
||||
assert data['tasks'] == {}
|
||||
assert data['siblings'] == []
|
||||
mmd = Modulemd.Module().new_from_string(data['modulemd'])
|
||||
mmd.upgrade()
|
||||
module_build_service.utils.load_mmd(data['modulemd'])
|
||||
|
||||
# Make sure the buildrequires entry was created
|
||||
module = ModuleBuild.query.get(8)
|
||||
@@ -1951,7 +1948,7 @@ class TestViews:
|
||||
init_data(data_size=1, multiple_stream_versions=True)
|
||||
# Create a platform for whatever the override is so the build submission succeeds
|
||||
if platform_override:
|
||||
platform_mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
platform_mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
platform_mmd.set_stream(platform_override)
|
||||
if platform_override == 'el8.0.0':
|
||||
xmd = from_variant_dict(platform_mmd.get_xmd())
|
||||
@@ -1970,7 +1967,7 @@ class TestViews:
|
||||
data = json.loads(rv.data)
|
||||
assert rv.status_code == 201
|
||||
|
||||
mmd = Modulemd.Module().new_from_string(data[0]['modulemd'])
|
||||
mmd = module_build_service.utils.load_mmd(data[0]['modulemd'])
|
||||
assert len(mmd.get_dependencies()) == 1
|
||||
dep = mmd.get_dependencies()[0]
|
||||
if platform_override:
|
||||
@@ -1994,7 +1991,7 @@ class TestViews:
|
||||
mocked_regexes.return_value = [r'(?:\-LP\-)(.+)$']
|
||||
init_data(data_size=1, multiple_stream_versions=True)
|
||||
# Create a platform for the override so the build submission succeeds
|
||||
platform_mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
platform_mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
platform_mmd.set_stream('product1.3')
|
||||
import_mmd(db.session, platform_mmd)
|
||||
|
||||
@@ -2014,7 +2011,7 @@ class TestViews:
|
||||
data = json.loads(rv.data)
|
||||
assert rv.status_code == 201
|
||||
|
||||
mmd = Modulemd.Module().new_from_string(data[0]['modulemd'])
|
||||
mmd = module_build_service.utils.load_mmd(data[0]['modulemd'])
|
||||
assert len(mmd.get_dependencies()) == 1
|
||||
dep = mmd.get_dependencies()[0]
|
||||
# The buildrequire_override value should take precedence over the stream override from
|
||||
@@ -2031,7 +2028,7 @@ class TestViews:
|
||||
versioning and no virtual streams, that the dependency resolution succeeds.
|
||||
"""
|
||||
init_data(data_size=1, multiple_stream_versions=True)
|
||||
platform_mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
|
||||
platform_mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
|
||||
platform_mmd.set_stream('el8.0.0')
|
||||
import_mmd(db.session, platform_mmd)
|
||||
|
||||
@@ -2065,5 +2062,5 @@ class TestViews:
|
||||
post_url, data=json.dumps({'branch': 'product1.2', 'scmurl': scm_url}))
|
||||
assert rv.status_code == 201
|
||||
data = json.loads(rv.data)[0]
|
||||
mmd = Modulemd.Module().new_from_string(data['modulemd'])
|
||||
mmd = module_build_service.utils.load_mmd(data['modulemd'])
|
||||
assert mmd.get_xmd()['mbs']['disttag_marking'] == 'product12'
|
||||
|
||||
Reference in New Issue
Block a user