diff --git a/leapp-0001-add-remove-actor-parament.patch b/leapp-0001-add-remove-actor-parament.patch new file mode 100644 index 0000000000000000000000000000000000000000..94d05d6e133b62e9ce0d8cb08c4b74c3a0a9d4a1 --- /dev/null +++ b/leapp-0001-add-remove-actor-parament.patch @@ -0,0 +1,97 @@ +From 45813d25eacb9f1fb2f25a1be9492e7c08cf8aa2 Mon Sep 17 00:00:00 2001 +From: yuki1109 <750172132@qq.com> +Date: Wed, 1 Jun 2022 20:08:33 +0800 +Subject: [PATCH] Add remove actor parament + +Signed-off-by: yuki1109 <750172132@qq.com> +--- + leapp/cli/upgrade/__init__.py | 14 ++++++++++---- + leapp/workflows/__init__.py | 5 ++++- + 2 files changed, 14 insertions(+), 5 deletions(-) + +diff --git a/leapp/cli/upgrade/__init__.py b/leapp/cli/upgrade/__init__.py +index a6a9935..c7e65af 100644 +--- a/leapp/cli/upgrade/__init__.py ++++ b/leapp/cli/upgrade/__init__.py +@@ -191,6 +191,7 @@ def process_whitelist_experimental(repositories, workflow, configuration, logger + @command_opt('verbose', is_flag=True, help='Enable verbose logging', inherit=False) + @command_opt('no-rhsm', is_flag=True, help='Use only custom repositories and skip actions' + ' with Red Hat Subscription Manager') ++@command_opt('removeactor',action='append',metavar='ActorName',help='Remove specified actor') + @command_opt('enablerepo', action='append', metavar='', + help='Enable specified repository. Can be used multiple times.') + def upgrade(args): +@@ -225,7 +226,9 @@ def upgrade(args): + archive_logfiles() + logger = configure_logger('leapp-upgrade.log') + os.environ['LEAPP_EXECUTION_ID'] = context +- ++ actor_name = [] ++ if args.removeactor: ++ actor_name = args.removeactor + if args.resume: + logger.info("Resuming execution after phase: %s", skip_phases_until) + try: +@@ -238,7 +241,7 @@ def upgrade(args): + with beautify_actor_exception(): + logger.info("Using answerfile at %s", answerfile_path) + workflow.load_answers(answerfile_path, userchoices_path) +- workflow.run(context=context, skip_phases_until=skip_phases_until, skip_dialogs=True) ++ workflow.run(context=context, skip_phases_until=skip_phases_until, skip_dialogs=True,actor_name=actor_name) + + logger.info("Answerfile will be created at %s", answerfile_path) + workflow.save_answers(answerfile_path, userchoices_path) +@@ -259,6 +262,7 @@ def upgrade(args): + @command_opt('verbose', is_flag=True, help='Enable verbose logging', inherit=False) + @command_opt('no-rhsm', is_flag=True, help='Use only custom repositories and skip actions' + ' with Red Hat Subscription Manager') ++@command_opt('removeactor',action='append',metavar='ActorName',help='Remove specified actor') + @command_opt('enablerepo', action='append', metavar='', + help='Enable specified repository. Can be used multiple times.') + def preupgrade(args): +@@ -276,7 +280,9 @@ def preupgrade(args): + archive_logfiles() + logger = configure_logger('leapp-preupgrade.log') + os.environ['LEAPP_EXECUTION_ID'] = context +- ++ actor_name = [] ++ if args.removeactor: ++ actor_name = args.removeactor + try: + repositories = load_repositories() + except LeappError as exc: +@@ -288,7 +294,7 @@ def preupgrade(args): + workflow.load_answers(answerfile_path, userchoices_path) + until_phase = 'ReportsPhase' + logger.info('Executing workflow until phase: %s', until_phase) +- workflow.run(context=context, until_phase=until_phase, skip_dialogs=True) ++ workflow.run(context=context, until_phase=until_phase, skip_dialogs=True,actor_name=actor_name) + + logger.info("Answerfile will be created at %s", answerfile_path) + workflow.save_answers(answerfile_path, userchoices_path) +diff --git a/leapp/workflows/__init__.py b/leapp/workflows/__init__.py +index 7d8535e..8b78cd0 100644 +--- a/leapp/workflows/__init__.py ++++ b/leapp/workflows/__init__.py +@@ -230,7 +230,7 @@ class Workflow(with_metaclass(WorkflowMeta)): + if phase: + return phase in [name for phs in self._phase_actors for name in phase_names(phs)] + +- def run(self, context=None, until_phase=None, until_actor=None, skip_phases_until=None, skip_dialogs=False): ++ def run(self, context=None, until_phase=None, until_actor=None, skip_phases_until=None, skip_dialogs=False,actor_name=[]): + """ + Executes the workflow + +@@ -301,6 +301,9 @@ class Workflow(with_metaclass(WorkflowMeta)): + current_logger.info("Starting stage {stage} of phase {phase}".format( + phase=phase[0].name, stage=stage.stage)) + for actor in stage.actors: ++ if actor.name in actor_name: ++ current_logger.info("Skip actor: {actor}".format(actor=actor.name)) ++ continue + if early_finish: + return + designation = '' +-- +2.24.3 (Apple Git-128) + diff --git a/leapp-0002-add-command-no-rhsm_skip.patch b/leapp-0002-add-command-no-rhsm_skip.patch new file mode 100644 index 0000000000000000000000000000000000000000..edcd1f0204bccf52ee31214fd4b26fc42b426853 --- /dev/null +++ b/leapp-0002-add-command-no-rhsm_skip.patch @@ -0,0 +1,108 @@ +From e8aafed7ab22909f8210c98507d141f773554eb2 Mon Sep 17 00:00:00 2001 +From: FrankCui713 +Date: Wed, 1 Jun 2022 20:30:08 +0800 +Subject: [PATCH] add command no-rhsm_skip + +Signed-off-by: FrankCui713 +--- + leapp/cli/upgrade/__init__.py | 19 +++++++++++++++++-- + leapp/workflows/__init__.py | 5 ++++- + 2 files changed, 21 insertions(+), 3 deletions(-) + +diff --git a/leapp/cli/upgrade/__init__.py b/leapp/cli/upgrade/__init__.py +index c7e65af..d338b8b 100644 +--- a/leapp/cli/upgrade/__init__.py ++++ b/leapp/cli/upgrade/__init__.py +@@ -150,6 +150,7 @@ def handle_output_level(args): + + + def prepare_configuration(args): ++ skip_actors = [] + """Returns a configuration dict object while setting a few env vars as a side-effect""" + if args.whitelist_experimental: + args.whitelist_experimental = list(itertools.chain(*[i.split(',') for i in args.whitelist_experimental])) +@@ -161,12 +162,20 @@ def prepare_configuration(args): + os.environ['LEAPP_NO_RHSM'] = '1' + elif os.getenv('LEAPP_NO_RHSM') != '1': + os.environ['LEAPP_NO_RHSM'] = os.getenv('LEAPP_DEVEL_SKIP_RHSM', '0') ++ if args.no_rhsm_skip: ++ os.environ['LEAPP_NO_RHSM'] = '1' ++ args.no_rhsm_skip = list(itertools.chain(*[i.split(',') for i in args.no_rhsm_skip])) ++ # character to lower ++ skip_actors = [skipactor.lower() for skipactor in args.no_rhsm_skip if isinstance(skipactor,str)==True] ++ elif os.getenv('LEAPP_NO_RHSM') != '1': ++ os.environ['LEAPP_NO_RHSM'] = os.getenv('LEAPP_DEVEL_SKIP_RHSM', '0') + if args.enablerepo: + os.environ['LEAPP_ENABLE_REPOS'] = ','.join(args.enablerepo) + configuration = { + 'debug': os.getenv('LEAPP_DEBUG', '0'), + 'verbose': os.getenv('LEAPP_VERBOSE', '0'), + 'whitelist_experimental': args.whitelist_experimental or (), ++ 'skip_actor':skip_actors or [] + } + return configuration + +@@ -191,6 +200,7 @@ def process_whitelist_experimental(repositories, workflow, configuration, logger + @command_opt('verbose', is_flag=True, help='Enable verbose logging', inherit=False) + @command_opt('no-rhsm', is_flag=True, help='Use only custom repositories and skip actions' + ' with Red Hat Subscription Manager') ++@command_opt('no-rhsm_skip', action='append', metavar='ActorName', help='Enable skip actors with no-rhsm') + @command_opt('removeactor',action='append',metavar='ActorName',help='Remove specified actor') + @command_opt('enablerepo', action='append', metavar='', + help='Enable specified repository. Can be used multiple times.') +@@ -241,7 +251,9 @@ def upgrade(args): + with beautify_actor_exception(): + logger.info("Using answerfile at %s", answerfile_path) + workflow.load_answers(answerfile_path, userchoices_path) +- workflow.run(context=context, skip_phases_until=skip_phases_until, skip_dialogs=True,actor_name=actor_name) ++ skip_actors = configuration.get('skip_actor') ++ logger.info("The skipped actors will be:" + " ".join(skip_actors)) ++ workflow.run(context=context, skip_phases_until=skip_phases_until, skip_dialogs=True, actor_name=actor_name, skip_actors=skip_actors) + + logger.info("Answerfile will be created at %s", answerfile_path) + workflow.save_answers(answerfile_path, userchoices_path) +@@ -262,6 +274,7 @@ def upgrade(args): + @command_opt('verbose', is_flag=True, help='Enable verbose logging', inherit=False) + @command_opt('no-rhsm', is_flag=True, help='Use only custom repositories and skip actions' + ' with Red Hat Subscription Manager') ++@command_opt('no-rhsm_skip', action='append', metavar='ActorName', help='Enable skip actors with no-rhsm') + @command_opt('removeactor',action='append',metavar='ActorName',help='Remove specified actor') + @command_opt('enablerepo', action='append', metavar='', + help='Enable specified repository. Can be used multiple times.') +@@ -294,7 +307,9 @@ def preupgrade(args): + workflow.load_answers(answerfile_path, userchoices_path) + until_phase = 'ReportsPhase' + logger.info('Executing workflow until phase: %s', until_phase) +- workflow.run(context=context, until_phase=until_phase, skip_dialogs=True,actor_name=actor_name) ++ skip_actors = configuration.get('skip_actor') ++ logger.info("The skipped actors will be:" + " ".join(skip_actors)) ++ workflow.run(context=context, until_phase=until_phase, skip_dialogs=True, actor_name=actor_name, skip_actors=skip_actors) + + logger.info("Answerfile will be created at %s", answerfile_path) + workflow.save_answers(answerfile_path, userchoices_path) +diff --git a/leapp/workflows/__init__.py b/leapp/workflows/__init__.py +index 8b78cd0..e52b7b8 100644 +--- a/leapp/workflows/__init__.py ++++ b/leapp/workflows/__init__.py +@@ -230,7 +230,8 @@ class Workflow(with_metaclass(WorkflowMeta)): + if phase: + return phase in [name for phs in self._phase_actors for name in phase_names(phs)] + +- def run(self, context=None, until_phase=None, until_actor=None, skip_phases_until=None, skip_dialogs=False,actor_name=[]): ++ def run(self, context=None, until_phase=None, until_actor=None, skip_phases_until=None, skip_dialogs=False,actor_name=[], ++ skip_actors=[]): + """ + Executes the workflow + +@@ -306,6 +307,8 @@ class Workflow(with_metaclass(WorkflowMeta)): + continue + if early_finish: + return ++ if actor.name in skip_actors: #skip the actor ++ continue + designation = '' + if ExperimentalTag in actor.tags: + designation = '[EXPERIMENTAL]' +-- +1.8.3.1 + diff --git a/leapp-install.sh b/leapp-install.sh index f6123203fcf742cf9542cb6e5466029dd9780c83..9cba9cb317d326be349368586fca0eb69b6b7756 100644 --- a/leapp-install.sh +++ b/leapp-install.sh @@ -22,6 +22,10 @@ fi version=0.12.0 tar xf leapp-${version}.tar.gz cd leapp-${version} +for p in $(ls ../leapp*.patch) +do + patch -p1 < $p +done /usr/bin/python2 setup.py build cp man/snactor.1 /usr/share/man/man1 diff --git a/leapp.spec b/leapp.spec index 1699fb8da63099efaa4b4bc7ba38c4cd455391fe..ca4226135a082d9f5b3056f7e988f196345e4e0e 100644 --- a/leapp.spec +++ b/leapp.spec @@ -1,3 +1,4 @@ +%define anolis_release .0.1 # IMPORTANT: this is for the leapp-framework capability (it's not the real # version of the leapp). The capability reflects changes in api and whatever # functionality important from the point of repository. In case of @@ -27,7 +28,7 @@ Name: leapp Version: 0.12.0 -Release: 1%{?dist} +Release: 1%{anolis_release}%{?dist} Summary: OS & Application modernization framework License: ASL 2.0 @@ -35,6 +36,9 @@ URL: https://oamg.github.io/leapp/ Source0: https://github.com/oamg/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildArch: noarch +Patch0001: leapp-0001-add-remove-actor-parament.patch +Patch0002: leapp-0002-add-command-no-rhsm_skip.patch + %if !0%{?fedora} %if %{with python3} Requires: python3-%{name} = %{version}-%{release} @@ -152,6 +156,8 @@ Python 3 leapp framework libraries. ################################################## %prep %setup -n %{name}-%{version} +%patch0001 -p1 +%patch0002 -p1 ################################################## # Build @@ -272,6 +278,10 @@ rm -f %{buildroot}/%{_bindir}/leapp # no files here %changelog +* Tue Jun 14 2022 Weitao Zhou - 0.12.0-1.0.1 +- patch: add parament remove-actor (yuki1109) +- patch: add command no rhsm_skip (FrankCui713) + * Thu Feb 04 2021 Dominik Rehak - 0.12.0-1 - Rebase to v0.12.0 - Bump leapp-framework capability to 1.4