import leapp-0.15.1-1.el8

This commit is contained in:
CentOS Sources 2023-02-22 02:11:50 +00:00 committed by root
parent 9dbbcb86c4
commit 38f5fa6614
19 changed files with 7 additions and 1315 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/leapp-0.15.0.tar.gz
SOURCES/leapp-0.15.1.tar.gz

View File

@ -1 +1 @@
36cdd3d8d957a500c8dfe8dfb90ecd8c1ef84737 SOURCES/leapp-0.15.0.tar.gz
85884622ba869887d06166c29c0a72b91c01a04f SOURCES/leapp-0.15.1.tar.gz

View File

@ -1,50 +0,0 @@
From 84de08e3fe25c7eadf5cbb2f18b83acf3536fc2a Mon Sep 17 00:00:00 2001
From: Inessa Vasilevskaya <ivasilev@redhat.com>
Date: Tue, 6 Sep 2022 15:26:52 +0200
Subject: [PATCH] Make checks for missing answers more strict
Previously only presence of one section in the answerfile
has been verified, which led to false-positive preupgrade
reports when some other key has been present in the
dialog section instead of the required one.
OAMG-7521
---
leapp/messaging/__init__.py | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/leapp/messaging/__init__.py b/leapp/messaging/__init__.py
index 1ecc42e..9896179 100644
--- a/leapp/messaging/__init__.py
+++ b/leapp/messaging/__init__.py
@@ -152,10 +152,17 @@ class BaseMessaging(object):
"""
self._stop_after_phase.set(True)
+ def _unanswered_questions(self, dialog):
+ userchoices = dialog.get_answers(self._answers)
+ res = [s for s in dialog.answerfile_sections.keys() if s.split('.', 2)[1] not in userchoices]
+ return res
+
def register_dialog(self, dialog, actor):
+ # FIXME(ivasilev) Make sure it works correctly in case of a dialog with several questions. Currently there
+ # is no such dialog in actors but this code should be revisited if this changes. OAMG-7523
self._dialogs.append(dialog)
- userchoices = dialog.get_answers(self._answers)
- if not userchoices:
+ unanswered = self._unanswered_questions(dialog)
+ if unanswered:
# produce DialogModel messages for all the dialogs that don't have answers in answerfile
stable_key = dialog.key if dialog.key else hashlib.sha1(
','.join(sorted(dialog.answerfile_sections.keys())).encode('utf-8')).hexdigest()
@@ -164,6 +171,7 @@ class BaseMessaging(object):
key=stable_key), actor)
else:
# update dialogs with answers from answerfile. That is necessary for proper answerfile generation
+ userchoices = dialog.get_answers(self._answers)
for component, value in userchoices.items():
dialog_component = dialog.component_by_key(component)
if dialog_component:
--
2.37.2

View File

@ -1,219 +0,0 @@
From 46f589c539fb9053c5017f02d9303a324bfca6a2 Mon Sep 17 00:00:00 2001
From: Matej Matuska <75834032+matejmatuska@users.noreply.github.com>
Date: Thu, 4 Aug 2022 17:30:34 +0200
Subject: [PATCH 02/16] Add Makefile target for building RPMs locally and in
containers
Add `build` target to build locally and `build_container` to build
locally in a container. Building in containers has the benefit of being
able to build on all the different platforms e.g. both on el7 and el8.
Run `make build` to build locally.
Run `make build_container` to build in a container. Note that
BUILD_CONTAINER environment variable must be set.
Run `clean_containers` to clean up container images used for building.
The containers are built from Containerfiles in `res/container-builds/`.
Since Containerfiles for all the Fedora versions would differ only in the `FROM`
statement, a generic Containerfile `Containerfile.fedora_generic` is
used and the `FROM` statement is inserted in the Makefile.
For el7 builds CentOS 7 container is used, because rpm-build package
is not available in ubi7 image.
Builds cannot be run in parallel because containers operate on the same
files, which would result in them conflicting.
Also update `.gitignore` to exclude build files from git.
---
.gitignore | 5 ++
Makefile | 63 +++++++++++++++++--
res/container-builds/Containerfile.centos7 | 11 ++++
.../Containerfile.fedora_generic | 12 ++++
res/container-builds/Containerfile.ubi8 | 12 ++++
5 files changed, 97 insertions(+), 6 deletions(-)
create mode 100644 res/container-builds/Containerfile.centos7
create mode 100644 res/container-builds/Containerfile.fedora_generic
create mode 100644 res/container-builds/Containerfile.ubi8
diff --git a/.gitignore b/.gitignore
index d9ae04d..e9c1edb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,8 @@ res/schema/schemas.py
leapp.db
# do not ignore the directory with tests...
!tests/scripts/
+
+packaging/BUILD/
+packaging/RPMS/
+packaging/SRPMS/
+packaging/sources/
diff --git a/Makefile b/Makefile
index 59d5118..22d29a4 100644
--- a/Makefile
+++ b/Makefile
@@ -76,7 +76,13 @@ help:
@echo " - available containers are: rhel7, rhel8, rhel9"
@echo " test_container_all runs linter and tests in all available containers"
@echo " lint runs just the linter"
- @echo " clean_containers cleans up all testing containers"
+ @echo " build create the RPM"
+ @echo " build_container create the RPM in container"
+ @echo " - set BUILD_CONTAINER to select the container"
+ @echo " - available containers are: el7, el8, f35, f36, rawhide"
+ @echo " - this can't be used to build in parallel,"
+ @echo " as build containers operate on the same files"
+ @echo " clean_containers clean container images used for building"
@echo ""
@echo "Possible use:"
@echo " make <target>"
@@ -85,11 +91,12 @@ help:
@echo " PR=7 SUFFIX='my_additional_suffix' make <target>"
@echo " MR=6 COPR_CONFIG='path/to/the/config/copr/file' <target>"
@echo " TEST_CONTAINER=rhel7 make test_container"
+ @echo " BUILD_CONTAINER=el7 make build_container"
@echo ""
clean:
@echo "--- Clean repo ---"
- @rm -rf packaging/{sources,SRPMS}/
+ @rm -rf packaging/{sources,SRPMS,BUILD,BUILDROOT,RPMS}/
@rm -rf build/ dist/ *.egg-info
@find . -name '__pycache__' -exec rm -fr {} +
@find . -name '*.pyc' -exec rm -f {} +
@@ -97,7 +104,7 @@ clean:
prepare: clean
@echo "--- Prepare build directories ---"
- @mkdir -p packaging/{sources,SRPMS}/
+ @mkdir -p packaging/{sources,SRPMS,BUILD,BUILDROOT,RPMS}/
source: prepare
@echo "--- Create source tarball ---"
@@ -123,6 +130,50 @@ copr_build: srpm
@copr-cli --config $(_COPR_CONFIG) build $(_COPR_REPO) \
packaging/SRPMS/${PKGNAME}-${VERSION}-${RELEASE}*.src.rpm
+build: source
+ @echo "--- Build RPM ${PKGNAME}-${VERSION}-${RELEASE}.el$(DIST_VERSION).rpm ---"
+ @cp packaging/$(PKGNAME).spec packaging/$(PKGNAME).spec.bak
+ @sed -i "s/1%{?dist}/$(RELEASE)%{?dist}/g" packaging/$(PKGNAME).spec
+ @rpmbuild -ba packaging/$(PKGNAME).spec \
+ --define "_sourcedir `pwd`/packaging/sources" \
+ --define "_srcrpmdir `pwd`/packaging/SRPMS" \
+ --define "_builddir `pwd`/packaging/BUILD" \
+ --define "_buildrootdir `pwd`/packaging/BUILDROOT" \
+ --define "_rpmdir `pwd`/packaging/RPMS" \
+ --define "rhel $(DIST_VERSION)" \
+ --define 'dist .el$(DIST_VERSION)' \
+ --define 'el$(DIST_VERSION) 1' || FAILED=1
+ @mv packaging/$(PKGNAME).spec.bak packaging/$(PKGNAME).spec
+
+build_container:
+ @case "$$BUILD_CONTAINER" in \
+ el7) \
+ _CONT_FILE="Containerfile.centos7"; \
+ ;; \
+ el8) \
+ _CONT_FILE="Containerfile.ubi8"; \
+ ;; \
+ f3[56]|rawhide) \
+ [ $$BUILD_CONTAINER = rawhide ] && VERSION=latest || VERSION=$${BUILD_CONTAINER: -2}; \
+ _CONT_FILE=".Containerfile.$${BUILD_CONTAINER}"; \
+ cp res/container-builds/Containerfile.fedora_generic res/container-builds/$$_CONT_FILE && \
+ sed -i "1i FROM fedora:$${VERSION}" res/container-builds/$$_CONT_FILE \
+ ;; \
+ "") \
+ echo "BUILD_CONTAINER must be set"; \
+ exit 1; \
+ ;; \
+ *) \
+ echo "Available containers are el7, el8, f35, f36, rawhide"; \
+ exit 1; \
+ ;; \
+ esac && \
+ echo "--- Preparing $$BUILD_CONTAINER container for building ---" && \
+ IMAGE_NAME="leapp-build-$${BUILD_CONTAINER}"; \
+ podman build -f res/container-builds/$$_CONT_FILE -t $$IMAGE_NAME res/container-builds/ && \
+ podman run --rm -ti -v $$PWD:/payload:Z --name "$${IMAGE_NAME}-cont" $$IMAGE_NAME && \
+ [ '$${_CONT_FILE:0:1}' = '.' ] && rm -f res/container-builds/$$_CONT_FILE || :
+
print_release:
@echo $(RELEASE)
@@ -179,8 +230,8 @@ test_container_all:
done
clean_containers:
- @for i in "leapp-tests-rhel"{7,8,9}; do \
- podman rmi "$$i" > /dev/null 2>&1 || :; \
+ @for i in "leapp-build-"{el7,el8,f35,f36,rawhide} "leapp-tests-rhel"{7,8,9}; do \
+ podman rmi "$$i" > /dev/null 2>&1 || :; \
done
lint:
@@ -216,4 +267,4 @@ fast_lint:
echo "No files to lint."; \
fi
-.PHONY: clean copr_build install install-deps install-test srpm test test_container test_container_all lint fast_lint clean_containers
+.PHONY: clean copr_build build build_container install install-deps install-test srpm test test_container test_container_all lint fast_lint clean_containers
diff --git a/res/container-builds/Containerfile.centos7 b/res/container-builds/Containerfile.centos7
new file mode 100644
index 0000000..a3b0ea0
--- /dev/null
+++ b/res/container-builds/Containerfile.centos7
@@ -0,0 +1,11 @@
+FROM centos:7
+
+VOLUME /payload
+
+ENV DIST_VERSION 7
+
+RUN yum update -y && \
+ yum install -y make git rpm-build python-setuptools python-devel
+
+WORKDIR /payload
+ENTRYPOINT make build
diff --git a/res/container-builds/Containerfile.fedora_generic b/res/container-builds/Containerfile.fedora_generic
new file mode 100644
index 0000000..c0af2b7
--- /dev/null
+++ b/res/container-builds/Containerfile.fedora_generic
@@ -0,0 +1,12 @@
+# FROM statement is inserted in Makefile
+
+VOLUME /payload
+
+ENV DIST_VERSION 8
+
+RUN dnf update -y && \
+ dnf install -y python3 make git rpm-build python3-devel
+ #yum install -y python3-pip && \ python3 -m pip install --upgrade pip==20.3.4
+
+WORKDIR /payload
+ENTRYPOINT make build
diff --git a/res/container-builds/Containerfile.ubi8 b/res/container-builds/Containerfile.ubi8
new file mode 100644
index 0000000..0b2c021
--- /dev/null
+++ b/res/container-builds/Containerfile.ubi8
@@ -0,0 +1,12 @@
+FROM registry.access.redhat.com/ubi8/ubi:latest
+
+VOLUME /payload
+
+ENV DIST_VERSION 8
+
+RUN dnf update -y && \
+ dnf install -y python3 make git rpm-build python3-devel
+ #yum install -y python3-pip && \ python3 -m pip install --upgrade pip==20.3.4
+
+WORKDIR /payload
+ENTRYPOINT make build
--
2.39.0

View File

@ -1,86 +0,0 @@
From 6ae95a1d2f73e4eb45e97903390f71e03555e841 Mon Sep 17 00:00:00 2001
From: Matej Matuska <mmatuska@redhat.com>
Date: Mon, 26 Sep 2022 08:42:50 +0200
Subject: [PATCH 03/16] Add possibility to use docker to run tests and build in
containers
On some systems podman is unavailable. Also, some people prefer docker
over podman. Add possibility to use docker to run tests and build
packages.
Set the CONTAINER_TOOL environment variable to change the container
tool used for running tests and building packages, for example:
CONTAINER_TOOL="docker" make test_container.
Unless you are running the Docker daemon in rootless mode, you will have
to run as root. In such case files created in `packaging/` using
`build_container` and in `testenv/` using `test_container` will be owned
by root. To change the ownership back to your user, you can for example
run `chown -R $USER packaging/ testenv/`.
The `clean_container` target now checks the existency of image before
deleting it, otherwise the command would silently fail when ran without
correct permission.
Jira ref.: OAMG-7286
---
Makefile | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 22d29a4..d392765 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,9 @@ VERSION=`grep -m1 "^Version:" packaging/$(PKGNAME).spec | grep -om1 "[0-9].[0-9.
_COPR_REPO=$${COPR_REPO:-leapp}
_COPR_CONFIG=$${COPR_CONFIG:-~/.config/copr_rh_oamg.conf}
+# tool used to run containers for testing and building packages
+_CONTAINER_TOOL=$${CONTAINER_TOOL:-podman}
+
# container used to run unit tests
_TEST_CONTAINER=$${TEST_CONTAINER:-rhel8}
@@ -92,6 +95,7 @@ help:
@echo " MR=6 COPR_CONFIG='path/to/the/config/copr/file' <target>"
@echo " TEST_CONTAINER=rhel7 make test_container"
@echo " BUILD_CONTAINER=el7 make build_container"
+ @echo " CONTAINER_TOOL=docker make test_container"
@echo ""
clean:
@@ -170,8 +174,8 @@ build_container:
esac && \
echo "--- Preparing $$BUILD_CONTAINER container for building ---" && \
IMAGE_NAME="leapp-build-$${BUILD_CONTAINER}"; \
- podman build -f res/container-builds/$$_CONT_FILE -t $$IMAGE_NAME res/container-builds/ && \
- podman run --rm -ti -v $$PWD:/payload:Z --name "$${IMAGE_NAME}-cont" $$IMAGE_NAME && \
+ $(_CONTAINER_TOOL) build -f res/container-builds/$$_CONT_FILE -t $$IMAGE_NAME res/container-builds/ && \
+ $(_CONTAINER_TOOL) run --rm -v $$PWD:/payload:Z --name "$${IMAGE_NAME}-cont" $$IMAGE_NAME && \
[ '$${_CONT_FILE:0:1}' = '.' ] && rm -f res/container-builds/$$_CONT_FILE || :
print_release:
@@ -221,8 +225,8 @@ test_container:
esac; \
export TEST_IMAGE="leapp-tests-$(_TEST_CONTAINER)"; \
rm -rf testenv/ && \
- podman build -t $$TEST_IMAGE -f $$_CONT_FILE res/container-tests && \
- podman run --rm -v $${PWD}:/payload:Z -e PYTHON_VENV=$$_VENV $$TEST_IMAGE
+ $(_CONTAINER_TOOL) build -t $$TEST_IMAGE -f $$_CONT_FILE res/container-tests && \
+ $(_CONTAINER_TOOL) run --rm -v $${PWD}:/payload:Z -e PYTHON_VENV=$$_VENV $$TEST_IMAGE
test_container_all:
@for container in "rhel"{7,8,9}; do \
@@ -231,7 +235,8 @@ test_container_all:
clean_containers:
@for i in "leapp-build-"{el7,el8,f35,f36,rawhide} "leapp-tests-rhel"{7,8,9}; do \
- podman rmi "$$i" > /dev/null 2>&1 || :; \
+ [ -z $$($(_CONTAINER_TOOL) images -q "$$i") ] || \
+ $(_CONTAINER_TOOL) rmi "$$i" > /dev/null 2>&1 || :; \
done
lint:
--
2.39.0

View File

@ -1,35 +0,0 @@
From 18f6055615320d721c3ee5f1237a02d31540b03b Mon Sep 17 00:00:00 2001
From: Jakub Jelen <jjelen@redhat.com>
Date: Thu, 6 Oct 2022 19:21:14 +0200
Subject: [PATCH 04/16] Document workaround for the broken snactor
prefer having this documented instead answering everyone questions why it does not work when it is in documentation. At least until it is fixed.
---
docs/source/el7toel8/actor-rhel7-to-rhel8.md | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/source/el7toel8/actor-rhel7-to-rhel8.md b/docs/source/el7toel8/actor-rhel7-to-rhel8.md
index 4157cfb..b7c1e5c 100644
--- a/docs/source/el7toel8/actor-rhel7-to-rhel8.md
+++ b/docs/source/el7toel8/actor-rhel7-to-rhel8.md
@@ -327,6 +327,17 @@ data is stored in the database for the current session:
```shell
snactor run --save-output IPUWorkflowConfig
```
+Since the leapp supports several upgrade paths, the `snactor` needs to know target system and upgrade flavor specification for correct execution.
+If you see similar errors when running `snactor`
+```
+leapp.models.fields.ModelViolationError: The value of "target" field is None, but this is not allowed
+```
+please, set the following environment variables (adjust the `LEAPP_UPGRADE_PATH_TARGET_RELEASE` as needed):
+```
+export LEAPP_UPGRADE_PATH_TARGET_RELEASE=8.6
+export LEAPP_UPGRADE_PATH_FLAVOUR=default
+snactor run --save-output IPUWorkflowConfig
+```
### Executing the whole upgrade workflow with the new actor
--
2.39.0

View File

@ -1,29 +0,0 @@
From d8e01d7b7c54db46fbf7dffde01094399d796f4f Mon Sep 17 00:00:00 2001
From: Jakub Jelen <jjelen@redhat.com>
Date: Fri, 7 Oct 2022 12:27:28 +0200
Subject: [PATCH 05/16] Improve wording
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Petr Stodůlka <xstodu05@gmail.com>
---
docs/source/el7toel8/actor-rhel7-to-rhel8.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/el7toel8/actor-rhel7-to-rhel8.md b/docs/source/el7toel8/actor-rhel7-to-rhel8.md
index b7c1e5c..a6ecf37 100644
--- a/docs/source/el7toel8/actor-rhel7-to-rhel8.md
+++ b/docs/source/el7toel8/actor-rhel7-to-rhel8.md
@@ -327,7 +327,7 @@ data is stored in the database for the current session:
```shell
snactor run --save-output IPUWorkflowConfig
```
-Since the leapp supports several upgrade paths, the `snactor` needs to know target system and upgrade flavor specification for correct execution.
+Since the leapp upgrade repositories support several upgrade paths, the `snactor` needs to get additional data for the correct execution, like the release of the target system, the flavor specification, etc.
If you see similar errors when running `snactor`
```
leapp.models.fields.ModelViolationError: The value of "target" field is None, but this is not allowed
--
2.39.0

View File

@ -1,25 +0,0 @@
From 14fae66738fbff1ace3407767da3ca97bb852a3b Mon Sep 17 00:00:00 2001
From: Petr Stodulka <pstodulk@redhat.com>
Date: Tue, 18 Oct 2022 10:16:48 +0200
Subject: [PATCH 06/16] Docs: update the leapp deprecation doc (add v0.15.0)
---
docs/source/deprecation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/deprecation.md b/docs/source/deprecation.md
index a9e9776..28dbc14 100644
--- a/docs/source/deprecation.md
+++ b/docs/source/deprecation.md
@@ -17,7 +17,7 @@ such information, see [Deprecated functionality in the el7toel8 repository](el7t
- nothing yet...
-## current upstream development <span style="font-size:0.5em; font-weight:normal">(till Mar 2023)</span>
+## v0.15.0 <span style="font-size:0.5em; font-weight:normal">(till Mar 2023)</span>
- Reporting primitives
- **`leapp.reporting.Flags`** - The `Flags` report primitive has been deprecated in favor of the more general `Groups` one.
--
2.39.0

View File

@ -1,88 +0,0 @@
From 9b26394f337f7e28a2709d6fd0d1c54deaa43d74 Mon Sep 17 00:00:00 2001
From: Vinzenz Feenstra <vfeenstr@redhat.com>
Date: Fri, 27 Nov 2020 22:15:54 +0100
Subject: [PATCH 07/16] snactor.sanity-check: Add option to ignore models
Previously, if a Model was being consumed by actor before it was
produced, `snactor sanity-check` reported a failure. This however
blocks some use case in leapp-repository now, where there is the
possibility to supply user data and it is being verified before in a
later stage it actually is used. This sanitization actor causes this
check to fail and would force an ugly workaround by having a dummy actor
pretending to produce the message earlier.
This patch will introduce two ways of handling this situation by
ignoring the models. Either each model can be specified as a commandline
option --ignore or a path to a file containing a list of such models can
be supplied via --ignorefile.
Any of those specified model names supplied via --ignore or the
ignore file will no longer be considered a failure.
Signed-off-by: Vinzenz Feenstra <vfeenstr@redhat.com>
---
.../snactor/commands/workflow/sanity_check.py | 22 +++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/leapp/snactor/commands/workflow/sanity_check.py b/leapp/snactor/commands/workflow/sanity_check.py
index 14de28a..6f5db78 100644
--- a/leapp/snactor/commands/workflow/sanity_check.py
+++ b/leapp/snactor/commands/workflow/sanity_check.py
@@ -1,19 +1,23 @@
from __future__ import print_function
+
import sys
-from leapp.exceptions import LeappError, CommandError
+from leapp.exceptions import CommandError, LeappError
from leapp.logger import configure_logger
from leapp.repository.scan import find_and_scan_repositories
from leapp.snactor.commands.workflow import workflow
-from leapp.utils.clicmd import command_arg
+from leapp.utils.clicmd import command_arg, command_opt
from leapp.utils.output import Color
-from leapp.utils.repository import requires_repository, find_repository_basedir
+from leapp.utils.repository import find_repository_basedir, requires_repository
_DESCRIPTION = 'The following messages are attempted to be consumed before they are produced: {}'
_LONG_DESCRIPTION = '''
Perform workflow sanity checks
- check whether there is a message in the given workflow which is attempted to be consumed before it was produced
+ --ignore <MODEL> can be used to specify one or multiple times to ignore the above condition
+ --ignorefile <PATH to ignore file> can be used to specify a file to load a list of ignored models. The list shall be
+ new line separated. Lines beginning with # are considered comments.
For more information please consider reading the documentation at:
https://red.ht/leapp-docs
@@ -24,10 +28,19 @@ def print_fail(error):
print('{red}FAIL: {error}{reset}'.format(red=Color.red, error=error, reset=Color.reset), file=sys.stderr, end='\n')
+def _ignore_file_content(path):
+ if path:
+ with open(path) as f:
+ return [line.strip() for line in f.read().split('\n') if not line.strip().startswith('#')]
+
+
@workflow.command('sanity-check', help='Perform workflow sanity checks', description=_LONG_DESCRIPTION)
@command_arg('name')
+@command_opt('ignore', metavar='<MODEL>', action='append', help='Models to ignore in the sanity check.')
+@command_opt('ignorefile', metavar='<PATH to ignore file>', help='File with a list of model names to ignore.')
@requires_repository
def cli(params):
+ ignored_models = set(params.ignore or []) | set(_ignore_file_content(params.ignorefile))
configure_logger()
repository = find_and_scan_repositories(find_repository_basedir('.'), include_locals=True)
try:
@@ -43,6 +56,7 @@ def cli(params):
instance = wf()
produced_late = set(instance.initial).intersection(set(instance.produces))
- if produced_late:
+ produced_late_names = [model.__name__ for model in produced_late if model.__name__ not in ignored_models]
+ if produced_late_names:
print_fail(_DESCRIPTION.format(' '.join([m.__name__ for m in produced_late])))
sys.exit(1)
--
2.39.0

View File

@ -1,34 +0,0 @@
From 833981217329e43b73840e796bc88978cb3ae272 Mon Sep 17 00:00:00 2001
From: Vinzenz 'evilissimo' Feenstra <evilissimo@gmail.com>
Date: Mon, 31 Oct 2022 14:51:20 +0100
Subject: [PATCH 08/16] Update leapp/snactor/commands/workflow/sanity_check.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Petr Stodůlka <xstodu05@gmail.com>
---
leapp/snactor/commands/workflow/sanity_check.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/leapp/snactor/commands/workflow/sanity_check.py b/leapp/snactor/commands/workflow/sanity_check.py
index 6f5db78..ac98dae 100644
--- a/leapp/snactor/commands/workflow/sanity_check.py
+++ b/leapp/snactor/commands/workflow/sanity_check.py
@@ -29,9 +29,10 @@ def print_fail(error):
def _ignore_file_content(path):
- if path:
- with open(path) as f:
- return [line.strip() for line in f.read().split('\n') if not line.strip().startswith('#')]
+ if not path:
+ return []
+ with open(path) as f:
+ return [line.strip() for line in f.read().split('\n') if line.strip() and not line.strip().startswith('#')]
@workflow.command('sanity-check', help='Perform workflow sanity checks', description=_LONG_DESCRIPTION)
--
2.39.0

View File

@ -1,119 +0,0 @@
From 98a6bcebba640c7645c02465dde4895227cce825 Mon Sep 17 00:00:00 2001
From: Inessa Vasilevskaya <ivasilev@redhat.com>
Date: Thu, 10 Nov 2022 13:19:40 +0100
Subject: [PATCH 09/16] Tune tmt tests regexes to align with QE automation
In order for upstream tests and those launched with QE tooling
to produce the comparable set of results it's a wise thing to
do.
---
.github/workflows/reuse-tests-7to8.yml | 2 +-
.github/workflows/reuse-tests-8to9.yml | 2 +-
.github/workflows/tmt-tests.yml | 16 ++++++++--------
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/reuse-tests-7to8.yml b/.github/workflows/reuse-tests-7to8.yml
index 9d8e0db..b1a9a8e 100644
--- a/.github/workflows/reuse-tests-7to8.yml
+++ b/.github/workflows/reuse-tests-7to8.yml
@@ -13,7 +13,7 @@ on:
type: string
tmt_plan_regex:
type: string
- default: "^(?!.*c2r)(?!.*sap)(?!.*8to9)"
+ default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)"
environment_settings:
type: string
default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
diff --git a/.github/workflows/reuse-tests-8to9.yml b/.github/workflows/reuse-tests-8to9.yml
index a7adace..828a717 100644
--- a/.github/workflows/reuse-tests-8to9.yml
+++ b/.github/workflows/reuse-tests-8to9.yml
@@ -13,7 +13,7 @@ on:
type: string
tmt_plan_regex:
type: string
- default: "^(?!.*c2r)(?!.*sap)(?!.*7to8)"
+ default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)"
environment_settings:
type: string
default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
index cfad280..6b9a0b4 100644
--- a/.github/workflows/tmt-tests.yml
+++ b/.github/workflows/tmt-tests.yml
@@ -16,7 +16,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
pull_request_status_name: "7.9to8.4"
call_workflow_tests_79to86_integration:
@@ -25,7 +25,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
variables: 'TARGET_RELEASE=8.6'
pull_request_status_name: "7.9to8.6"
@@ -35,7 +35,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(.*morf)"
+ tmt_plan_regex: "^(/plans/morf)(?!.*sap)"
pull_request_status_name: "7.9to8.4-sst"
update_pull_request_status: 'false'
if: |
@@ -49,7 +49,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)"
compose: "RHEL-7.9-rhui"
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}'
pull_request_status_name: "7to8-aws-e2e"
@@ -61,7 +61,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
pull_request_status_name: "8.6to9.0"
call_workflow_tests_87to91_integration:
@@ -70,7 +70,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
variables: 'LEAPP_DEVEL_TARGET_PRODUCT_TYPE=beta;RHSM_SKU=RH00069;TARGET_RELEASE=9.1;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms'
compose: 'RHEL-8.7.0-Nightly'
pull_request_status_name: "8.7to9.1"
@@ -82,7 +82,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(.*morf)"
+ tmt_plan_regex: "^(/plans/morf)(?!.*sap)"
pull_request_status_name: "8.6to9.0-sst"
update_pull_request_status: 'false'
if: |
@@ -96,7 +96,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)"
compose: "RHEL-8.6-rhui"
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
pull_request_status_name: "8to9-aws-e2e"
--
2.39.0

View File

@ -1,130 +0,0 @@
From 0e732fca2e8519f135ec5a18b032b6facb022c99 Mon Sep 17 00:00:00 2001
From: Inessa Vasilevskaya <ivasilev@redhat.com>
Date: Thu, 10 Nov 2022 13:21:49 +0100
Subject: [PATCH 10/16] Change /rerun-all to /rerun-sst
Change the concept from "rerun all tests + morf ones" to
"rerun just the morf tests".
Welcome message updated as well.
---
.github/workflows/pr-welcome-msg.yml | 4 ++--
.github/workflows/reuse-copr-build.yml | 2 +-
.github/workflows/tmt-tests.yml | 28 ++++++++++++++++++++++++--
3 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml
index 1bfcd2b..67393f9 100644
--- a/.github/workflows/pr-welcome-msg.yml
+++ b/.github/workflows/pr-welcome-msg.yml
@@ -27,8 +27,8 @@ jobs:
To launch regression testing public members of oamg organization can leave the following comment:
- **/rerun** to schedule basic regression tests using this pr build and leapp-repository\*master\* as artifacts
- **/rerun 42** to schedule basic regression tests using this pr build and leapp-repository\*PR42\* as artifacts
- - **/rerun-all** to schedule all tests (including sst) using this pr build and leapp-repository\*master\* as artifacts
- - **/rerun-all 42** to schedule all tests (including sst) using this pr build and leapp-repository\*PR42\* as artifacts
+ - **/rerun-sst** to schedule sst tests using this pr build and leapp-repository\*master\* as artifacts
+ - **/rerun-sst 42** to schedule sst tests using this pr build and leapp-repository\*PR42\* as artifacts
Please [open ticket](https://url.corp.redhat.com/oamg-ci-issue) in case you experience technical problem with the CI. (RH internal only)
diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml
index ccfee83..bdddc36 100644
--- a/.github/workflows/reuse-copr-build.yml
+++ b/.github/workflows/reuse-copr-build.yml
@@ -33,7 +33,7 @@ jobs:
id: leapp_repository_pr_regex_match
with:
text: ${{ github.event.comment.body }}
- regex: '^/(rerun|rerun-all)\s+([0-9]+)\s*$'
+ regex: '^/(rerun|rerun-sst)\s+([0-9]+)\s*$'
- name: Get pull request number
id: pr_nr
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
index 6b9a0b4..15b7eb3 100644
--- a/.github/workflows/tmt-tests.yml
+++ b/.github/workflows/tmt-tests.yml
@@ -18,6 +18,10 @@ jobs:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
pull_request_status_name: "7.9to8.4"
+ if: |
+ github.event.issue.pull_request
+ && ! startsWith(github.event.comment.body, '/rerun-sst')
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
call_workflow_tests_79to86_integration:
needs: call_workflow_copr_build
@@ -28,6 +32,10 @@ jobs:
tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
variables: 'TARGET_RELEASE=8.6'
pull_request_status_name: "7.9to8.6"
+ if: |
+ github.event.issue.pull_request
+ && ! startsWith(github.event.comment.body, '/rerun-sst')
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
call_workflow_tests_79to84_sst:
needs: call_workflow_copr_build
@@ -40,7 +48,7 @@ jobs:
update_pull_request_status: 'false'
if: |
github.event.issue.pull_request
- && startsWith(github.event.comment.body, '/rerun-all')
+ && startsWith(github.event.comment.body, '/rerun-sst')
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
call_workflow_tests_7to8_aws:
@@ -54,6 +62,10 @@ jobs:
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}'
pull_request_status_name: "7to8-aws-e2e"
variables: "RHUI=aws"
+ if: |
+ github.event.issue.pull_request
+ && ! startsWith(github.event.comment.body, '/rerun-sst')
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
call_workflow_tests_86to90_integration:
needs: call_workflow_copr_build
@@ -63,6 +75,10 @@ jobs:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
pull_request_status_name: "8.6to9.0"
+ if: |
+ github.event.issue.pull_request
+ && ! startsWith(github.event.comment.body, '/rerun-sst')
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
call_workflow_tests_87to91_integration:
needs: call_workflow_copr_build
@@ -75,6 +91,10 @@ jobs:
compose: 'RHEL-8.7.0-Nightly'
pull_request_status_name: "8.7to9.1"
tmt_context: "distro=rhel-8.7"
+ if: |
+ github.event.issue.pull_request
+ && ! startsWith(github.event.comment.body, '/rerun-sst')
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
call_workflow_tests_86to90_sst:
needs: call_workflow_copr_build
@@ -87,7 +107,7 @@ jobs:
update_pull_request_status: 'false'
if: |
github.event.issue.pull_request
- && startsWith(github.event.comment.body, '/rerun-all')
+ && startsWith(github.event.comment.body, '/rerun-sst')
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
call_workflow_tests_8to9_aws:
@@ -101,3 +121,7 @@ jobs:
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
pull_request_status_name: "8to9-aws-e2e"
variables: "RHUI=aws"
+ if: |
+ github.event.issue.pull_request
+ && ! startsWith(github.event.comment.body, '/rerun-sst')
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
--
2.39.0

View File

@ -1,163 +0,0 @@
From 057b2887586e9255c2b45c2ce9463240d1a1b484 Mon Sep 17 00:00:00 2001
From: Inessa Vasilevskaya <ivasilev@redhat.com>
Date: Mon, 28 Nov 2022 12:50:47 +0100
Subject: [PATCH 11/16] Do not run rhsm tests in upstream
It was decided to limit test tuns to tier0/tier1, non-RHSM
tests only.
Also this patch will keep github action parameters in sync with
supported upgrade paths.
---
.github/workflows/reuse-tests-7to8.yml | 2 +-
.github/workflows/reuse-tests-8to9.yml | 2 +-
.github/workflows/tmt-tests.yml | 34 ++++++++++++++------------
3 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/.github/workflows/reuse-tests-7to8.yml b/.github/workflows/reuse-tests-7to8.yml
index b1a9a8e..cfdfb35 100644
--- a/.github/workflows/reuse-tests-7to8.yml
+++ b/.github/workflows/reuse-tests-7to8.yml
@@ -13,7 +13,7 @@ on:
type: string
tmt_plan_regex:
type: string
- default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)"
+ default: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)"
environment_settings:
type: string
default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
diff --git a/.github/workflows/reuse-tests-8to9.yml b/.github/workflows/reuse-tests-8to9.yml
index 828a717..5d2e9d5 100644
--- a/.github/workflows/reuse-tests-8to9.yml
+++ b/.github/workflows/reuse-tests-8to9.yml
@@ -13,7 +13,7 @@ on:
type: string
tmt_plan_regex:
type: string
- default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)"
+ default: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)"
environment_settings:
type: string
default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
index 15b7eb3..2212453 100644
--- a/.github/workflows/tmt-tests.yml
+++ b/.github/workflows/tmt-tests.yml
@@ -10,14 +10,15 @@ jobs:
uses: ./.github/workflows/reuse-copr-build.yml
secrets: inherit
- call_workflow_tests_79to84_integration:
+ call_workflow_tests_79to88_integration:
needs: call_workflow_copr_build
uses: ./.github/workflows/reuse-tests-7to8.yml
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
- pull_request_status_name: "7.9to8.4"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
+ pull_request_status_name: "7.9to8.8"
+ variables: 'TARGET_RELEASE=8.8'
if: |
github.event.issue.pull_request
&& ! startsWith(github.event.comment.body, '/rerun-sst')
@@ -29,7 +30,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
variables: 'TARGET_RELEASE=8.6'
pull_request_status_name: "7.9to8.6"
if: |
@@ -37,15 +38,16 @@ jobs:
&& ! startsWith(github.event.comment.body, '/rerun-sst')
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
- call_workflow_tests_79to84_sst:
+ call_workflow_tests_79to88_sst:
needs: call_workflow_copr_build
uses: ./.github/workflows/reuse-tests-7to8.yml
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(/plans/morf)(?!.*sap)"
- pull_request_status_name: "7.9to8.4-sst"
+ pull_request_status_name: "7.9to8.8-sst"
update_pull_request_status: 'false'
+ variables: 'TARGET_RELEASE=8.8'
if: |
github.event.issue.pull_request
&& startsWith(github.event.comment.body, '/rerun-sst')
@@ -57,7 +59,7 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)"
compose: "RHEL-7.9-rhui"
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}'
pull_request_status_name: "7to8-aws-e2e"
@@ -73,23 +75,24 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms'
pull_request_status_name: "8.6to9.0"
if: |
github.event.issue.pull_request
&& ! startsWith(github.event.comment.body, '/rerun-sst')
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
- call_workflow_tests_87to91_integration:
+ call_workflow_tests_87to90_integration:
needs: call_workflow_copr_build
uses: ./.github/workflows/reuse-tests-8to9.yml
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
- variables: 'LEAPP_DEVEL_TARGET_PRODUCT_TYPE=beta;RHSM_SKU=RH00069;TARGET_RELEASE=9.1;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms'
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms'
compose: 'RHEL-8.7.0-Nightly'
- pull_request_status_name: "8.7to9.1"
+ pull_request_status_name: "8.7to9.0"
tmt_context: "distro=rhel-8.7"
if: |
github.event.issue.pull_request
@@ -103,6 +106,7 @@ jobs:
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(/plans/morf)(?!.*sap)"
+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms'
pull_request_status_name: "8.6to9.0-sst"
update_pull_request_status: 'false'
if: |
@@ -110,17 +114,17 @@ jobs:
&& startsWith(github.event.comment.body, '/rerun-sst')
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
- call_workflow_tests_8to9_aws:
+ call_workflow_tests_86to90_aws:
needs: call_workflow_copr_build
uses: ./.github/workflows/reuse-tests-8to9.yml
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)"
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)"
compose: "RHEL-8.6-rhui"
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
pull_request_status_name: "8to9-aws-e2e"
- variables: "RHUI=aws"
+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms;RHUI=aws'
if: |
github.event.issue.pull_request
&& ! startsWith(github.event.comment.body, '/rerun-sst')
--
2.39.0

View File

@ -1,92 +0,0 @@
From 821358f50454108b3b43c1e51623089424a8cc7b Mon Sep 17 00:00:00 2001
From: Inessa Vasilevskaya <ivasilev@redhat.com>
Date: Fri, 16 Dec 2022 11:38:53 +0100
Subject: [PATCH 12/16] Set SOURCE_RELEASE env var
Following a change in tmt-tests this is a necessary addition
for upgrade_plugin to correctly choose an upgrade path.
---
.github/workflows/tmt-tests.yml | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
index 2212453..1fd012b 100644
--- a/.github/workflows/tmt-tests.yml
+++ b/.github/workflows/tmt-tests.yml
@@ -18,7 +18,7 @@ jobs:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
pull_request_status_name: "7.9to8.8"
- variables: 'TARGET_RELEASE=8.8'
+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.8'
if: |
github.event.issue.pull_request
&& ! startsWith(github.event.comment.body, '/rerun-sst')
@@ -30,8 +30,8 @@ jobs:
secrets: inherit
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
- variables: 'TARGET_RELEASE=8.6'
+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.6'
pull_request_status_name: "7.9to8.6"
if: |
github.event.issue.pull_request
@@ -47,7 +47,7 @@ jobs:
tmt_plan_regex: "^(/plans/morf)(?!.*sap)"
pull_request_status_name: "7.9to8.8-sst"
update_pull_request_status: 'false'
- variables: 'TARGET_RELEASE=8.8'
+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.8'
if: |
github.event.issue.pull_request
&& startsWith(github.event.comment.body, '/rerun-sst')
@@ -63,7 +63,7 @@ jobs:
compose: "RHEL-7.9-rhui"
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}'
pull_request_status_name: "7to8-aws-e2e"
- variables: "RHUI=aws"
+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.6;RHUI=aws'
if: |
github.event.issue.pull_request
&& ! startsWith(github.event.comment.body, '/rerun-sst')
@@ -76,7 +76,7 @@ jobs:
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms'
+ variables: 'SOURCE_RELEASE=8.6;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms'
pull_request_status_name: "8.6to9.0"
if: |
github.event.issue.pull_request
@@ -90,7 +90,7 @@ jobs:
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms'
+ variables: 'SOURCE_RELEASE=8.7;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms'
compose: 'RHEL-8.7.0-Nightly'
pull_request_status_name: "8.7to9.0"
tmt_context: "distro=rhel-8.7"
@@ -106,7 +106,7 @@ jobs:
with:
copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
tmt_plan_regex: "^(/plans/morf)(?!.*sap)"
- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms'
+ variables: 'SOURCE_RELEASE=8.6;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms'
pull_request_status_name: "8.6to9.0-sst"
update_pull_request_status: 'false'
if: |
@@ -124,7 +124,7 @@ jobs:
compose: "RHEL-8.6-rhui"
environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
pull_request_status_name: "8to9-aws-e2e"
- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms;RHUI=aws'
+ variables: 'SOURCE_RELEASE=8.6;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms;RHUI=aws'
if: |
github.event.issue.pull_request
&& ! startsWith(github.event.comment.body, '/rerun-sst')
--
2.39.0

View File

@ -1,40 +0,0 @@
From 895caae0dac1dabd0966b5c4c9e29b86573fe0c8 Mon Sep 17 00:00:00 2001
From: PeterMocary <petermocary@gmail.com>
Date: Fri, 16 Dec 2022 16:20:49 +0100
Subject: [PATCH 13/16] change the permissions for /var/lib/leapp directory
from '755' to '700'
---
Makefile | 2 +-
packaging/leapp.spec | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index d392765..2653896 100644
--- a/Makefile
+++ b/Makefile
@@ -188,7 +188,7 @@ install:
install -dm 0755 ${CONFDIR}
install -m 0744 etc/leapp/leapp.conf ${CONFDIR}
install -m 0744 etc/leapp/logger.conf ${CONFDIR}
- install -dm 0755 ${LIBDIR}
+ install -dm 0700 ${LIBDIR}
umask 177 && $(PYTHON_VENV) -c "import sqlite3; sqlite3.connect('${LIBDIR}/audit.db').executescript(open('res/audit-layout.sql', 'r').read())"
install-test:
diff --git a/packaging/leapp.spec b/packaging/leapp.spec
index dfca9aa..071ffe7 100644
--- a/packaging/leapp.spec
+++ b/packaging/leapp.spec
@@ -180,7 +180,7 @@ install -m 0644 -p man/snactor.1 %{buildroot}%{_mandir}/man1/
install -m 0755 -d %{buildroot}%{_datadir}/leapp
install -m 0755 -d %{buildroot}%{_datadir}/leapp/report_schema
install -m 0644 -p report-schema-v110.json %{buildroot}%{_datadir}/leapp/report_schema/report-schema.json
-install -m 0755 -d %{buildroot}%{_sharedstatedir}/leapp
+install -m 0700 -d %{buildroot}%{_sharedstatedir}/leapp
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/repos.d
install -m 0600 -d %{buildroot}%{_sysconfdir}/leapp/answers
--
2.39.0

View File

@ -1,111 +0,0 @@
From 3d453d180d9b7bf0e283e313d1b5e294a5b4aeeb Mon Sep 17 00:00:00 2001
From: Roman Prilipskii <rprilipskii@cloudlinux.com>
Date: Wed, 9 Nov 2022 07:22:54 +0400
Subject: [PATCH 14/16] Expose tracebacks from actor exceptions
Previously when leapp would be running actors, any exceptions raised by
those actors in child processes would only be output to stderr,
while the main process would only have the exit code to examine.
Consequently, there was no real way to log occuring exceptions -
only providing the aforementioned exit code was possible.
This patch adds a pipe between the main and the actor processes,
through which a formatted exception + traceback string is provided to
the main process.
This string is then packaged into the LeappRuntimeError thrown from the
process, to be utilized downstream in
workflow/command code.
---
leapp/exceptions.py | 4 +++-
leapp/repository/actor_definition.py | 31 +++++++++++++++++++++-------
2 files changed, 27 insertions(+), 8 deletions(-)
diff --git a/leapp/exceptions.py b/leapp/exceptions.py
index 1bd4222..ef9d647 100644
--- a/leapp/exceptions.py
+++ b/leapp/exceptions.py
@@ -109,7 +109,9 @@ class UnknownCommandError(LeappError):
class LeappRuntimeError(LeappError):
- pass
+ def __init__(self, message, exception_info):
+ super().__init__(message)
+ self.exception_info = exception_info
class StopActorExecution(Exception):
diff --git a/leapp/repository/actor_definition.py b/leapp/repository/actor_definition.py
index 7c0beb9..2b5df1a 100644
--- a/leapp/repository/actor_definition.py
+++ b/leapp/repository/actor_definition.py
@@ -4,9 +4,10 @@ import logging
import os
import pkgutil
import sys
+import traceback
import warnings
from io import UnsupportedOperation
-from multiprocessing import Process, Queue
+from multiprocessing import Process, Queue, Pipe
import leapp.libraries.actor # noqa # pylint: disable=unused-import
from leapp.actors import get_actor_metadata, get_actors
@@ -56,7 +57,7 @@ class ActorCallContext(object):
self.skip_dialogs = skip_dialogs
@staticmethod
- def _do_run(stdin, logger, messaging, definition, config_model, skip_dialogs, args, kwargs):
+ def _do_run(stdin, logger, messaging, definition, config_model, skip_dialogs, error_pipe, args, kwargs):
if stdin is not None:
try:
sys.stdin = os.fdopen(stdin)
@@ -69,7 +70,13 @@ class ActorCallContext(object):
target_actor = [actor for actor in get_actors() if actor.name == definition.name][0]
actor_instance = target_actor(logger=logger, messaging=messaging, config_model=config_model,
skip_dialogs=skip_dialogs)
- actor_instance.run(*args, **kwargs)
+ try:
+ actor_instance.run(*args, **kwargs)
+ except Exception:
+ # Send the exception data string to the parent process
+ # and reraise.
+ error_pipe.send(traceback.format_exc())
+ raise
try:
# By this time this is no longer set, so we have to get it back
os.environ['LEAPP_CURRENT_ACTOR'] = actor_instance.name
@@ -96,15 +103,25 @@ class ActorCallContext(object):
stdin = sys.stdin.fileno()
except UnsupportedOperation:
stdin = None
+
+ pipe_receiver, pipe_sender = Pipe()
p = Process(target=self._do_run,
args=(stdin, self.logger, self.messaging, self.definition, self.config_model,
- self.skip_dialogs, args, kwargs))
+ self.skip_dialogs, pipe_sender, args, kwargs))
p.start()
p.join()
if p.exitcode != 0:
- raise LeappRuntimeError(
- 'Actor {actorname} unexpectedly terminated with exit code: {exitcode}'
- .format(actorname=self.definition.name, exitcode=p.exitcode))
+ err_message = "Actor {actorname} unexpectedly terminated with exit code: {exitcode}".format(
+ actorname=self.definition.name, exitcode=p.exitcode)
+
+ exception_info = None
+ # If there's data in the pipe, it's formatted exception info.
+ if pipe_receiver.poll():
+ exception_info = pipe_receiver.recv()
+
+ # This LeappRuntimeError will contain an exception traceback
+ # in addition to the above message.
+ raise LeappRuntimeError(err_message, exception_info)
class ActorDefinition(object):
--
2.39.0

View File

@ -1,25 +0,0 @@
From adc83588e269866d01bde579e075405939b08434 Mon Sep 17 00:00:00 2001
From: Roman Prilipskii <rprilipskii@cloudlinux.com>
Date: Wed, 9 Nov 2022 07:24:38 +0400
Subject: [PATCH 15/16] Add a default None value to the LeappRuntimeError field
---
leapp/exceptions.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/leapp/exceptions.py b/leapp/exceptions.py
index ef9d647..d6bbf00 100644
--- a/leapp/exceptions.py
+++ b/leapp/exceptions.py
@@ -109,7 +109,7 @@ class UnknownCommandError(LeappError):
class LeappRuntimeError(LeappError):
- def __init__(self, message, exception_info):
+ def __init__(self, message, exception_info=None):
super().__init__(message)
self.exception_info = exception_info
--
2.39.0

View File

@ -1,32 +0,0 @@
From 2d7ec8f21ea70fd0dc9656cd63a761342cefeb8f Mon Sep 17 00:00:00 2001
From: Roman Prilipskii <rprilipskii@cloudlinux.com>
Date: Mon, 28 Nov 2022 07:12:43 +0400
Subject: [PATCH 16/16] Fix super() args for Leapp exception classes
---
leapp/exceptions.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/leapp/exceptions.py b/leapp/exceptions.py
index d6bbf00..43c5905 100644
--- a/leapp/exceptions.py
+++ b/leapp/exceptions.py
@@ -104,13 +104,13 @@ class CommandDefinitionError(LeappError):
class UnknownCommandError(LeappError):
def __init__(self, command):
- super().__init__('Unknown command: {}'.format(command))
+ super(UnknownCommandError, self).__init__('Unknown command: {}'.format(command))
self.requested = command
class LeappRuntimeError(LeappError):
def __init__(self, message, exception_info=None):
- super().__init__(message)
+ super(LeappRuntimeError, self).__init__(message)
self.exception_info = exception_info
--
2.39.0

View File

@ -36,8 +36,8 @@
%endif
Name: leapp
Version: 0.15.0
Release: 4%{?dist}
Version: 0.15.1
Release: 1%{?dist}
Summary: OS & Application modernization framework
License: ASL 2.0
@ -65,22 +65,6 @@ Requires: leapp-repository
# PATCHES HERE
# Patch0001: filename.patch
Patch0001: 0001-Make-checks-for-missing-answers-more-strict.patch
Patch0002: 0002-Add-Makefile-target-for-building-RPMs-locally-and-in.patch
Patch0003: 0003-Add-possibility-to-use-docker-to-run-tests-and-build.patch
Patch0004: 0004-Document-workaround-for-the-broken-snactor.patch
Patch0005: 0005-Improve-wording.patch
Patch0006: 0006-Docs-update-the-leapp-deprecation-doc-add-v0.15.0.patch
Patch0007: 0007-snactor.sanity-check-Add-option-to-ignore-models.patch
Patch0008: 0008-Update-leapp-snactor-commands-workflow-sanity_check..patch
Patch0009: 0009-Tune-tmt-tests-regexes-to-align-with-QE-automation.patch
Patch0010: 0010-Change-rerun-all-to-rerun-sst.patch
Patch0011: 0011-Do-not-run-rhsm-tests-in-upstream.patch
Patch0012: 0012-Set-SOURCE_RELEASE-env-var.patch
Patch0013: 0013-change-the-permissions-for-var-lib-leapp-directory-f.patch
Patch0014: 0014-Expose-tracebacks-from-actor-exceptions.patch
Patch0015: 0015-Add-a-default-None-value-to-the-LeappRuntimeError-fi.patch
Patch0016: 0016-Fix-super-args-for-Leapp-exception-classes.patch
%description
@ -176,22 +160,6 @@ Requires: findutils
# APPLY REGISTERED PATCHES HERE
# %%patch0001 -p1
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
%patch0004 -p1
%patch0005 -p1
%patch0006 -p1
%patch0007 -p1
%patch0008 -p1
%patch0009 -p1
%patch0010 -p1
%patch0011 -p1
%patch0012 -p1
%patch0013 -p1
%patch0014 -p1
%patch0015 -p1
%patch0016 -p1
##################################################
@ -275,9 +243,11 @@ install -m 0644 -p man/leapp.1 %{buildroot}%{_mandir}/man1/
# no files here
%changelog
* Fri Jan 20 2023 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-4
* Tue Feb 21 2023 Petr Stodulka <pstodulk@redhat.com> - 0.15.1-1
- Rebase to v0.15.1
- Change DAC for /var/lib/leapp to 0700 to make it accessible for root only
- Propagate error messages from leapp actors to the main leapp process
- Prevent unicode errors when printing error messages
- Resolves: rhbz#2162710
* Thu Sep 08 2022 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-2