diff --git a/0026-Add-checkbaota-actor.patch b/0026-Add-checkbaota-actor.patch new file mode 100644 index 0000000000000000000000000000000000000000..85ff5b2fa29ed3a2edbcb8e887a1dac0f3fd79ca --- /dev/null +++ b/0026-Add-checkbaota-actor.patch @@ -0,0 +1,84 @@ +From 9eab504e1cbc6868b9412617f555197331805085 Mon Sep 17 00:00:00 2001 +From: yuki1109 <750172132@qq.com> +Date: Wed, 1 Jun 2022 23:25:25 +0800 +Subject: [PATCH] Add checkbaota actor + +Signed-off-by: yuki1109 <750172132@qq.com> +--- + .../el7toel8/actors/checkbaota/actor.py | 36 +++++++++++++++++++ + .../checkbaota/tests/test_checkbaota.py | 19 ++++++++++ + 2 files changed, 55 insertions(+) + create mode 100644 repos/system_upgrade/el7toel8/actors/checkbaota/actor.py + create mode 100644 repos/system_upgrade/el7toel8/actors/checkbaota/tests/test_checkbaota.py + +diff --git a/repos/system_upgrade/el7toel8/actors/checkbaota/actor.py b/repos/system_upgrade/el7toel8/actors/checkbaota/actor.py +new file mode 100644 +index 0000000..808118b +--- /dev/null ++++ b/repos/system_upgrade/el7toel8/actors/checkbaota/actor.py +@@ -0,0 +1,36 @@ ++from leapp.actors import Actor ++from leapp.libraries.common.rpms import has_package ++from leapp.models import InstalledRPM ++from leapp.reporting import Report, create_report ++from leapp import reporting ++from leapp.reporting import create_report ++from leapp.tags import ChecksPhaseTag, IPUWorkflowTag ++import subprocess ++ ++class Checkbaota(Actor): ++ """ ++ Check if baota is installed. If yes, stop upgrade ++ """ ++ ++ name = 'checkbaota' ++ consumes = (InstalledRPM,) ++ produces = (Report,) ++ tags = (ChecksPhaseTag, IPUWorkflowTag) ++ ++ def process(self): ++ if has_package(InstalledRPM,"openssl"): ++ try: ++ ret = subprocess.check_output(["bt","default"]) ++ if "BT-Panel default info" in ret: ++ create_report([ ++ reporting.Title('Baota is installed, openssl version cannot be processed during upgrade.'), ++ reporting.Summary( ++ 'Baota has openssl-libs cannot be updated to Anolis OS 8.\n' ++ 'You should first backup your application files and data when baota requires openssl-libs. Secondly, install new version for baota after migration and recover the data.'), ++ reporting.Severity(reporting.Severity.HIGH), ++ reporting.Remediation(hint='Please uninstall baota, and then preupgrade again.'), ++ reporting.Flags([reporting.Flags.INHIBITOR]) ++ ]) ++ except: ++ pass ++ +diff --git a/repos/system_upgrade/el7toel8/actors/checkbaota/tests/test_checkbaota.py b/repos/system_upgrade/el7toel8/actors/checkbaota/tests/test_checkbaota.py +new file mode 100644 +index 0000000..253b272 +--- /dev/null ++++ b/repos/system_upgrade/el7toel8/actors/checkbaota/tests/test_checkbaota.py +@@ -0,0 +1,19 @@ ++from leapp.snactor.fixture import current_actor_context ++from leapp.models import InstalledRedHatSignedRPM, RPM ++from leapp.reporting import Report ++ ++RH_PACKAGER = 'Red Hat, Inc. ' ++ ++ ++def create_modulesfacts(installed_rpm): ++ return InstalledRedHatSignedRPM(items=installed_rpm) ++ ++ ++def test_actor_with_openssl_package(current_actor_context): ++ with_openssl = [ ++ RPM(name='openssl', version='1.0.2k', release='1.sm01', epoch='1', packager=RH_PACKAGER, arch='noarch', ++ pgpsig='RSA/SHA256, Mon 01 Jan 1970 00:00:00 AM -03, Key ID 199e2f91fd431d51'), ++ ++ current_actor_context.feed(create_modulesfacts(installed_rpm=with_openssl)) ++ current_actor_context.run() ++ assert current_actor_context.consume(Report) +\ No newline at end of file +-- +2.19.1.6.gb485710b + diff --git a/leapp-repository-install.sh b/leapp-repository-install.sh index 8ef0fee833ed9c46b04fec3920bad0440e871e9f..32fb9949515adf3ae89cab33a9187f7b6cbebf79 100644 --- a/leapp-repository-install.sh +++ b/leapp-repository-install.sh @@ -1,5 +1,35 @@ #! /bin/bash +if [[ "$1" == "-v" ]];then + echo "Use -v" +elif [ ! -n "$1" ];then + echo "Default mode" +else + echo "Please use the correct method" + exit 0 +fi + +while getopts "v:" opt; do + case $opt in + v) + if [[ "$OPTARG" == "8.2" ]];then + echo "put $OPTARG with -v" + sed -i "s/anolis\/\(\w*\.*\w*\)\//anolis\/$OPTARG\//g" ./leapp_upgrade_repositories.repo + elif [[ "$OPTARG" == "8.4" ]];then + echo "put $OPTARG with -v" + sed -i "s/anolis\/\(\w*\.*\w*\)\//anolis\/$OPTARG\//g" ./leapp_upgrade_repositories.repo + else + echo "-v $OPTARG is not available" + exit 0 + fi + ;; + \?) + echo "Please use -v only" + exit 0 + ;; + esac +done + if [ -d /usr/share/leapp-repository ]; then echo "leapp-reposiroty is already installed." exit 0 @@ -37,7 +67,7 @@ version=0.13.0 rm -rf leapp-repository-$version tar xf leapp-repository-${version}.tar.gz cd leapp-repository-$version -for p in $(ls ../*.patch) +for p in $(ls ../00*.patch) do patch -p1 < $p done diff --git a/leapp-repository.spec b/leapp-repository.spec index c4071d73465916e1574c0855aca9403d40285083..45428dd77a535570523859e66ff13674660a67e8 100644 --- a/leapp-repository.spec +++ b/leapp-repository.spec @@ -11,7 +11,7 @@ }\ py2_byte_compile "%1" "%2"} -%define anolis_release 1 +%define anolis_release 2 Name: leapp-repository Version: 0.13.0 @@ -51,6 +51,7 @@ Patch22: 0022-add-checklvm2cluster.patch Patch23: 0023-fix-kernel-version-check-of-anolis-kernel.patch Patch24: 0024-remove-unofficial-url.patch Patch25: 0025-add-check-openssl11-libs.patch +Patch26: 0026-Add-checkbaota-actor.patch BuildArch: noarch BuildRequires: python-devel @@ -173,6 +174,9 @@ done; # no files here %changelog +* Tue Jun 14 2022 Weitao Zhou - 0.13.0-2.2 +- Add checkbaota actor + * Fri Feb 18 2022 Chunmei Xu - 0.13.0-2.1 - Add support for centos 7.x and support upgrade to anolis8 - update description from RHEL8 to Anolis8 and add data files