From 0d7120e13f6b92e60ef764752fa20e096e0dd2c2 Mon Sep 17 00:00:00 2001 From: ZhouWeitao Date: Wed, 17 May 2023 17:06:29 +0800 Subject: [PATCH 1/2] Setup 3rd repo available if some pkg installed from 3rd repo. Signed-off-by: ZhouWeitao --- .../el7toel8/actors/setup3rdrepos/actor.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 repos/system_upgrade/el7toel8/actors/setup3rdrepos/actor.py diff --git a/repos/system_upgrade/el7toel8/actors/setup3rdrepos/actor.py b/repos/system_upgrade/el7toel8/actors/setup3rdrepos/actor.py new file mode 100644 index 00000000..a983e6ed --- /dev/null +++ b/repos/system_upgrade/el7toel8/actors/setup3rdrepos/actor.py @@ -0,0 +1,42 @@ +import platform + +from leapp.actors import Actor +from leapp.libraries.common import repofileutils +from leapp.libraries.common.rpms import has_package +from leapp.models import (CustomTargetRepository, CustomTargetRepositoryFile, InstalledUnsignedRPM) +from leapp.tags import FactsPhaseTag, IPUWorkflowTag + +CANDIDATE_REPOS = ['nodesource', 'zabbix', 'zabbix-frontend'] + +class Setup3rdRepos(Actor): + """ + Setup 3rd repositories available if there is pkg installed from 3rd repo. + """ + + name = 'setup3rdrepos' + consumes = (CustomTargetRepositoryFile, InstalledUnsignedRPM) + produces = (CustomTargetRepository,) + tags = (IPUWorkflowTag, FactsPhaseTag) + + def process(self): + repos_3rd = set() + for rpm_pkgs in self.consume(InstalledUnsignedRPM): + for pkg in rpm_pkgs.items: + if pkg.repository in CANDIDATE_REPOS: + repos_3rd.add(pkg.repository) + + custom_repos_map = {} + for ctrf in self.consume(CustomTargetRepositoryFile): + repofile = repofileutils.parse_repofile(ctrf.file) + for repo in repofile.data: + custom_repos_map[repo.repoid] = repo + + for repo in repos_3rd: + repoid = repo + '-migrate' + if repoid in custom_repos_map.keys(): + self.produce(CustomTargetRepository( + repoid=custom_repos_map[repoid].repoid, + name=custom_repos_map[repoid].name, + baseurl=custom_repos_map[repoid].baseurl, + enabled=True, + )) -- Gitee From c2a0f18fc3b143cd03aad56dd9defaf74412154f Mon Sep 17 00:00:00 2001 From: wangcichen Date: Tue, 16 May 2023 23:20:44 +0800 Subject: [PATCH 2/2] Fix bug with existing symlink in handleyumconfig Signed-off-by: wangcichen --- repos/system_upgrade/el7toel8/tools/handleyumconfig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/repos/system_upgrade/el7toel8/tools/handleyumconfig b/repos/system_upgrade/el7toel8/tools/handleyumconfig index af0bc48c..67dc94d8 100755 --- a/repos/system_upgrade/el7toel8/tools/handleyumconfig +++ b/repos/system_upgrade/el7toel8/tools/handleyumconfig @@ -10,15 +10,17 @@ is_dir_empty() { handle_dir() { # Move all files from $1 to $2 when the /etc/yum/$1 is not empty + # and not already a link # Then remove the $1 directory and relink it to $2 # param $1: dirname under /etc/yum path # param $2: dirname under /etc/dnf path + if [ "$(readlink /etc/yum/$1)" == "../dnf/$2" ]; then + return + fi if ! is_dir_empty "/etc/yum/$1"; then mv /etc/yum/$1/* /etc/dnf/$2/ fi - # FIXME: do not care whether these were already symlinks for now - # just remove it rm -rf /etc/yum/$1 #relink -- Gitee