mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-04 19:28:49 +08:00
Return the latest base module in case stream_version_lte is used, but stream is not in x.y.z format.
This seems to be better behaviour than simply rejecting the module build completely. MBS still shows warning in the log that it cannot find any compatible module, but the build continues with the base module requested in the submitted modulemd.
This commit is contained in:
@@ -86,14 +86,7 @@ class DBResolver(GenericResolver):
|
||||
if module:
|
||||
return load_mmd(module.modulemd)
|
||||
|
||||
def get_module_modulemds(
|
||||
self,
|
||||
name,
|
||||
stream,
|
||||
version=None,
|
||||
context=None,
|
||||
strict=False,
|
||||
):
|
||||
def get_module_modulemds(self, name, stream, version=None, context=None, strict=False):
|
||||
"""
|
||||
Gets the module modulemds from the resolver.
|
||||
:param name: a string of the module's name
|
||||
@@ -149,20 +142,18 @@ class DBResolver(GenericResolver):
|
||||
"""
|
||||
builds = []
|
||||
with models.make_session(self.config) as session:
|
||||
stream_version = None
|
||||
if stream_version_lte:
|
||||
stream_in_xyz_format = len(str(models.ModuleBuild.get_stream_version(
|
||||
stream, right_pad=False))) >= 5
|
||||
if not stream_in_xyz_format:
|
||||
if stream_in_xyz_format:
|
||||
stream_version = models.ModuleBuild.get_stream_version(stream)
|
||||
else:
|
||||
log.warning(
|
||||
"Cannot get compatible base modules, because stream_version_let is used, "
|
||||
"Cannot get compatible base modules, because stream_version_lte is used, "
|
||||
"but stream %r is not in x.y.z format." % stream)
|
||||
return []
|
||||
stream_version = models.ModuleBuild.get_stream_version(stream)
|
||||
builds = models.ModuleBuild.get_last_builds_in_stream_version_lte(
|
||||
session, name, stream_version, virtual_streams, states)
|
||||
else:
|
||||
builds = models.ModuleBuild.get_last_builds_in_stream_version_lte(
|
||||
session, name, None, virtual_streams, states)
|
||||
builds = models.ModuleBuild.get_last_builds_in_stream_version_lte(
|
||||
session, name, stream_version, virtual_streams, states)
|
||||
|
||||
return [build.mmd() for build in builds]
|
||||
|
||||
|
||||
@@ -111,14 +111,7 @@ class GenericResolver(six.with_metaclass(ABCMeta)):
|
||||
raise NotImplementedError()
|
||||
|
||||
@abstractmethod
|
||||
def get_module_modulemds(
|
||||
self,
|
||||
name,
|
||||
stream,
|
||||
version=None,
|
||||
context=None,
|
||||
strict=False
|
||||
):
|
||||
def get_module_modulemds(self, name, stream, version=None, context=None, strict=False):
|
||||
raise NotImplementedError()
|
||||
|
||||
@abstractmethod
|
||||
|
||||
@@ -340,7 +340,7 @@ def get_mmds_required_by_module_recursively(
|
||||
mmds.setdefault(ns, [])
|
||||
mmds[ns].append(base_module)
|
||||
|
||||
# The currently submitted module build must be build only against "ready" base modules,
|
||||
# The currently submitted module build must be built only against "ready" base modules,
|
||||
# but its dependencies might have been built against some old platform which is already
|
||||
# EOL ("garbage" state). In order to find such old module builds, we need to include
|
||||
# also EOL platform streams.
|
||||
|
||||
Reference in New Issue
Block a user