forked from rpms/leapp-repository
Update ELevate patch
This commit is contained in:
parent
255d27546c
commit
a7c657c2b2
@ -1446,6 +1446,97 @@ index 0000000..21b2164
|
||||
+ line = 'versionOverride='
|
||||
+ with open(up2date_config, 'w') as f:
|
||||
+ f.writelines(config_data)
|
||||
diff --git a/repos/system_upgrade/cloudlinux/actors/scanrolloutrepositories/actor.py b/repos/system_upgrade/cloudlinux/actors/scanrolloutrepositories/actor.py
|
||||
new file mode 100644
|
||||
index 0000000..202e5f7
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/cloudlinux/actors/scanrolloutrepositories/actor.py
|
||||
@@ -0,0 +1,30 @@
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.libraries.actor import scanrolloutrepositories
|
||||
+from leapp.models import (
|
||||
+ CustomTargetRepositoryFile,
|
||||
+ CustomTargetRepository,
|
||||
+ UsedRepositories
|
||||
+)
|
||||
+from leapp.tags import FactsPhaseTag, IPUWorkflowTag
|
||||
+from leapp.libraries.common.cllaunch import run_on_cloudlinux
|
||||
+
|
||||
+
|
||||
+class ScanRolloutRepositories(Actor):
|
||||
+ """
|
||||
+ Scan for repository files associated with the Gradual Rollout System.
|
||||
+
|
||||
+ Normally these repositories aren't included into the upgrade, but if one of
|
||||
+ the packages on the system was installed from them, we can potentially run
|
||||
+ into problems if ignoring these.
|
||||
+
|
||||
+ Only those repositories that had packages installed from them are included.
|
||||
+ """
|
||||
+
|
||||
+ name = 'scan_rollout_repositories'
|
||||
+ consumes = (UsedRepositories)
|
||||
+ produces = (CustomTargetRepositoryFile, CustomTargetRepository)
|
||||
+ tags = (FactsPhaseTag, IPUWorkflowTag)
|
||||
+
|
||||
+ @run_on_cloudlinux
|
||||
+ def process(self):
|
||||
+ scanrolloutrepositories.process()
|
||||
diff --git a/repos/system_upgrade/cloudlinux/actors/scanrolloutrepositories/libraries/scanrolloutrepositories.py b/repos/system_upgrade/cloudlinux/actors/scanrolloutrepositories/libraries/scanrolloutrepositories.py
|
||||
new file mode 100644
|
||||
index 0000000..0a059f1
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/cloudlinux/actors/scanrolloutrepositories/libraries/scanrolloutrepositories.py
|
||||
@@ -0,0 +1,49 @@
|
||||
+import os
|
||||
+
|
||||
+from leapp.models import (
|
||||
+ CustomTargetRepositoryFile,
|
||||
+ CustomTargetRepository,
|
||||
+ UsedRepositories
|
||||
+)
|
||||
+from leapp.libraries.stdlib import api
|
||||
+from leapp.libraries.common import repofileutils
|
||||
+
|
||||
+REPO_DIR = '/etc/yum.repos.d'
|
||||
+ROLLOUT_MARKER = 'rollout'
|
||||
+CL_MARKERS = ['cloudlinux', 'imunify']
|
||||
+
|
||||
+
|
||||
+def process():
|
||||
+ used_list = []
|
||||
+ for used_repos in api.consume(UsedRepositories):
|
||||
+ for used_repo in used_repos.repositories:
|
||||
+ used_list.append(used_repo.repository)
|
||||
+
|
||||
+ for reponame in os.listdir(REPO_DIR):
|
||||
+ if ROLLOUT_MARKER not in reponame or not any(mark in reponame for mark in CL_MARKERS):
|
||||
+ continue
|
||||
+
|
||||
+ api.current_logger().debug("Detected a rollout repository file: {}".format(reponame))
|
||||
+
|
||||
+ full_repo_path = os.path.join(REPO_DIR, reponame)
|
||||
+ repofile = repofileutils.parse_repofile(full_repo_path)
|
||||
+
|
||||
+ # Ignore the repositories that are enabled, but have no packages installed from them.
|
||||
+ if not any(repo.repoid in used_list for repo in repofile.data):
|
||||
+ api.current_logger().debug("No used repositories found in {}, skipping".format(reponame))
|
||||
+ continue
|
||||
+ else:
|
||||
+ api.current_logger().debug("Rollout file {} has used repositories, adding".format(reponame))
|
||||
+
|
||||
+ for repo in repofile.data:
|
||||
+ # Don't enable all the rollout repositories wholesale, some might
|
||||
+ # be disabled and we want to keep that configuration.
|
||||
+ if repo.enabled:
|
||||
+ api.produce(CustomTargetRepository(
|
||||
+ repoid=repo.repoid,
|
||||
+ name=repo.name,
|
||||
+ baseurl=repo.baseurl,
|
||||
+ enabled=repo.enabled,
|
||||
+ ))
|
||||
+
|
||||
+ api.produce(CustomTargetRepositoryFile(file=full_repo_path))
|
||||
diff --git a/repos/system_upgrade/cloudlinux/actors/switchclnchannel/actor.py b/repos/system_upgrade/cloudlinux/actors/switchclnchannel/actor.py
|
||||
new file mode 100644
|
||||
index 0000000..ae01af1
|
||||
@ -1909,10 +2000,10 @@ index f4b02e9..c22165e 100644
|
||||
def test_pes_data_not_found(monkeypatch):
|
||||
def read_or_fetch_mocked(filename, directory="/etc/leapp/files", service=None, allow_empty=False):
|
||||
diff --git a/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py b/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py
|
||||
index 01f6df3..0bb0726 100644
|
||||
index 01f6df3..badb888 100644
|
||||
--- a/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py
|
||||
@@ -1,27 +1,65 @@
|
||||
@@ -1,27 +1,67 @@
|
||||
from leapp.actors import Actor
|
||||
from leapp.libraries.common import rhui
|
||||
-from leapp.models import InstalledRedHatSignedRPM, InstalledRPM, InstalledUnsignedRPM
|
||||
@ -1940,7 +2031,8 @@ index 01f6df3..0bb0726 100644
|
||||
+ 'bc4d06a08d8b756f'],
|
||||
+ 'eurolinux': ['75c333f418cd4a9e',
|
||||
+ 'b413acad6275f250',
|
||||
+ 'f7ad3e5a1c9fd080']
|
||||
+ 'f7ad3e5a1c9fd080'],
|
||||
+ 'scientific': ['b0b4183f192a7d7d']
|
||||
+}
|
||||
+
|
||||
+VENDOR_PACKAGERS = {
|
||||
@ -1950,6 +2042,7 @@ index 01f6df3..0bb0726 100644
|
||||
+ "almalinux": "AlmaLinux Packaging Team",
|
||||
+ "rocky": "infrastructure@rockylinux.org",
|
||||
+ "eurolinux": "EuroLinux",
|
||||
+ "scientific": "Scientific Linux",
|
||||
+}
|
||||
+
|
||||
+
|
||||
@ -1988,7 +2081,7 @@ index 01f6df3..0bb0726 100644
|
||||
|
||||
signed_pkgs = InstalledRedHatSignedRPM()
|
||||
unsigned_pkgs = InstalledUnsignedRPM()
|
||||
@@ -32,11 +70,11 @@ class RedHatSignedRpmScanner(Actor):
|
||||
@@ -32,11 +72,11 @@ class RedHatSignedRpmScanner(Actor):
|
||||
all_signed = [
|
||||
env
|
||||
for env in env_vars
|
||||
@ -2003,7 +2096,7 @@ index 01f6df3..0bb0726 100644
|
||||
|
||||
def is_gpg_pubkey(pkg):
|
||||
"""Check if gpg-pubkey pkg exists or LEAPP_DEVEL_RPMS_ALL_SIGNED=1
|
||||
@@ -44,15 +82,15 @@ class RedHatSignedRpmScanner(Actor):
|
||||
@@ -44,15 +84,15 @@ class RedHatSignedRpmScanner(Actor):
|
||||
gpg-pubkey is not signed as it would require another package
|
||||
to verify its signature
|
||||
"""
|
||||
@ -2024,7 +2117,7 @@ index 01f6df3..0bb0726 100644
|
||||
|
||||
def is_azure_pkg(pkg):
|
||||
"""Whitelist Azure config package."""
|
||||
@@ -68,16 +106,24 @@ class RedHatSignedRpmScanner(Actor):
|
||||
@@ -68,16 +108,24 @@ class RedHatSignedRpmScanner(Actor):
|
||||
for pkg in rpm_pkgs.items:
|
||||
if any(
|
||||
[
|
||||
@ -2345,13 +2438,17 @@ index 4ea33a2..aaec273 100644
|
||||
assert not api.produce.called
|
||||
diff --git a/repos/system_upgrade/common/actors/scanvendorrepofiles/actor.py b/repos/system_upgrade/common/actors/scanvendorrepofiles/actor.py
|
||||
new file mode 100644
|
||||
index 0000000..6c7f3a3
|
||||
index 0000000..dd27b28
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/actors/scanvendorrepofiles/actor.py
|
||||
@@ -0,0 +1,20 @@
|
||||
@@ -0,0 +1,27 @@
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.libraries.actor import scanvendorrepofiles
|
||||
+from leapp.models import CustomTargetRepository, CustomTargetRepositoryFile, ActiveVendorList
|
||||
+from leapp.models import (
|
||||
+ CustomTargetRepositoryFile,
|
||||
+ ActiveVendorList,
|
||||
+ VendorCustomTargetRepositoryList,
|
||||
+)
|
||||
+from leapp.tags import FactsPhaseTag, IPUWorkflowTag
|
||||
+from leapp.libraries.stdlib import api
|
||||
+
|
||||
@ -2363,23 +2460,31 @@ index 0000000..6c7f3a3
|
||||
+ """
|
||||
+
|
||||
+ name = "scan_vendor_repofiles"
|
||||
+ consumes = (ActiveVendorList)
|
||||
+ produces = (CustomTargetRepository, CustomTargetRepositoryFile)
|
||||
+ consumes = ActiveVendorList
|
||||
+ produces = (
|
||||
+ CustomTargetRepositoryFile,
|
||||
+ VendorCustomTargetRepositoryList,
|
||||
+ )
|
||||
+ tags = (FactsPhaseTag, IPUWorkflowTag)
|
||||
+
|
||||
+ def process(self):
|
||||
+ scanvendorrepofiles.process()
|
||||
diff --git a/repos/system_upgrade/common/actors/scanvendorrepofiles/libraries/scanvendorrepofiles.py b/repos/system_upgrade/common/actors/scanvendorrepofiles/libraries/scanvendorrepofiles.py
|
||||
new file mode 100644
|
||||
index 0000000..5a65f5a
|
||||
index 0000000..ba74be1
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/actors/scanvendorrepofiles/libraries/scanvendorrepofiles.py
|
||||
@@ -0,0 +1,68 @@
|
||||
@@ -0,0 +1,72 @@
|
||||
+import os
|
||||
+
|
||||
+from leapp.libraries.common import repofileutils
|
||||
+from leapp.libraries.stdlib import api
|
||||
+from leapp.models import CustomTargetRepository, CustomTargetRepositoryFile, ActiveVendorList
|
||||
+from leapp.models import (
|
||||
+ CustomTargetRepository,
|
||||
+ CustomTargetRepositoryFile,
|
||||
+ ActiveVendorList,
|
||||
+ VendorCustomTargetRepositoryList,
|
||||
+)
|
||||
+
|
||||
+
|
||||
+VENDORS_DIR = "/etc/leapp/files/vendors.d/"
|
||||
@ -2410,9 +2515,7 @@ index 0000000..5a65f5a
|
||||
+ for vendor_list in api.consume(ActiveVendorList):
|
||||
+ active_vendors.extend(vendor_list.data)
|
||||
+
|
||||
+ api.current_logger().debug(
|
||||
+ "Active vendor list: {}".format(active_vendors)
|
||||
+ )
|
||||
+ api.current_logger().debug("Active vendor list: {}".format(active_vendors))
|
||||
+
|
||||
+ if vendor_name not in active_vendors:
|
||||
+ api.current_logger().debug(
|
||||
@ -2427,18 +2530,19 @@ index 0000000..5a65f5a
|
||||
+ repofile = repofileutils.parse_repofile(full_repo_path)
|
||||
+
|
||||
+ api.produce(CustomTargetRepositoryFile(file=full_repo_path))
|
||||
+ for repo in repofile.data:
|
||||
+ api.current_logger().debug(
|
||||
+ "Loaded repository {} from file {}".format(repo.repoid, reponame)
|
||||
+ )
|
||||
+ api.produce(
|
||||
+ CustomTargetRepository(
|
||||
+ repoid=repo.repoid,
|
||||
+ name=repo.name,
|
||||
+ baseurl=repo.baseurl,
|
||||
+ enabled=repo.enabled,
|
||||
+ )
|
||||
+ )
|
||||
+
|
||||
+ custom_vendor_repos = [
|
||||
+ CustomTargetRepository(
|
||||
+ repoid=repo.repoid,
|
||||
+ name=repo.name,
|
||||
+ baseurl=repo.baseurl,
|
||||
+ enabled=repo.enabled,
|
||||
+ ) for repo in repofile.data
|
||||
+ ]
|
||||
+
|
||||
+ api.produce(
|
||||
+ VendorCustomTargetRepositoryList(vendor=vendor_name, repos=custom_vendor_repos)
|
||||
+ )
|
||||
+
|
||||
+ api.current_logger().info(
|
||||
+ "The {} directory exists, vendor repositories loaded.".format(VENDORS_DIR)
|
||||
@ -2581,30 +2685,57 @@ index 0000000..cb5c7ab
|
||||
+ assert api.current_logger.infomsg == msg
|
||||
+ assert not api.produce.called
|
||||
diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/actor.py b/repos/system_upgrade/common/actors/setuptargetrepos/actor.py
|
||||
index 00de073..fb86639 100644
|
||||
index 00de073..95cedcd 100644
|
||||
--- a/repos/system_upgrade/common/actors/setuptargetrepos/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/setuptargetrepos/actor.py
|
||||
@@ -12,6 +12,7 @@ from leapp.models import (
|
||||
UsedRepositories
|
||||
@@ -9,9 +9,11 @@ from leapp.models import (
|
||||
RHUIInfo,
|
||||
SkippedRepositories,
|
||||
TargetRepositories,
|
||||
- UsedRepositories
|
||||
+ UsedRepositories,
|
||||
+ VendorCustomTargetRepositoryList
|
||||
)
|
||||
from leapp.tags import FactsPhaseTag, IPUWorkflowTag
|
||||
+from leapp.libraries.stdlib import api
|
||||
|
||||
|
||||
class SetupTargetRepos(Actor):
|
||||
@@ -30,7 +32,8 @@ class SetupTargetRepos(Actor):
|
||||
RepositoriesFacts,
|
||||
RepositoriesBlacklisted,
|
||||
RHUIInfo,
|
||||
- UsedRepositories)
|
||||
+ UsedRepositories,
|
||||
+ VendorCustomTargetRepositoryList)
|
||||
produces = (TargetRepositories, SkippedRepositories)
|
||||
tags = (IPUWorkflowTag, FactsPhaseTag)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py
|
||||
index 3f34aed..2992037 100644
|
||||
index 3f34aed..9428ef6 100644
|
||||
--- a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py
|
||||
+++ b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py
|
||||
@@ -59,9 +59,20 @@ def _get_used_repo_dict():
|
||||
@@ -12,7 +12,8 @@ from leapp.models import (
|
||||
RHUIInfo,
|
||||
SkippedRepositories,
|
||||
TargetRepositories,
|
||||
- UsedRepositories
|
||||
+ UsedRepositories,
|
||||
+ VendorCustomTargetRepositoryList
|
||||
)
|
||||
|
||||
|
||||
def _setup_repomap_handler(src_repoids):
|
||||
@@ -58,10 +59,21 @@ def _get_used_repo_dict():
|
||||
return used
|
||||
|
||||
|
||||
-def _setup_repomap_handler(src_repoids):
|
||||
- repo_mappig_msg = next(api.consume(RepositoriesMapping), RepositoriesMapping())
|
||||
+def _setup_repomap_handler(src_repoids, mapping_list):
|
||||
+ combined_mapping = []
|
||||
+ combined_repositories = []
|
||||
+ # Depending on whether there are any vendors present, we might get more than one message.
|
||||
+ for msg in api.consume(RepositoriesMapping):
|
||||
+ for msg in mapping_list:
|
||||
+ combined_mapping.extend(msg.mapping)
|
||||
+ combined_repositories.extend(msg.repositories)
|
||||
+
|
||||
@ -2619,6 +2750,82 @@ index 3f34aed..2992037 100644
|
||||
# TODO(pstodulk): what about skip this completely and keep the default 'ga'..?
|
||||
default_channels = setuptargetrepos_repomap.get_default_repository_channels(repomap, src_repoids)
|
||||
repomap.set_default_channels(default_channels)
|
||||
@@ -77,22 +89,74 @@ def _get_mapped_repoids(repomap, src_repoids):
|
||||
return mapped_repoids
|
||||
|
||||
|
||||
+def _get_vendor_custom_repos(enabled_repos, mapping_list):
|
||||
+ # Look at what source repos from the vendor mapping were enabled.
|
||||
+ # If any of them are in beta, include vendor's custom repos in the list.
|
||||
+ # Otherwise skip them.
|
||||
+
|
||||
+ result = []
|
||||
+
|
||||
+ # Build a dict of vendor mappings for easy lookup.
|
||||
+ map_dict = {mapping.vendor: mapping for mapping in mapping_list if mapping.vendor}
|
||||
+
|
||||
+ for vendor_repolist in api.consume(VendorCustomTargetRepositoryList):
|
||||
+ vendor_repomap = map_dict[vendor_repolist.vendor]
|
||||
+
|
||||
+ # Find the beta channel repositories for the vendor.
|
||||
+ beta_repos = [
|
||||
+ x.repoid for x in vendor_repomap.repositories if x.channel == "beta"
|
||||
+ ]
|
||||
+ api.current_logger().debug(
|
||||
+ "Vendor {} beta repos: {}".format(vendor_repolist.vendor, beta_repos)
|
||||
+ )
|
||||
+
|
||||
+ # Are any of the beta repos present and enabled on the system?
|
||||
+ if any(rep in beta_repos for rep in enabled_repos):
|
||||
+ # If so, use all repos including beta in the upgrade.
|
||||
+ vendor_repos = vendor_repolist.repos
|
||||
+ else:
|
||||
+ # Otherwise filter beta repos out.
|
||||
+ vendor_repos = [repo for repo in vendor_repolist.repos if repo.repoid not in beta_repos]
|
||||
+
|
||||
+ result.extend([CustomTargetRepository(
|
||||
+ repoid=repo.repoid,
|
||||
+ name=repo.name,
|
||||
+ baseurl=repo.baseurl,
|
||||
+ enabled=repo.enabled,
|
||||
+ ) for repo in vendor_repos])
|
||||
+
|
||||
+ return result
|
||||
+
|
||||
+
|
||||
def process():
|
||||
# load all data / messages
|
||||
used_repoids_dict = _get_used_repo_dict()
|
||||
enabled_repoids = _get_enabled_repoids()
|
||||
excluded_repoids = _get_blacklisted_repoids()
|
||||
+
|
||||
+ mapping_list = list(api.consume(RepositoriesMapping))
|
||||
+
|
||||
custom_repos = _get_custom_target_repos()
|
||||
+ vendor_repos = _get_vendor_custom_repos(enabled_repoids, mapping_list)
|
||||
+
|
||||
+ api.current_logger().debug('Custom repos: {}'.format([f.repoid for f in custom_repos]))
|
||||
+ api.current_logger().debug('Vendor repos: {}'.format([f.repoid for f in vendor_repos]))
|
||||
+
|
||||
+ custom_repos.extend(vendor_repos)
|
||||
+
|
||||
+ api.current_logger().debug('Used repos: {}'.format(used_repoids_dict.keys()))
|
||||
+ api.current_logger().debug('Enabled repos: {}'.format(list(enabled_repoids)))
|
||||
|
||||
# TODO(pstodulk): isn't that a potential issue that we map just enabled repos
|
||||
# instead of enabled + used repos??
|
||||
# initialise basic data
|
||||
- repomap = _setup_repomap_handler(enabled_repoids)
|
||||
+ repomap = _setup_repomap_handler(enabled_repoids, mapping_list)
|
||||
mapped_repoids = _get_mapped_repoids(repomap, enabled_repoids)
|
||||
skipped_repoids = enabled_repoids & set(used_repoids_dict.keys()) - mapped_repoids
|
||||
|
||||
# Now get the info what should be the target RHEL repositories
|
||||
expected_repos = repomap.get_expected_target_pesid_repos(enabled_repoids)
|
||||
+ api.current_logger().debug('Expected repos: {}'.format(expected_repos))
|
||||
target_rhel_repoids = set()
|
||||
for target_pesid, target_pesidrepo in expected_repos.items():
|
||||
if not target_pesidrepo:
|
||||
diff --git a/repos/system_upgrade/common/actors/systemfacts/actor.py b/repos/system_upgrade/common/actors/systemfacts/actor.py
|
||||
index 59b12c8..85d4a09 100644
|
||||
--- a/repos/system_upgrade/common/actors/systemfacts/actor.py
|
||||
@ -2633,10 +2840,23 @@ index 59b12c8..85d4a09 100644
|
||||
def process(self):
|
||||
self.produce(systemfacts.get_sysctls_status())
|
||||
diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
index 7a8bd99..f59c909 100644
|
||||
index 7a8bd99..a1f8db8 100644
|
||||
--- a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
+++ b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
@@ -592,6 +592,7 @@ def _install_custom_repofiles(context, custom_repofiles):
|
||||
@@ -225,6 +225,12 @@ def _prep_repository_access(context, target_userspace):
|
||||
target_etc = os.path.join(target_userspace, 'etc')
|
||||
target_yum_repos_d = os.path.join(target_etc, 'yum.repos.d')
|
||||
backup_yum_repos_d = os.path.join(target_etc, 'yum.repos.d.backup')
|
||||
+
|
||||
+ # Copy RHN data independent from RHSM config
|
||||
+ if os.path.isdir('/etc/sysconfig/rhn'):
|
||||
+ run(['rm', '-rf', os.path.join(target_etc, 'sysconfig/rhn')])
|
||||
+ context.copytree_from('/etc/sysconfig/rhn', os.path.join(target_etc, 'sysconfig/rhn'))
|
||||
+
|
||||
if not rhsm.skip_rhsm():
|
||||
run(['rm', '-rf', os.path.join(target_etc, 'pki')])
|
||||
run(['rm', '-rf', os.path.join(target_etc, 'rhsm')])
|
||||
@@ -592,6 +598,7 @@ def _install_custom_repofiles(context, custom_repofiles):
|
||||
"""
|
||||
for rfile in custom_repofiles:
|
||||
_dst_path = os.path.join('/etc/yum.repos.d', os.path.basename(rfile.file))
|
||||
@ -2646,10 +2866,10 @@ index 7a8bd99..f59c909 100644
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/vendorreposignaturescanner/actor.py b/repos/system_upgrade/common/actors/vendorreposignaturescanner/actor.py
|
||||
new file mode 100644
|
||||
index 0000000..f74de27
|
||||
index 0000000..e28b880
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/actors/vendorreposignaturescanner/actor.py
|
||||
@@ -0,0 +1,70 @@
|
||||
@@ -0,0 +1,72 @@
|
||||
+import os
|
||||
+
|
||||
+from leapp.actors import Actor
|
||||
@ -2663,8 +2883,10 @@ index 0000000..f74de27
|
||||
+
|
||||
+class VendorRepoSignatureScanner(Actor):
|
||||
+ """
|
||||
+ Produce VendorSignatures msgs for the vendor signature files inside the
|
||||
+ Produce VendorSignatures messages for the vendor signature files inside the
|
||||
+ <VENDORS_DIR>.
|
||||
+ These messages are used to extend the list of pakcages Leapp will consider
|
||||
+ signed and will attempt to upgrade.
|
||||
+
|
||||
+ The messages are produced only if a "from" vendor repository
|
||||
+ listed indide its map matched one of the repositories active on the system.
|
||||
@ -2747,10 +2969,10 @@ index 0000000..1325647
|
||||
+ scan_vendor_repomaps()
|
||||
diff --git a/repos/system_upgrade/common/actors/vendorrepositoriesmapping/libraries/vendorrepositoriesmapping.py b/repos/system_upgrade/common/actors/vendorrepositoriesmapping/libraries/vendorrepositoriesmapping.py
|
||||
new file mode 100644
|
||||
index 0000000..204d0dc
|
||||
index 0000000..ba27cbb
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/actors/vendorrepositoriesmapping/libraries/vendorrepositoriesmapping.py
|
||||
@@ -0,0 +1,66 @@
|
||||
@@ -0,0 +1,76 @@
|
||||
+import os
|
||||
+
|
||||
+from leapp.libraries.common.config.version import get_target_major_version, get_source_major_version
|
||||
@ -2769,6 +2991,10 @@ index 0000000..204d0dc
|
||||
+ try:
|
||||
+ repomap_data = RepoMapData.load_from_dict(json_data)
|
||||
+
|
||||
+ # What repositories associated with the vendor are expected to be present
|
||||
+ # on a system with the current major version?
|
||||
+ # We need to know that to know what to look for in currently enabled
|
||||
+ # system repositories.
|
||||
+ api.produce(VendorSourceRepos(
|
||||
+ vendor=vendor_name,
|
||||
+ source_repoids=repomap_data.get_version_repoids(get_source_major_version())
|
||||
@ -2776,9 +3002,15 @@ index 0000000..204d0dc
|
||||
+
|
||||
+ mapping = repomap_data.get_mappings(get_source_major_version(), get_target_major_version())
|
||||
+ valid_major_versions = [get_source_major_version(), get_target_major_version()]
|
||||
+
|
||||
+ # This RepositoriesMapping message is different from the one produced by the
|
||||
+ # builtin actor because of the vendor field.
|
||||
+ # It can be used later to distinguish the messages provided from vendors and the one
|
||||
+ # from the OS upgrade data.
|
||||
+ api.produce(RepositoriesMapping(
|
||||
+ mapping=mapping,
|
||||
+ repositories=repomap_data.get_repositories(valid_major_versions)
|
||||
+ repositories=repomap_data.get_repositories(valid_major_versions),
|
||||
+ vendor=vendor_name
|
||||
+ ))
|
||||
+ except ModelViolationError as err:
|
||||
+ err_message = (
|
||||
@ -2818,7 +3050,7 @@ index 0000000..204d0dc
|
||||
+ # for repomap in vendor_repomap_collection.maps:
|
||||
+ # self.produce(repomap)
|
||||
diff --git a/repos/system_upgrade/common/libraries/config/version.py b/repos/system_upgrade/common/libraries/config/version.py
|
||||
index 03f3cd4..ae78fac 100644
|
||||
index 03f3cd4..2ab78ea 100644
|
||||
--- a/repos/system_upgrade/common/libraries/config/version.py
|
||||
+++ b/repos/system_upgrade/common/libraries/config/version.py
|
||||
@@ -13,8 +13,8 @@ OP_MAP = {
|
||||
@ -2827,7 +3059,7 @@ index 03f3cd4..ae78fac 100644
|
||||
# Note: 'rhel-alt' is detected when on 'rhel' with kernel 4.x
|
||||
- '7': {'rhel': ['7.9'], 'rhel-alt': ['7.6'], 'rhel-saphana': ['7.9']},
|
||||
- '8': {'rhel': ['8.5', '8.6']},
|
||||
+ '7': {'rhel': ['7.9'], 'rhel-alt': ['7.6'], 'rhel-saphana': ['7.9'], 'centos': ['7.9'], 'eurolinux': ['7.9'], 'ol': ['7.9'], 'cloudlinux': ['7.9']},
|
||||
+ '7': {'rhel': ['7.9'], 'rhel-alt': ['7.6'], 'rhel-saphana': ['7.9'], 'centos': ['7.9'], 'eurolinux': ['7.9'], 'ol': ['7.9'], 'cloudlinux': ['7.9'], 'scientific': ['7.9']},
|
||||
+ '8': {'rhel': ['8.5', '8.6', '8.7'], 'centos': ['8.5'], 'almalinux': ['8.6', '8.7'], 'eurolinux': ['8.6', '8.7'], 'ol': ['8.6', '8.7'], 'rocky': ['8.6', '8.7']},
|
||||
}
|
||||
|
||||
@ -3057,14 +3289,31 @@ index 0000000..de4056f
|
||||
+ topic = VendorTopic
|
||||
+ data = fields.List(fields.String())
|
||||
diff --git a/repos/system_upgrade/common/models/repositoriesmap.py b/repos/system_upgrade/common/models/repositoriesmap.py
|
||||
index c187333..a068a70 100644
|
||||
index c187333..ea6a75d 100644
|
||||
--- a/repos/system_upgrade/common/models/repositoriesmap.py
|
||||
+++ b/repos/system_upgrade/common/models/repositoriesmap.py
|
||||
@@ -92,3 +92,4 @@ class RepositoriesMapping(Model):
|
||||
|
||||
mapping = fields.List(fields.Model(RepoMapEntry), default=[])
|
||||
repositories = fields.List(fields.Model(PESIDRepositoryEntry), default=[])
|
||||
+ vendor = fields.Nullable(fields.String())
|
||||
diff --git a/repos/system_upgrade/common/models/targetrepositories.py b/repos/system_upgrade/common/models/targetrepositories.py
|
||||
index 3604772..33f5dc8 100644
|
||||
--- a/repos/system_upgrade/common/models/targetrepositories.py
|
||||
+++ b/repos/system_upgrade/common/models/targetrepositories.py
|
||||
@@ -21,6 +21,12 @@ class CustomTargetRepository(TargetRepositoryBase):
|
||||
enabled = fields.Boolean(default=True)
|
||||
|
||||
|
||||
+class VendorCustomTargetRepositoryList(Model):
|
||||
+ topic = TransactionTopic
|
||||
+ vendor = fields.String()
|
||||
+ repos = fields.List(fields.Model(CustomTargetRepository))
|
||||
+
|
||||
+
|
||||
class TargetRepositories(Model):
|
||||
topic = TransactionTopic
|
||||
rhel_repos = fields.List(fields.Model(RHELTargetRepository))
|
||||
diff --git a/repos/system_upgrade/common/models/vendorsignatures.py b/repos/system_upgrade/common/models/vendorsignatures.py
|
||||
new file mode 100644
|
||||
index 0000000..f456aec
|
||||
|
@ -43,7 +43,7 @@ py2_byte_compile "%1" "%2"}
|
||||
Epoch: 1
|
||||
Name: leapp-repository
|
||||
Version: 0.16.0
|
||||
Release: 6%{?dist}.elevate.4
|
||||
Release: 6%{?dist}.elevate.5
|
||||
Summary: Repositories for leapp
|
||||
|
||||
License: ASL 2.0
|
||||
|
Loading…
Reference in New Issue
Block a user