Rebase to new upstream version 0.18.0.

- Properly close file descriptors for executed shell commands.
- Resolves: RHEL-27848
This commit is contained in:
Toshio Kuratomi 2024-08-16 13:01:12 -07:00
parent 1be26899be
commit de9506e515
26 changed files with 9 additions and 4382 deletions

21
.gitignore vendored
View File

@ -1,20 +1 @@
/leapp-0.3.tar.gz
/leapp-0.3.1.tar.gz
/leapp-0.4.0.tar.gz
/leapp-0.5.0.tar.gz
/leapp-0.6.0.tar.gz
/leapp-0.7.0.tar.gz
/leapp-0.8.0.tar.gz
/leapp-0.8.1.tar.gz
/leapp-0.9.0.tar.gz
/leapp-0.10.0.tar.gz
/leapp-0.11.0.tar.gz
/leapp-0.11.1.tar.gz
/leapp-0.12.0.tar.gz
/leapp-0.12.1.tar.gz
/leapp-0.13.0.tar.gz
/leapp-0.14.0.tar.gz
/leapp-0.15.0.tar.gz
/leapp-0.15.1.tar.gz
/leapp-0.16.0.tar.gz
/leapp-0.17.0.tar.gz
/leapp-0.18.0.tar.gz

View File

@ -1,880 +0,0 @@
From a504470d697cc24fb4805c4ab8ff120f16d87b77 Mon Sep 17 00:00:00 2001
From: Inessa Vasilevskaya <ivasilev@redhat.com>
Date: Fri, 1 Mar 2024 14:19:50 +0100
Subject: [PATCH 1/7] Update packit with currently supported upgrade paths
That' an adoptation of leapp-repository's packit update and
refactoring introduced in PR1176.
OAMG-10855
---
.packit.yaml | 595 ++++++++++++++++-----------------------------------
1 file changed, 186 insertions(+), 409 deletions(-)
diff --git a/.packit.yaml b/.packit.yaml
index 76a8777..bf22cd1 100644
--- a/.packit.yaml
+++ b/.packit.yaml
@@ -45,18 +45,30 @@ jobs:
- bash -c "grep -m1 '^Version:' packaging/leapp.spec | grep -om1 '[0-9].[0-9.]**'"
-- &sanity-79to86
+# NOTE: to see what envars, targets, .. can be set in tests, see
+# the configuration of tests here:
+# https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/main/config.yaml
+# Available only to RH Employees.
+
+# ###################################################################### #
+# ############################### 7 TO 8 ############################### #
+# ###################################################################### #
+
+# ###################################################################### #
+# ### Abstract job definitions to make individual tests/jobs smaller ### #
+# ###################################################################### #
+- &sanity-abstract-7to8
job: tests
+ trigger: ignore
fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests"
fmf_ref: "main"
use_internal_tf: True
- trigger: pull_request
labels:
- sanity
targets:
epel-7-x86_64:
distros: [RHEL-7.9-ZStream]
- identifier: sanity-7.9to8.6
+ identifier: sanity-abstract-7to8
tmt_plan: ""
tf_extra_params:
test:
@@ -78,20 +90,16 @@ jobs:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.6"
- LEAPPDATA_BRANCH: "upstream"
-- &sanity-79to86-aws
- <<: *sanity-79to86
+- &sanity-abstract-7to8-aws
+ <<: *sanity-abstract-7to8
labels:
- sanity
- aws
targets:
epel-7-x86_64:
distros: [RHEL-7.9-rhui]
- identifier: sanity-7.9to8.6-aws-e2e
+ identifier: sanity-abstract-7to8-aws
# NOTE(ivasilev) Unfortunately to use yaml templates we need to rewrite the whole tf_extra_params dict
# to use plan_filter (can't just specify one section test.tmt.plan_filter, need to specify environments.* as well)
tf_extra_params:
@@ -115,57 +123,14 @@ jobs:
post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.6"
- RHUI: "aws"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
-
-- &sanity-79to88-aws
- <<: *sanity-79to86-aws
- identifier: sanity-7.9to8.8-aws-e2e
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.8"
- RHUI: "aws"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
-
-- &sanity-79to89-aws
- <<: *sanity-79to86-aws
- identifier: sanity-7.9to8.9-aws-e2e
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.9"
- RHUI: "aws"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
-
-# NOTE(mkluson) RHEL 8.10 content is not publicly available (via RHUI)
-#- &sanity-79to810-aws
-# <<: *sanity-79to86-aws
-# identifier: sanity-7.9to8.10-aws
-# env:
-# SOURCE_RELEASE: "7.9"
-# TARGET_RELEASE: "8.10"
-# RHUI: "aws"
-# LEAPPDATA_BRANCH: "upstream"
-# LEAPP_NO_RHSM: "1"
-# USE_CUSTOM_REPOS: rhui
# On-demand minimal beaker tests
-- &beaker-minimal-79to86
- <<: *sanity-79to86
+- &beaker-minimal-7to8-abstract-ondemand
+ <<: *sanity-abstract-7to8
manual_trigger: True
labels:
- beaker-minimal
- - beaker-minimal-7.9to8.6
- - 7.9to8.6
- identifier: sanity-7.9to8.6-beaker-minimal
+ identifier: beaker-minimal-7to8-abstract-ondemand
tf_extra_params:
test:
tmt:
@@ -188,13 +153,11 @@ jobs:
BusinessUnit: sst_upgrades@leapp_upstream_test
# On-demand kernel-rt tests
-- &kernel-rt-79to86
- <<: *beaker-minimal-79to86
+- &kernel-rt-abstract-7to8-ondemand
+ <<: *beaker-minimal-7to8-abstract-ondemand
labels:
- kernel-rt
- - kernel-rt-7.9to8.6
- - 7.9to8.6
- identifier: sanity-7.9to8.6-kernel-rt
+ identifier: sanity-7to8-kernel-rt-abstract-ondemand
tf_extra_params:
test:
tmt:
@@ -216,114 +179,133 @@ jobs:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
+
+# ###################################################################### #
+# ######################### Individual tests ########################### #
+# ###################################################################### #
+
+# Tests: 7.9 -> 8.8
+- &sanity-79to88-aws
+ <<: *sanity-abstract-7to8-aws
+ trigger: pull_request
+ identifier: sanity-7.9to8.8-aws
+ env:
+ SOURCE_RELEASE: "7.9"
+ TARGET_RELEASE: "8.8"
+ RHUI: "aws"
+ LEAPPDATA_BRANCH: "upstream"
+ LEAPP_NO_RHSM: "1"
+ USE_CUSTOM_REPOS: rhui
+
- &sanity-79to88
- <<: *sanity-79to86
+ <<: *sanity-abstract-7to8
+ trigger: pull_request
identifier: sanity-7.9to8.8
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.8"
LEAPPDATA_BRANCH: "upstream"
-# On-demand minimal beaker tests
- &beaker-minimal-79to88
- <<: *beaker-minimal-79to86
+ <<: *beaker-minimal-7to8-abstract-ondemand
+ trigger: pull_request
labels:
- beaker-minimal
- beaker-minimal-7.9to8.8
- 7.9to8.8
- identifier: sanity-7.9to8.8-beaker-minimal
+ identifier: sanity-7.9to8.8-beaker-minimal-ondemand
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.8"
LEAPPDATA_BRANCH: "upstream"
-# On-demand kernel-rt tests
- &kernel-rt-79to88
- <<: *kernel-rt-79to86
+ <<: *kernel-rt-abstract-7to8-ondemand
+ trigger: pull_request
labels:
- kernel-rt
- kernel-rt-7.9to8.8
- 7.9to8.8
- identifier: sanity-7.9to8.8-kernel-rt
+ identifier: sanity-7.9to8.8-kernel-rt-ondemand
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.8"
LEAPPDATA_BRANCH: "upstream"
-- &sanity-79to89
- <<: *sanity-79to86
- identifier: sanity-7.9to8.9
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.9"
- LEAPPDATA_BRANCH: "upstream"
-
-# On-demand minimal beaker tests
-- &beaker-minimal-79to89
- <<: *beaker-minimal-79to86
- labels:
- - beaker-minimal
- - beaker-minimal-7.9to8.9
- - 7.9to8.9
- identifier: sanity-7.9to8.9-beaker-minimal
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.9"
- LEAPPDATA_BRANCH: "upstream"
-
-# On-demand kernel-rt tests
-- &kernel-rt-79to89
- <<: *kernel-rt-79to88
- labels:
- - kernel-rt
- - kernel-rt-7.9to8.9
- - 7.9to8.9
- identifier: sanity-7.9to8.9-kernel-rt
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.9"
- LEAPPDATA_BRANCH: "upstream"
-
+# Tests: 7.9 -> 8.10
- &sanity-79to810
- <<: *sanity-79to86
+ <<: *sanity-abstract-7to8
+ trigger: pull_request
identifier: sanity-7.9to8.10
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.10"
LEAPPDATA_BRANCH: "upstream"
-# On-demand minimal beaker tests
+# NOTE(mkluson) RHEL 8.10 content is not publicly available (via RHUI)
+#- &sanity-79to810-aws
+# <<: *sanity-abstract-7to8-aws
+# trigger: pull_request
+# identifier: sanity-7.9to8.10-aws
+# env:
+# SOURCE_RELEASE: "7.9"
+# TARGET_RELEASE: "8.10"
+# RHUI: "aws"
+# LEAPPDATA_BRANCH: "upstream"
+# LEAPP_NO_RHSM: "1"
+# USE_CUSTOM_REPOS: rhui
+
- &beaker-minimal-79to810
- <<: *beaker-minimal-79to86
+ <<: *beaker-minimal-7to8-abstract-ondemand
+ trigger: pull_request
labels:
- beaker-minimal
- beaker-minimal-7.9to8.10
- 7.9to8.10
- identifier: sanity-7.9to8.10-beaker-minimal
+ identifier: sanity-7.9to8.10-beaker-minimal-ondemand
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.10"
LEAPPDATA_BRANCH: "upstream"
-# On-demand kernel-rt tests
- &kernel-rt-79to810
- <<: *kernel-rt-79to88
+ <<: *kernel-rt-abstract-7to8-ondemand
+ trigger: pull_request
labels:
- kernel-rt
- kernel-rt-7.9to8.10
- 7.9to8.10
- identifier: sanity-7.9to8.10-kernel-rt
+ identifier: sanity-7.9to8.10-kernel-rt-ondemand
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.10"
LEAPPDATA_BRANCH: "upstream"
-- &sanity-86to90
- <<: *sanity-79to86
+
+# ###################################################################### #
+# ############################## 8 TO 10 ############################### #
+# ###################################################################### #
+
+# ###################################################################### #
+# ### Abstract job definitions to make individual tests/jobs smaller ### #
+# ###################################################################### #
+
+#NOTE(pstodulk) putting default values in abstract jobs as from 8.10, as this
+# is the last RHEL 8 release and all new future tests will start from this
+# one release.
+
+- &sanity-abstract-8to9
+ job: tests
+ trigger: ignore
+ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests"
+ fmf_ref: "main"
+ use_internal_tf: True
+ labels:
+ - sanity
targets:
epel-8-x86_64:
- distros: [RHEL-8.6.0-Nightly]
- identifier: sanity-8.6to9.0
+ distros: [RHEL-8.10.0-Nightly]
+ identifier: sanity-abstract-8to9
tf_extra_params:
test:
tmt:
@@ -339,32 +321,25 @@ jobs:
order: 40
tmt:
context:
- distro: "rhel-8.6"
+ distro: "rhel-8.10"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
- env:
- SOURCE_RELEASE: "8.6"
- TARGET_RELEASE: "9.0"
- RHSM_REPOS_EUS: "eus"
- LEAPPDATA_BRANCH: "upstream"
-# On-demand minimal beaker tests
-- &beaker-minimal-86to90
- <<: *beaker-minimal-79to86
+- &sanity-abstract-8to9-aws
+ <<: *sanity-abstract-8to9
labels:
- - beaker-minimal
- - beaker-minimal-8.6to9.0
- - 8.6to9.0
+ - sanity
+ - aws
targets:
epel-8-x86_64:
- distros: [RHEL-8.6.0-Nightly]
- identifier: sanity-8.6to9.0-beaker-minimal
+ distros: [RHEL-8.10-rhui]
+ identifier: sanity-abstract-8to9-aws
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
+ plan_filter: 'tag:upgrade_happy_path & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -376,29 +351,26 @@ jobs:
order: 40
tmt:
context:
- distro: "rhel-8.6"
+ distro: "rhel-8.10"
settings:
provisioning:
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
- env:
- SOURCE_RELEASE: "8.6"
- TARGET_RELEASE: "9.0"
- RHSM_REPOS_EUS: "eus"
- LEAPPDATA_BRANCH: "upstream"
-# On-demand kernel-rt tests
-- &kernel-rt-86to90
- <<: *beaker-minimal-86to90
+- &beaker-minimal-8to9-abstract-ondemand
+ <<: *sanity-abstract-8to9
+ manual_trigger: True
labels:
- - kernel-rt
- - kernel-rt-8.6to9.0
- - 8.6to9.0
- identifier: sanity-8.6to9.0-kernel-rt
+ - beaker-minimal
+ targets:
+ epel-8-x86_64:
+ distros: [RHEL-8.10.0-Nightly]
+ identifier: beaker-minimal-8to9-abstract-ondemand
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
+ plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -410,60 +382,43 @@ jobs:
order: 40
tmt:
context:
- distro: "rhel-8.6"
+ distro: "rhel-8.10"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
-- &sanity-88to92
- <<: *sanity-86to90
- targets:
- epel-8-x86_64:
- distros: [RHEL-8.8.0-Nightly]
- identifier: sanity-8.8to9.2
+
+- &kernel-rt-abstract-8to9-ondemand
+ <<: *beaker-minimal-8to9-abstract-ondemand
+ labels:
+ - kernel-rt
+ identifier: sanity-8to9-kernel-rt-abstract-ondemand
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:sanity & tag:8to9 & enabled:true'
+ plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
+ - tmt:
context:
- distro: "rhel-8.8"
+ distro: "rhel-8.10"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
- env:
- SOURCE_RELEASE: "8.8"
- TARGET_RELEASE: "9.2"
- RHSM_REPOS_EUS: "eus"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_DEVEL_TARGET_RELEASE: "9.2"
-# On-demand minimal beaker tests
-- &beaker-minimal-88to92
- <<: *beaker-minimal-86to90
- labels:
- - beaker-minimal
- - beaker-minimal-8.8to9.2
- - 8.6to9.2
+# Tests: 8.8 -> 9.2
+- &sanity-88to92
+ <<: *sanity-abstract-8to9
+ trigger: pull_request
targets:
epel-8-x86_64:
distros: [RHEL-8.8.0-Nightly]
- identifier: sanity-8.8to9.2-beaker-minimal
+ identifier: sanity-8.8to9.2
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
+ plan_filter: 'tag:sanity & tag:8to9 & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -478,54 +433,27 @@ jobs:
distro: "rhel-8.8"
settings:
provisioning:
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.8"
TARGET_RELEASE: "9.2"
+ RHSM_REPOS_EUS: "eus"
LEAPPDATA_BRANCH: "upstream"
LEAPP_DEVEL_TARGET_RELEASE: "9.2"
-# On-demand kernel-rt tests
-- &kernel-rt-88to92
- <<: *beaker-minimal-88to92
- labels:
- - kernel-rt
- - kernel-rt-8.8to9.2
- - 8.8to9.2
- identifier: sanity-8.8to9.2-kernel-rt
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.8"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
-
-- &sanity-89to93
- <<: *sanity-88to92
+- &sanity-88to92-aws
+ <<: *sanity-abstract-8to9-aws
+ trigger: pull_request
targets:
epel-8-x86_64:
- distros: [RHEL-8.9.0-Nightly]
- identifier: sanity-8.9to9.3
+ distros: [RHEL-8.8-rhui]
+ identifier: sanity-8.8to9.2-aws
+ # NOTE(mkluson) Unfortunately to use yaml templates we need to rewrite the whole tf_extra_params dict
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:sanity & tag:8to9 & enabled:true'
+ plan_filter: 'tag:upgrade_happy_path & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -537,28 +465,32 @@ jobs:
order: 40
tmt:
context:
- distro: "rhel-8.9"
+ distro: "rhel-8.8"
settings:
provisioning:
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
- SOURCE_RELEASE: "8.9"
- TARGET_RELEASE: "9.3"
+ SOURCE_RELEASE: "8.8"
+ TARGET_RELEASE: "9.2"
+ RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms"
+ RHUI: "aws"
LEAPPDATA_BRANCH: "upstream"
- LEAPP_DEVEL_TARGET_RELEASE: "9.3"
+ LEAPP_NO_RHSM: "1"
+ USE_CUSTOM_REPOS: rhui
-# On-demand minimal beaker tests
-- &beaker-minimal-89to93
- <<: *beaker-minimal-88to92
+- &beaker-minimal-88to92
+ <<: *beaker-minimal-8to9-abstract-ondemand
+ trigger: pull_request
labels:
- beaker-minimal
- - beaker-minimal-8.9to9.3
- - 8.9to9.3
+ - beaker-minimal-8.8to9.2
+ - 8.8to9.2
targets:
epel-8-x86_64:
- distros: [RHEL-8.9.0-Nightly]
- identifier: sanity-8.9to9.3-beaker-minimal
+ distros: [RHEL-8.8.0-Nightly]
+ identifier: sanity-8.8to9.2-beaker-minimal-ondemand
tf_extra_params:
test:
tmt:
@@ -574,25 +506,29 @@ jobs:
order: 40
tmt:
context:
- distro: "rhel-8.9"
+ distro: "rhel-8.8"
settings:
provisioning:
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
- SOURCE_RELEASE: "8.9"
- TARGET_RELEASE: "9.3"
+ SOURCE_RELEASE: "8.8"
+ TARGET_RELEASE: "9.2"
LEAPPDATA_BRANCH: "upstream"
- LEAPP_DEVEL_TARGET_RELEASE: "9.3"
+ LEAPP_DEVEL_TARGET_RELEASE: "9.2"
-# On-demand kernel-rt tests
-- &kernel-rt-89to93
- <<: *beaker-minimal-89to93
+- &kernel-rt-88to92
+ <<: *kernel-rt-abstract-8to9-ondemand
+ trigger: pull_request
labels:
- kernel-rt
- - kernel-rt-8.9to9.3
- - 8.9to9.3
- identifier: sanity-8.9to9.3-kernel-rt
+ - kernel-rt-8.8to9.2
+ - 8.8to9.2
+ identifier: sanity-8.8to9.2-kernel-rt-ondemand
+ targets:
+ epel-8-x86_64:
+ distros: [RHEL-8.8.0-Nightly]
tf_extra_params:
test:
tmt:
@@ -608,38 +544,23 @@ jobs:
order: 40
tmt:
context:
- distro: "rhel-8.9"
+ distro: "rhel-8.8"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
+ env:
+ SOURCE_RELEASE: "8.8"
+ TARGET_RELEASE: "9.2"
+ LEAPPDATA_BRANCH: "upstream"
+ LEAPP_DEVEL_TARGET_RELEASE: "9.2"
+
+# Tests: 8.10 -> 9.4
- &sanity-810to94
- <<: *sanity-88to92
- targets:
- epel-8-x86_64:
- distros: [RHEL-8.10.0-Nightly]
+ <<: *sanity-abstract-8to9
+ trigger: pull_request
identifier: sanity-8.10to9.4
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:sanity & tag:8to9 & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.10"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
@@ -648,35 +569,13 @@ jobs:
# On-demand minimal beaker tests
- &beaker-minimal-810to94
- <<: *beaker-minimal-88to92
+ <<: *beaker-minimal-8to9-abstract-ondemand
+ trigger: pull_request
labels:
- beaker-minimal
- beaker-minimal-8.10to9.4
- 8.10to9.4
- targets:
- epel-8-x86_64:
- distros: [RHEL-8.10.0-Nightly]
- identifier: sanity-8.10to9.4-beaker-minimal
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.10"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
+ identifier: sanity-8.10to9.4-beaker-minimal-ondemand
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
@@ -684,137 +583,15 @@ jobs:
# On-demand kernel-rt tests
- &kernel-rt-810to94
- <<: *beaker-minimal-810to94
+ <<: *kernel-rt-abstract-8to9-ondemand
+ trigger: pull_request
labels:
- kernel-rt
- kernel-rt-8.10to9.4
- 8.10to9.4
- identifier: sanity-8.10to9.4-kernel-rt
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.10"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
-
-- &sanity-86to90-aws
- <<: *sanity-79to86-aws
- targets:
- epel-8-x86_64:
- distros: [RHEL-8.6-rhui]
- identifier: sanity-8.6to9.0-aws-e2e
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.6"
- settings:
- provisioning:
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
- env:
- SOURCE_RELEASE: "8.6"
- TARGET_RELEASE: "9.0"
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms"
- RHUI: "aws"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
-
-- &sanity-88to92-aws
- <<: *sanity-86to90-aws
- targets:
- epel-8-x86_64:
- distros: [RHEL-8.8-rhui]
- identifier: sanity-8.8to9.2-aws
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.8"
- settings:
- provisioning:
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
+ identifier: sanity-8.10to9.4-kernel-rt-ondemand
env:
- SOURCE_RELEASE: "8.8"
- TARGET_RELEASE: "9.2"
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms"
- RHUI: "aws"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
-
-- &sanity-89to93-aws
- <<: *sanity-86to90-aws
- targets:
- epel-8-x86_64:
- distros: [RHEL-8.9-rhui]
- identifier: sanity-8.9to9.3-aws
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.9"
- settings:
- provisioning:
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
- env:
- SOURCE_RELEASE: "8.9"
- TARGET_RELEASE: "9.3"
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms"
- RHUI: "aws"
+ SOURCE_RELEASE: "8.10"
+ TARGET_RELEASE: "9.4"
+ RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
--
2.42.0

View File

@ -1,47 +0,0 @@
From 9050ff0c540f0ceebfdc156b7ca8e28db70d4133 Mon Sep 17 00:00:00 2001
From: Inessa Vasilevskaya <ivasilev@redhat.com>
Date: Thu, 25 Apr 2024 13:32:47 +0200
Subject: [PATCH 2/7] Update packit config after tier redefinition
Now for basic sanity test verification in upstream tests
tagged by 'tier0' will be used instead of 'sanity'.
RHELMISC-3211
---
.packit.yaml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.packit.yaml b/.packit.yaml
index bf22cd1..4e9c239 100644
--- a/.packit.yaml
+++ b/.packit.yaml
@@ -73,7 +73,7 @@ jobs:
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:sanity & enabled:true'
+ plan_filter: 'tag:tier0 & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -309,7 +309,7 @@ jobs:
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:sanity & tag:8to9 & enabled:true'
+ plan_filter: 'tag:tier0 & tag:8to9 & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -418,7 +418,7 @@ jobs:
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:sanity & tag:8to9 & enabled:true'
+ plan_filter: 'tag:tier0 & tag:8to9 & enabled:true'
environments:
- artifacts:
- type: "repository"
--
2.42.0

View File

@ -1,44 +0,0 @@
From b21450ac397ad9aca7aa13a247f889e9dc354344 Mon Sep 17 00:00:00 2001
From: Petr Stodulka <pstodulk@redhat.com>
Date: Fri, 26 Apr 2024 13:46:00 +0200
Subject: [PATCH 3/7] Reword the report msg in the console output to note
remediations
Users who do not understand why they should read the generated leapp
report. They are missing that the console output is just a summary
overview of the report itself.
Rewording the msg little bit to make it explicitely clear that report
contains more details about discovered problems and possible remediation
instructions.
Also switch order of printed reports paths: txt first.
Jira: https://issues.redhat.com/browse/RHEL-25406
https://issues.redhat.com/browse/RHEL-25407
---
leapp/utils/output.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/leapp/utils/output.py b/leapp/utils/output.py
index 4bca481..4e91718 100644
--- a/leapp/utils/output.py
+++ b/leapp/utils/output.py
@@ -202,10 +202,12 @@ def report_info(context_id, report_paths, log_paths, answerfile=None, fail=False
_print_reports_summary(reports)
print(
- '\n{bold}Before continuing consult the full report:{reset}'
+ '\n{bold}Before continuing, review the full report below for details'
+ ' about discovered problems and possible remediation instructions:{reset}'
.format(bold=Color.bold, reset=Color.reset)
)
- for report_path in report_paths:
+ for report_path in sorted(report_paths, reverse=True):
+ # NOTE: sort hack -> print .txt first
sys.stdout.write(" A report has been generated at {path}\n".format(path=report_path))
if answerfile:
--
2.42.0

View File

@ -1,25 +0,0 @@
From 210b02021fc03f6ea86cc08fd129ecd3a62c6ee9 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 8 May 2024 12:45:08 +0000
Subject: [PATCH 4/7] Add renovate.json
---
renovate.json | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 renovate.json
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 0000000..5db72dd
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "config:recommended"
+ ]
+}
--
2.42.0

View File

@ -1,29 +0,0 @@
From 6bb9098f2e47c3d52f9129d8fc355f362b9ceae6 Mon Sep 17 00:00:00 2001
From: Rodolfo Olivieri <rolivier@redhat.com>
Date: Wed, 8 May 2024 10:12:48 -0300
Subject: [PATCH 5/7] Update renovate.json
---
renovate.json | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/renovate.json b/renovate.json
index 5db72dd..771ce84 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,6 +1,8 @@
{
- "$schema": "https://docs.renovatebot.com/renovate-schema.json",
- "extends": [
- "config:recommended"
- ]
+ "extends": [
+ "config:base"
+ ],
+ "enabledManagers": [
+ "github-actions"
+ ]
}
--
2.42.0

View File

@ -1,175 +0,0 @@
From b64c44bfb741e17650c7c0d65f25fc4ef67fdf19 Mon Sep 17 00:00:00 2001
From: David Kubek <dkubek@redhat.com>
Date: Thu, 22 Feb 2024 12:51:04 +0100
Subject: [PATCH 6/7] Add process lock
This commit addresses the potential risk of running multiple instances
of Leapp simultaneously on a single system. It implements a simple lock
mechanism to prevent concurrent executions on a single system using a
simple BSD lock (`flock(2)`).
Lock is acquired at the start of the execution and a PID number is
stored in lockfile. The PID in lockfile currently has purely
informational character.
---
leapp/cli/__init__.py | 10 ++++--
leapp/config.py | 3 ++
leapp/exceptions.py | 4 +++
leapp/utils/lock.py | 83 +++++++++++++++++++++++++++++++++++++++++++
4 files changed, 97 insertions(+), 3 deletions(-)
create mode 100644 leapp/utils/lock.py
diff --git a/leapp/cli/__init__.py b/leapp/cli/__init__.py
index fe997d4..ab16198 100644
--- a/leapp/cli/__init__.py
+++ b/leapp/cli/__init__.py
@@ -2,12 +2,12 @@ import os
import pkgutil
import socket
import sys
-import textwrap
from leapp import VERSION
from leapp.cli import commands
-from leapp.exceptions import UnknownCommandError
+from leapp.exceptions import UnknownCommandError, ProcessLockError
from leapp.utils.clicmd import command
+from leapp.utils.lock import leapp_lock
@command('')
@@ -42,7 +42,8 @@ def main():
os.environ['LEAPP_HOSTNAME'] = socket.getfqdn()
_load_commands(cli.command)
try:
- cli.command.execute('leapp version {}'.format(VERSION))
+ with leapp_lock():
+ cli.command.execute('leapp version {}'.format(VERSION))
except UnknownCommandError as e:
bad_cmd = (
"Command \"{CMD}\" is unknown.\nMost likely there is a typo in the command or particular "
@@ -54,3 +55,6 @@ def main():
bad_cmd = "No such argument {CMD}"
print(bad_cmd.format(CMD=e.requested))
sys.exit(1)
+ except ProcessLockError as e:
+ sys.stderr.write('{}\nAborting.\n'.format(e.message))
+ sys.exit(1)
diff --git a/leapp/config.py b/leapp/config.py
index 18c357d..2487e0f 100644
--- a/leapp/config.py
+++ b/leapp/config.py
@@ -40,6 +40,9 @@ _CONFIG_DEFAULTS = {
'dir': '/var/log/leapp/',
'files': ','.join(_FILES_TO_ARCHIVE),
},
+ 'lock': {
+ 'path': '/var/run/leapp.pid'
+ },
'logs': {
'dir': '/var/log/leapp/',
'files': ','.join(_LOGS),
diff --git a/leapp/exceptions.py b/leapp/exceptions.py
index 43c5905..9463a5c 100644
--- a/leapp/exceptions.py
+++ b/leapp/exceptions.py
@@ -148,3 +148,7 @@ class RequestStopAfterPhase(LeappError):
def __init__(self):
super(RequestStopAfterPhase, self).__init__('Stop after phase has been requested.')
+
+
+class ProcessLockError(LeappError):
+ """ This exception is used to represent an error within the process locking mechanism. """
diff --git a/leapp/utils/lock.py b/leapp/utils/lock.py
new file mode 100644
index 0000000..33e825c
--- /dev/null
+++ b/leapp/utils/lock.py
@@ -0,0 +1,83 @@
+import os
+import fcntl
+import logging
+
+from leapp.config import get_config
+from leapp.exceptions import ProcessLockError
+
+
+def leapp_lock(lockfile=None):
+ return ProcessLock(lockfile=lockfile)
+
+
+def _acquire_lock(fd):
+ try:
+ fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
+ return True
+ except OSError:
+ return False
+
+
+def _clear_lock(fd):
+ os.lseek(fd, 0, os.SEEK_SET)
+ os.ftruncate(fd, 0)
+
+
+def _read_pid(fd):
+ return os.read(fd, 20)
+
+
+def _write_pid(fd, pid):
+ _clear_lock(fd)
+ os.write(fd, str(pid).encode('utf-8'))
+
+
+class ProcessLock(object):
+
+ def __init__(self, lockfile=None):
+ self.log = logging.getLogger('leapp.utils.lock')
+ self.lockfile = lockfile if lockfile else get_config().get('lock', 'path')
+
+ self.fd = None
+
+ def _get_pid_from_lockfile(self):
+ running_pid = _read_pid(self.fd)
+ self.log.debug("_get_pid_from_lockfile: running_pid=%s", running_pid)
+ running_pid = int(running_pid)
+
+ return running_pid
+
+ def _try_lock(self, pid):
+ if not _acquire_lock(self.fd):
+ try:
+ running_pid = self._get_pid_from_lockfile()
+ except ValueError:
+ process_msg = ''
+ else:
+ process_msg = ' by process with PID {}'.format(running_pid)
+
+ msg = (
+ 'Leapp is currently locked{} and cannot be started.\n'
+ 'Please ensure no other instance of leapp is running and then delete the lockfile at {} and try again.'
+ ).format(process_msg, self.lockfile)
+ raise ProcessLockError(msg)
+
+ try:
+ _write_pid(self.fd, pid)
+ except OSError:
+ raise ProcessLockError('Could not write PID to lockfile.')
+
+ def __enter__(self):
+ my_pid = os.getpid()
+
+ self.fd = os.open(self.lockfile, os.O_CREAT | os.O_RDWR, 0o600)
+ try:
+ self._try_lock(my_pid)
+ except ProcessLockError:
+ os.close(self.fd)
+ raise
+
+ def __exit__(self, *exc_args):
+ _clear_lock(self.fd)
+ os.close(self.fd)
+ os.unlink(self.lockfile)
--
2.42.0

File diff suppressed because it is too large Load Diff

View File

@ -1,31 +0,0 @@
From 98a5d07dfafd26a37d486cd9fcfdb4c9c9540c23 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 24 May 2024 09:02:08 +0200
Subject: [PATCH 08/23] Update peter-evans/create-or-update-comment digest to
v4 (#860)
* Update .github/workflows/pr-welcome-msg.yml
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/pr-welcome-msg.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml
index 143c54b..af5d543 100644
--- a/.github/workflows/pr-welcome-msg.yml
+++ b/.github/workflows/pr-welcome-msg.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Create comment
- uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae
+ uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
--
2.42.0

View File

@ -1,53 +0,0 @@
From bcd3cea72e86b693efbfe1177deff65b2b47c045 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 10 May 2024 14:55:14 +0000
Subject: [PATCH 09/23] Update dependency ubuntu to v22
---
.github/workflows/reuse-copr-build.yml | 2 +-
.github/workflows/reuse-tests-7to8.yml | 2 +-
.github/workflows/reuse-tests-8to9.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml
index 7ccd282..06124d2 100644
--- a/.github/workflows/reuse-copr-build.yml
+++ b/.github/workflows/reuse-copr-build.yml
@@ -16,7 +16,7 @@ jobs:
reusable_workflow_copr_build_job:
# This job only runs for '/rerun' pull request comments by owner, member, or collaborator of the repo/organization.
name: Build copr builds for tft tests
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-22.04
outputs:
artifacts: ${{ steps.gen_artifacts.outputs.artifacts }}
if: |
diff --git a/.github/workflows/reuse-tests-7to8.yml b/.github/workflows/reuse-tests-7to8.yml
index cfdfb35..cfa8f41 100644
--- a/.github/workflows/reuse-tests-7to8.yml
+++ b/.github/workflows/reuse-tests-7to8.yml
@@ -42,7 +42,7 @@ on:
jobs:
reusable_workflow_job:
name: Schedule regression tests on Testing Farm
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-22.04
steps:
- name: Schedule regression testing for 7to8
id: run_test_7to8
diff --git a/.github/workflows/reuse-tests-8to9.yml b/.github/workflows/reuse-tests-8to9.yml
index 5d2e9d5..2315e70 100644
--- a/.github/workflows/reuse-tests-8to9.yml
+++ b/.github/workflows/reuse-tests-8to9.yml
@@ -43,7 +43,7 @@ jobs:
reusable_workflow_job:
# This job only runs for '/rerun' pull request comments by owner, member, or collaborator of the repo/organization.
name: Schedule regression tests on Testing Farm
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-22.04
steps:
- name: Schedule regression testing for 8to9
id: run_test_8to9
--
2.42.0

View File

@ -1,34 +0,0 @@
From 765f040e97bda245099f66768d3192745eb8a17a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 9 May 2024 10:35:11 +0000
Subject: [PATCH 10/23] Update actions/github-script action to v7
---
.github/workflows/reuse-copr-build.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml
index 06124d2..3327874 100644
--- a/.github/workflows/reuse-copr-build.yml
+++ b/.github/workflows/reuse-copr-build.yml
@@ -102,7 +102,7 @@ jobs:
- name: Add comment with copr build url
# TODO: Create comment when copr build fails.
id: link_copr
- uses: actions/github-script@v4
+ uses: actions/github-script@v7
with:
script: |
github.issues.createComment({
@@ -160,7 +160,7 @@ jobs:
# TODO: Create comment when copr build fails.
id: link_copr_leapp_repository
if: ${{ steps.leapp_repository_pr_regex_match.outputs.match != '' }}
- uses: actions/github-script@v4
+ uses: actions/github-script@v7
with:
script: |
github.issues.createComment({
--
2.42.0

View File

@ -1,48 +0,0 @@
From 03c651c4ada21442dc3604f18c8149f55d66e0f5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 9 May 2024 10:35:07 +0000
Subject: [PATCH 11/23] Update actions/checkout action to v4
---
.github/workflows/reuse-copr-build.yml | 4 ++--
.github/workflows/unit-tests.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml
index 3327874..a935c7e 100644
--- a/.github/workflows/reuse-copr-build.yml
+++ b/.github/workflows/reuse-copr-build.yml
@@ -49,7 +49,7 @@ jobs:
# TODO: The correct way to checkout would be to use simmilar approach as in get_commit_by_timestamp function of
# the github gluetool module (i.e. do not use HEAD but the last commit before comment).
id: checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
with:
ref: "refs/pull/${{ steps.pr_nr.outputs.pr_nr }}/head"
@@ -121,7 +121,7 @@ jobs:
- name: Checkout leapp-repository
id: checkout_leapp_repository
if: ${{ steps.leapp_repository_pr_regex_match.outputs.match != '' }}
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
with:
repository: "oamg/leapp-repository"
ref: "refs/pull/${{ steps.leapp_repository_pr.outputs.leapp_repository_pr }}/head"
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index 123a73e..e2376b7 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -27,7 +27,7 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Set master to origin/master
--
2.42.0

View File

@ -1,34 +0,0 @@
From bf4fd611f95a4484e376ba04f55c6626c18bb48c Mon Sep 17 00:00:00 2001
From: Petr Stodulka <pstodulk@redhat.com>
Date: Wed, 3 Jul 2024 14:55:52 +0200
Subject: [PATCH 12/23] Packit: drop epel-7-ppc64le chroot
CentOS 7 is EOM and based on that additional changes have to be made
in COPR. Use x86_64 arch for epel7 now only.
---
.packit.yaml | 2 --
1 file changed, 2 deletions(-)
diff --git a/.packit.yaml b/.packit.yaml
index 4e9c239..eb3a8f9 100644
--- a/.packit.yaml
+++ b/.packit.yaml
@@ -12,7 +12,6 @@ jobs:
owner: "@oamg"
project: leapp
targets:
- - epel-7-ppc64le
- epel-7-x86_64
- epel-8-x86_64
- fedora-all-aarch64
@@ -31,7 +30,6 @@ jobs:
owner: "@oamg"
project: leapp
targets:
- - epel-7-ppc64le
- epel-7-x86_64
- epel-8-x86_64
- fedora-all-aarch64
--
2.42.0

View File

@ -1,831 +0,0 @@
From c397a0d142ed9915ba3b1e4276b7fbf8856b37da Mon Sep 17 00:00:00 2001
From: Petr Stodulka <pstodulk@redhat.com>
Date: Tue, 16 Jul 2024 18:32:07 +0200
Subject: [PATCH 13/23] Packit: Bring all changes from leapp-repository
- replace the sanity tag by 'tier0' (RHELMISC-3211)
- Update ENV variables for RHUI tests
- Enable upgrade path to 8.10 on AWS
- adjust post_install_script for RHEL 7.9 (moved to TF)
- Use frozen branch for rhel7 downstream testing as RHEL 7 is EOM
---
.packit.yaml | 542 +++++++++++++++++++++++++++++++++------------------
1 file changed, 352 insertions(+), 190 deletions(-)
diff --git a/.packit.yaml b/.packit.yaml
index eb3a8f9..318abd4 100644
--- a/.packit.yaml
+++ b/.packit.yaml
@@ -45,7 +45,8 @@ jobs:
# NOTE: to see what envars, targets, .. can be set in tests, see
# the configuration of tests here:
-# https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/main/config.yaml
+# 7toX path https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/rhel7/config.yaml
+# >7tox path https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/main/config.yaml
# Available only to RH Employees.
# ###################################################################### #
@@ -59,7 +60,7 @@ jobs:
job: tests
trigger: ignore
fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests"
- fmf_ref: "main"
+ fmf_ref: "rhel7"
use_internal_tf: True
labels:
- sanity
@@ -68,26 +69,6 @@ jobs:
distros: [RHEL-7.9-ZStream]
identifier: sanity-abstract-7to8
tmt_plan: ""
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:tier0 & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-7-x86_64/"
- packages:
- - leapp-repository
- - python2-leapp
- - leapp-upgrade-el7toel8-deps
- order: 40
- tmt:
- context:
- distro: "rhel-7.9"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
- &sanity-abstract-7to8-aws
<<: *sanity-abstract-7to8
@@ -98,12 +79,35 @@ jobs:
epel-7-x86_64:
distros: [RHEL-7.9-rhui]
identifier: sanity-abstract-7to8-aws
- # NOTE(ivasilev) Unfortunately to use yaml templates we need to rewrite the whole tf_extra_params dict
- # to use plan_filter (can't just specify one section test.tmt.plan_filter, need to specify environments.* as well)
+
+# On-demand minimal beaker tests
+- &beaker-minimal-7to8-abstract-ondemand
+ <<: *sanity-abstract-7to8
+ manual_trigger: True
+ labels:
+ - beaker-minimal
+ identifier: beaker-minimal-7to8-abstract-ondemand
+
+# On-demand kernel-rt tests
+- &kernel-rt-abstract-7to8-ondemand
+ <<: *beaker-minimal-7to8-abstract-ondemand
+ labels:
+ - kernel-rt
+ identifier: sanity-7to8-kernel-rt-abstract-ondemand
+
+# ###################################################################### #
+# ######################### Individual tests ########################### #
+# ###################################################################### #
+
+# Tests: 7.9 -> 8.8
+- &sanity-79to88-aws
+ <<: *sanity-abstract-7to8-aws
+ trigger: pull_request
+ identifier: sanity-7.9to8.8-aws
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
+ plan_filter: 'tag:7to8 & tag:upgrade_happy_path & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -113,26 +117,31 @@ jobs:
- python2-leapp
- leapp-upgrade-el7toel8-deps
order: 40
- tmt:
+ - tmt:
context:
distro: "rhel-7.9"
+ distro_target: "rhel-8.8"
settings:
provisioning:
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
+ env:
+ SOURCE_RELEASE: "7.9"
+ TARGET_RELEASE: "8.8"
+ RHUI: "aws"
+ LEAPPDATA_BRANCH: "upstream"
+ LEAPP_NO_RHSM: "1"
+ USE_CUSTOM_REPOS: rhui
-# On-demand minimal beaker tests
-- &beaker-minimal-7to8-abstract-ondemand
+- &sanity-79to88
<<: *sanity-abstract-7to8
- manual_trigger: True
- labels:
- - beaker-minimal
- identifier: beaker-minimal-7to8-abstract-ondemand
+ trigger: pull_request
+ identifier: sanity-7.9to8.8
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:partitioning & tag:7to8 & enabled:true'
+ plan_filter: 'tag:7to8 & tag:sanity & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -142,24 +151,30 @@ jobs:
- python2-leapp
- leapp-upgrade-el7toel8-deps
order: 40
- tmt:
+ - tmt:
context:
distro: "rhel-7.9"
+ distro_target: "rhel-8.8"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
+ env:
+ SOURCE_RELEASE: "7.9"
+ TARGET_RELEASE: "8.8"
-# On-demand kernel-rt tests
-- &kernel-rt-abstract-7to8-ondemand
+- &beaker-minimal-79to88
<<: *beaker-minimal-7to8-abstract-ondemand
+ trigger: pull_request
labels:
- - kernel-rt
- identifier: sanity-7to8-kernel-rt-abstract-ondemand
+ - beaker-minimal
+ - beaker-minimal-7.9to8.8
+ - 7.9to8.8
+ identifier: sanity-7.9to8.8-beaker-minimal-ondemand
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:kernel-rt & tag:7to8 & enabled:true'
+ plan_filter: 'tag:7to8 & tag:partitioning & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -169,53 +184,17 @@ jobs:
- python2-leapp
- leapp-upgrade-el7toel8-deps
order: 40
- tmt:
+ - tmt:
context:
distro: "rhel-7.9"
+ distro_target: "rhel-8.8"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
-
-
-# ###################################################################### #
-# ######################### Individual tests ########################### #
-# ###################################################################### #
-
-# Tests: 7.9 -> 8.8
-- &sanity-79to88-aws
- <<: *sanity-abstract-7to8-aws
- trigger: pull_request
- identifier: sanity-7.9to8.8-aws
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.8"
- RHUI: "aws"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
-
-- &sanity-79to88
- <<: *sanity-abstract-7to8
- trigger: pull_request
- identifier: sanity-7.9to8.8
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.8"
- LEAPPDATA_BRANCH: "upstream"
-
-- &beaker-minimal-79to88
- <<: *beaker-minimal-7to8-abstract-ondemand
- trigger: pull_request
- labels:
- - beaker-minimal
- - beaker-minimal-7.9to8.8
- - 7.9to8.8
- identifier: sanity-7.9to8.8-beaker-minimal-ondemand
- env:
- SOURCE_RELEASE: "7.9"
- TARGET_RELEASE: "8.8"
- LEAPPDATA_BRANCH: "upstream"
- &kernel-rt-79to88
<<: *kernel-rt-abstract-7to8-ondemand
@@ -225,33 +204,94 @@ jobs:
- kernel-rt-7.9to8.8
- 7.9to8.8
identifier: sanity-7.9to8.8-kernel-rt-ondemand
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:7to8 & tag:kernel-rt & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-7-x86_64/"
+ packages:
+ - leapp-repository
+ - python2-leapp
+ - leapp-upgrade-el7toel8-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-7.9"
+ distro_target: "rhel-8.8"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.8"
- LEAPPDATA_BRANCH: "upstream"
# Tests: 7.9 -> 8.10
- &sanity-79to810
<<: *sanity-abstract-7to8
trigger: pull_request
identifier: sanity-7.9to8.10
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:7to8 & tag:sanity & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-7-x86_64/"
+ packages:
+ - leapp-repository
+ - python2-leapp
+ - leapp-upgrade-el7toel8-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-7.9"
+ distro_target: "rhel-8.10"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.10"
- LEAPPDATA_BRANCH: "upstream"
-# NOTE(mkluson) RHEL 8.10 content is not publicly available (via RHUI)
-#- &sanity-79to810-aws
-# <<: *sanity-abstract-7to8-aws
-# trigger: pull_request
-# identifier: sanity-7.9to8.10-aws
-# env:
-# SOURCE_RELEASE: "7.9"
-# TARGET_RELEASE: "8.10"
-# RHUI: "aws"
-# LEAPPDATA_BRANCH: "upstream"
-# LEAPP_NO_RHSM: "1"
-# USE_CUSTOM_REPOS: rhui
+- &sanity-79to810-aws
+ <<: *sanity-abstract-7to8-aws
+ trigger: pull_request
+ identifier: sanity-7.9to8.10-aws
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:7to8 & tag:upgrade_happy_path & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-7-x86_64/"
+ packages:
+ - leapp-repository
+ - python2-leapp
+ - leapp-upgrade-el7toel8-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-7.9"
+ distro_target: "rhel-8.10"
+ settings:
+ provisioning:
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
+ env:
+ SOURCE_RELEASE: "7.9"
+ TARGET_RELEASE: "8.10"
+ RHUI: "aws"
+ LEAPPDATA_BRANCH: "upstream"
+ LEAPP_NO_RHSM: "1"
+ USE_CUSTOM_REPOS: rhui
- &beaker-minimal-79to810
<<: *beaker-minimal-7to8-abstract-ondemand
@@ -261,10 +301,30 @@ jobs:
- beaker-minimal-7.9to8.10
- 7.9to8.10
identifier: sanity-7.9to8.10-beaker-minimal-ondemand
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:7to8 & tag:partitioning & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-7-x86_64/"
+ packages:
+ - leapp-repository
+ - python2-leapp
+ - leapp-upgrade-el7toel8-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-7.9"
+ distro_target: "rhel-8.10"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.10"
- LEAPPDATA_BRANCH: "upstream"
- &kernel-rt-79to810
<<: *kernel-rt-abstract-7to8-ondemand
@@ -274,14 +334,34 @@ jobs:
- kernel-rt-7.9to8.10
- 7.9to8.10
identifier: sanity-7.9to8.10-kernel-rt-ondemand
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:7to8 & tag:kernel-rt & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-7-x86_64/"
+ packages:
+ - leapp-repository
+ - python2-leapp
+ - leapp-upgrade-el7toel8-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-7.9"
+ distro_target: "rhel-8.10"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "7.9"
TARGET_RELEASE: "8.10"
- LEAPPDATA_BRANCH: "upstream"
# ###################################################################### #
-# ############################## 8 TO 10 ############################### #
+# ############################## 8 TO 9 ################################ #
# ###################################################################### #
# ###################################################################### #
@@ -304,26 +384,6 @@ jobs:
epel-8-x86_64:
distros: [RHEL-8.10.0-Nightly]
identifier: sanity-abstract-8to9
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:tier0 & tag:8to9 & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.10"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
- &sanity-abstract-8to9-aws
<<: *sanity-abstract-8to9
@@ -334,27 +394,6 @@ jobs:
epel-8-x86_64:
distros: [RHEL-8.10-rhui]
identifier: sanity-abstract-8to9-aws
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.10"
- settings:
- provisioning:
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
- &beaker-minimal-8to9-abstract-ondemand
<<: *sanity-abstract-8to9
@@ -365,45 +404,16 @@ jobs:
epel-8-x86_64:
distros: [RHEL-8.10.0-Nightly]
identifier: beaker-minimal-8to9-abstract-ondemand
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
- environments:
- - artifacts:
- - type: "repository"
- id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
- packages:
- - leapp-repository
- - python3-leapp
- - leapp-upgrade-el8toel9-deps
- order: 40
- tmt:
- context:
- distro: "rhel-8.10"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
-
- &kernel-rt-abstract-8to9-ondemand
<<: *beaker-minimal-8to9-abstract-ondemand
labels:
- kernel-rt
identifier: sanity-8to9-kernel-rt-abstract-ondemand
- tf_extra_params:
- test:
- tmt:
- plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
- environments:
- - tmt:
- context:
- distro: "rhel-8.10"
- settings:
- provisioning:
- tags:
- BusinessUnit: sst_upgrades@leapp_upstream_test
+
+# ###################################################################### #
+# ######################### Individual tests ########################### #
+# ###################################################################### #
# Tests: 8.8 -> 9.2
- &sanity-88to92
@@ -416,7 +426,7 @@ jobs:
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:tier0 & tag:8to9 & enabled:true'
+ plan_filter: 'tag:8to9 & tag:tier0 & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -429,6 +439,7 @@ jobs:
tmt:
context:
distro: "rhel-8.8"
+ distro_target: "rhel-9.2"
settings:
provisioning:
tags:
@@ -437,8 +448,6 @@ jobs:
SOURCE_RELEASE: "8.8"
TARGET_RELEASE: "9.2"
RHSM_REPOS_EUS: "eus"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_DEVEL_TARGET_RELEASE: "9.2"
- &sanity-88to92-aws
<<: *sanity-abstract-8to9-aws
@@ -447,11 +456,10 @@ jobs:
epel-8-x86_64:
distros: [RHEL-8.8-rhui]
identifier: sanity-8.8to9.2-aws
- # NOTE(mkluson) Unfortunately to use yaml templates we need to rewrite the whole tf_extra_params dict
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
+ plan_filter: 'tag:8to9 & tag:rhui-tier[0] & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -464,6 +472,7 @@ jobs:
tmt:
context:
distro: "rhel-8.8"
+ distro_target: "rhel-9.2"
settings:
provisioning:
post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
@@ -472,11 +481,7 @@ jobs:
env:
SOURCE_RELEASE: "8.8"
TARGET_RELEASE: "9.2"
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms"
- RHUI: "aws"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_NO_RHSM: "1"
- USE_CUSTOM_REPOS: rhui
+ RHUI_HYPERSCALER: aws
- &beaker-minimal-88to92
<<: *beaker-minimal-8to9-abstract-ondemand
@@ -492,7 +497,7 @@ jobs:
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
+ plan_filter: 'tag:8to9 &tag:partitioning & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -505,6 +510,7 @@ jobs:
tmt:
context:
distro: "rhel-8.8"
+ distro_target: "rhel-9.2"
settings:
provisioning:
post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
@@ -513,8 +519,7 @@ jobs:
env:
SOURCE_RELEASE: "8.8"
TARGET_RELEASE: "9.2"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_DEVEL_TARGET_RELEASE: "9.2"
+ RHSM_REPOS_EUS: "eus"
- &kernel-rt-88to92
<<: *kernel-rt-abstract-8to9-ondemand
@@ -530,7 +535,7 @@ jobs:
tf_extra_params:
test:
tmt:
- plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
+ plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
environments:
- artifacts:
- type: "repository"
@@ -543,6 +548,7 @@ jobs:
tmt:
context:
distro: "rhel-8.8"
+ distro_target: "rhel-9.2"
settings:
provisioning:
tags:
@@ -550,8 +556,7 @@ jobs:
env:
SOURCE_RELEASE: "8.8"
TARGET_RELEASE: "9.2"
- LEAPPDATA_BRANCH: "upstream"
- LEAPP_DEVEL_TARGET_RELEASE: "9.2"
+ RHSM_REPOS_EUS: "eus"
# Tests: 8.10 -> 9.4
@@ -559,11 +564,30 @@ jobs:
<<: *sanity-abstract-8to9
trigger: pull_request
identifier: sanity-8.10to9.4
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:8to9 & tag:tier0 & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
+ packages:
+ - leapp-repository
+ - python3-leapp
+ - leapp-upgrade-el8toel9-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-8.10"
+ distro_target: "rhel-9.4"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
- LEAPPDATA_BRANCH: "upstream"
# On-demand minimal beaker tests
- &beaker-minimal-810to94
@@ -574,10 +598,30 @@ jobs:
- beaker-minimal-8.10to9.4
- 8.10to9.4
identifier: sanity-8.10to9.4-beaker-minimal-ondemand
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:8to9 & tag:partitioning & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
+ packages:
+ - leapp-repository
+ - python3-leapp
+ - leapp-upgrade-el8toel9-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-8.10"
+ distro_target: "rhel-9.4"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
- LEAPPDATA_BRANCH: "upstream"
# On-demand kernel-rt tests
- &kernel-rt-810to94
@@ -588,8 +632,126 @@ jobs:
- kernel-rt-8.10to9.4
- 8.10to9.4
identifier: sanity-8.10to9.4-kernel-rt-ondemand
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
+ packages:
+ - leapp-repository
+ - python3-leapp
+ - leapp-upgrade-el8toel9-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-8.10"
+ distro_target: "rhel-9.4"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
- LEAPPDATA_BRANCH: "upstream"
+
+
+# Tests: 8.10 -> 9.5
+- &sanity-810to95
+ <<: *sanity-abstract-8to9
+ trigger: pull_request
+ identifier: sanity-8.10to9.5
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:8to9 & tag:tier0 & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
+ packages:
+ - leapp-repository
+ - python3-leapp
+ - leapp-upgrade-el8toel9-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-8.10"
+ distro_target: "rhel-9.5"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
+ env:
+ SOURCE_RELEASE: "8.10"
+ TARGET_RELEASE: "9.5"
+
+# On-demand minimal beaker tests
+- &beaker-minimal-810to95
+ <<: *beaker-minimal-8to9-abstract-ondemand
+ trigger: pull_request
+ labels:
+ - beaker-minimal
+ - beaker-minimal-8.10to9.5
+ - 8.10to9.5
+ identifier: sanity-8.10to9.5-beaker-minimal-ondemand
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:8to9 & tag:partitioning & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
+ packages:
+ - leapp-repository
+ - python3-leapp
+ - leapp-upgrade-el8toel9-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-8.10"
+ distro_target: "rhel-9.5"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
+ env:
+ SOURCE_RELEASE: "8.10"
+ TARGET_RELEASE: "9.5"
+
+# On-demand kernel-rt tests
+- &kernel-rt-810to95
+ <<: *kernel-rt-abstract-8to9-ondemand
+ trigger: pull_request
+ labels:
+ - kernel-rt
+ - kernel-rt-8.10to9.5
+ - 8.10to9.5
+ identifier: sanity-8.10to9.5-kernel-rt-ondemand
+ tf_extra_params:
+ test:
+ tmt:
+ plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
+ environments:
+ - artifacts:
+ - type: "repository"
+ id: "https://download.copr.fedorainfracloud.org/results/@oamg/leapp/epel-8-x86_64/"
+ packages:
+ - leapp-repository
+ - python3-leapp
+ - leapp-upgrade-el8toel9-deps
+ order: 40
+ - tmt:
+ context:
+ distro: "rhel-8.10"
+ distro_target: "rhel-9.5"
+ settings:
+ provisioning:
+ tags:
+ BusinessUnit: sst_upgrades@leapp_upstream_test
+ env:
+ SOURCE_RELEASE: "8.10"
+ TARGET_RELEASE: "9.5"
--
2.42.0

View File

@ -1,40 +0,0 @@
From 4e8ba88e0ebe78cd208d9501738c7a9ec2656a64 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 16 Jul 2024 16:09:34 +0000
Subject: [PATCH 14/23] Update sclorg/testing-farm-as-github-action action to
v3
---
.github/workflows/reuse-tests-7to8.yml | 2 +-
.github/workflows/reuse-tests-8to9.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/reuse-tests-7to8.yml b/.github/workflows/reuse-tests-7to8.yml
index cfa8f41..920372b 100644
--- a/.github/workflows/reuse-tests-7to8.yml
+++ b/.github/workflows/reuse-tests-7to8.yml
@@ -46,7 +46,7 @@ jobs:
steps:
- name: Schedule regression testing for 7to8
id: run_test_7to8
- uses: sclorg/testing-farm-as-github-action@v1.2.10
+ uses: sclorg/testing-farm-as-github-action@v3.0.0
with:
# required
api_url: ${{ secrets.TF_ENDPOINT }}
diff --git a/.github/workflows/reuse-tests-8to9.yml b/.github/workflows/reuse-tests-8to9.yml
index 2315e70..c0b7f06 100644
--- a/.github/workflows/reuse-tests-8to9.yml
+++ b/.github/workflows/reuse-tests-8to9.yml
@@ -47,7 +47,7 @@ jobs:
steps:
- name: Schedule regression testing for 8to9
id: run_test_8to9
- uses: sclorg/testing-farm-as-github-action@v1.2.10
+ uses: sclorg/testing-farm-as-github-action@v3.0.0
with:
# required
api_url: ${{ secrets.TF_ENDPOINT }}
--
2.42.0

View File

@ -1,56 +0,0 @@
From 480d9b5cc0e4cb02992b2319e180bbeacf6a5f2d Mon Sep 17 00:00:00 2001
From: Matej Matuska <mmatuska@redhat.com>
Date: Wed, 17 Jul 2024 15:10:16 +0200
Subject: [PATCH 15/23] Add .readthedocs.yaml fixing builds on RTD
The builds in Read the Docs have been broken for a few months now,
because the .readthedocs.yaml is required.
---
.readthedocs.yaml | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 .readthedocs.yaml
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
new file mode 100644
index 0000000..5b892d8
--- /dev/null
+++ b/.readthedocs.yaml
@@ -0,0 +1,35 @@
+# Read the Docs configuration file for Sphinx projects
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Set the OS, Python version and other tools you might need
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "2.7"
+ # You can also specify other tool versions:
+ # nodejs: "20"
+ # rust: "1.70"
+ # golang: "1.20"
+
+# Build documentation in the "docs/" directory with Sphinx
+sphinx:
+ configuration: docs/source/conf.py
+ # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
+ # builder: "dirhtml"
+ # Fail on all warnings to avoid broken references
+ # fail_on_warning: true
+
+# Optionally build your docs in additional formats such as PDF and ePub
+# formats:
+# - pdf
+# - epub
+
+# Optional but recommended, declare the Python requirements required
+# to build your documentation
+# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
+python:
+ install:
+ - requirements: requirements-docs.txt
--
2.42.0

View File

@ -1,27 +0,0 @@
From 3c3112e1ea10707620fa2102c89fac91cc3c7495 Mon Sep 17 00:00:00 2001
From: Matej Matuska <mmatuska@redhat.com>
Date: Wed, 17 Jul 2024 16:02:39 +0200
Subject: [PATCH 16/23] docs: Pin sphinx-rtd-theme version fixing build error
Previously the 0.4.3 version was correctly used. There are still some
warnings during build, but those were also present previously (verified
by checking old RTD build).
---
requirements-docs.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements-docs.txt b/requirements-docs.txt
index 96e66ba..54d5ba1 100644
--- a/requirements-docs.txt
+++ b/requirements-docs.txt
@@ -2,6 +2,6 @@
CommonMark==0.7.5
sphinx>=1.5,<1.6
-sphinx_rtd_theme
+sphinx_rtd_theme==0.4.3
sphinx-autobuild
git+https://github.com/leapp-to/recommonmark.git@master
--
2.42.0

View File

@ -1,297 +0,0 @@
From d23f1c92b8e647e678538edcbe9389283a6b647d Mon Sep 17 00:00:00 2001
From: Petr Stodulka <pstodulk@redhat.com>
Date: Tue, 2 Apr 2024 14:49:33 +0200
Subject: [PATCH 17/23] Starting initial draft commit for building for EL 9
(Python3.12)
This is initial commit delivering some ground work needed for leapp
to be able to work with Python3.12 on EL 9 systems and prepare
testing.
Most of the work has been delivered by Matej Matuska (thanks!!)
Summary of changes:
* Add el9 build container
* Add fake RHEL 10 container for local containerized tests
As RHEL 10 UBI isn't available yet, use RHEL 9 UBI with Python 3.12
virtualenv.
The container manually updates the pytest and six modules after
installing requirements as the currently used pytest version is too old
for Python 3.12.
setup() functions defined at module level are unsupported in the newer
pytest versions, these are replaced by autouse=True fixtures.
* Makefile: include new EL and Fedora containers for tests and builds
* Packit: build automatically for epel-9-x86_64
Co-authored-by: Matej Matuska <mmatuska@redhat.com>
---
.packit.yaml | 2 ++
Makefile | 29 ++++++++++++-------
res/container-builds/Containerfile.ubi9 | 12 ++++++++
res/container-tests/Containerfile.ubi10 | 38 +++++++++++++++++++++++++
res/container-tests/Containerfile.ubi9 | 9 +++---
tests/scripts/test_audit.py | 6 ++++
tests/scripts/test_exit_status.py | 4 +++
7 files changed, 85 insertions(+), 15 deletions(-)
create mode 100644 res/container-builds/Containerfile.ubi9
create mode 100644 res/container-tests/Containerfile.ubi10
diff --git a/.packit.yaml b/.packit.yaml
index 318abd4..2aead86 100644
--- a/.packit.yaml
+++ b/.packit.yaml
@@ -14,6 +14,7 @@ jobs:
targets:
- epel-7-x86_64
- epel-8-x86_64
+ - epel-9-x86_64
- fedora-all-aarch64
- fedora-all-x86_64
actions:
@@ -32,6 +33,7 @@ jobs:
targets:
- epel-7-x86_64
- epel-8-x86_64
+ - epel-9-x86_64
- fedora-all-aarch64
- fedora-all-x86_64
actions:
diff --git a/Makefile b/Makefile
index 2653896..677c748 100644
--- a/Makefile
+++ b/Makefile
@@ -25,7 +25,7 @@ _TEST_CONTAINER=$${TEST_CONTAINER:-rhel8}
# someone will call copr_build without additional parameters
MASTER_BRANCH=master
-# In case the PR or MR is defined or in case build is not comming from the
+# In case the PR or MR is defined or in case build is not coming from the
# MATER_BRANCH branch, N_REL=0; (so build is not update of the approved
# upstream solution). For upstream builds N_REL=100;
N_REL=`_NR=$${PR:+0}; if test "$${_NR:-100}" == "100"; then _NR=$${MR:+0}; fi; git rev-parse --abbrev-ref HEAD | grep -q "^$(MASTER_BRANCH)$$" || _NR=0; echo $${_NR:-100}`
@@ -76,13 +76,13 @@ help:
@echo " test_container runs linter and unit tests in a container"
@echo " - by default rhel8 container is used"
@echo " - can be changed by setting TEST_CONTAINER env variable"
- @echo " - available containers are: rhel7, rhel8, rhel9"
+ @echo " - available containers are:" rhel{7..10}
@echo " test_container_all runs linter and tests in all available containers"
@echo " lint runs just the linter"
@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 " - available containers are:" el{7..9} f{35..40} 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"
@@ -154,10 +154,10 @@ build_container:
el7) \
_CONT_FILE="Containerfile.centos7"; \
;; \
- el8) \
- _CONT_FILE="Containerfile.ubi8"; \
+ el[8-9]) \
+ _CONT_FILE="Containerfile.ubi"$${BUILD_CONTAINER: -1}; \
;; \
- f3[56]|rawhide) \
+ f3[5-9]|f40|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 && \
@@ -168,7 +168,7 @@ build_container:
exit 1; \
;; \
*) \
- echo "Available containers are el7, el8, f35, f36, rawhide"; \
+ echo "Available containers are: el{7..9} f{35..40} rawhide"; \
exit 1; \
;; \
esac && \
@@ -182,6 +182,7 @@ print_release:
@echo $(RELEASE)
install-deps:
+ @ $(ENTER_VENV) \
pip install -r requirements.txt
install:
@@ -200,10 +201,11 @@ else
pip install -r requirements-tests.txt
endif
-test: lint
+test: lint
@ $(ENTER_VENV) \
pytest -vv --cov-report term-missing --cov=leapp tests/scripts
+# TODO(pstodulk): create ticket to add rhel10 for testing.... py: 3.12
test_container:
@case $(_TEST_CONTAINER) in \
rhel7) \
@@ -218,8 +220,13 @@ test_container:
export _VENV=python3.9; \
export _CONT_FILE="res/container-tests/Containerfile.ubi9"; \
;; \
+ # TODO the container is currently built on top of RHEL 9 UBI with python3.12 virtualenv \
+ rhel10) \
+ export _VENV=python3.12; \
+ export _CONT_FILE="res/container-tests/Containerfile.ubi10"; \
+ ;; \
*) \
- echo "Available test containers are rhel7, rhel8, rhel9"; \
+ echo "Available test containers are: rhel{7..10}"; \
exit 1; \
;; \
esac; \
@@ -229,12 +236,12 @@ test_container:
$(_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 \
+ @for container in "rhel"{7..10}; do \
TEST_CONTAINER=$$container $(MAKE) test_container; \
done
clean_containers:
- @for i in "leapp-build-"{el7,el8,f35,f36,rawhide} "leapp-tests-rhel"{7,8,9}; do \
+ @for i in "leapp-build-"{el7,el8,el9,f35,f36,rawhide} "leapp-tests-rhel"{7..10}; do \
[ -z $$($(_CONTAINER_TOOL) images -q "$$i") ] || \
$(_CONTAINER_TOOL) rmi "$$i" > /dev/null 2>&1 || :; \
done
diff --git a/res/container-builds/Containerfile.ubi9 b/res/container-builds/Containerfile.ubi9
new file mode 100644
index 0000000..7c63339
--- /dev/null
+++ b/res/container-builds/Containerfile.ubi9
@@ -0,0 +1,12 @@
+FROM registry.access.redhat.com/ubi9/ubi:latest
+
+VOLUME /payload
+
+ENV DIST_VERSION 9
+
+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-tests/Containerfile.ubi10 b/res/container-tests/Containerfile.ubi10
new file mode 100644
index 0000000..22d5a8f
--- /dev/null
+++ b/res/container-tests/Containerfile.ubi10
@@ -0,0 +1,38 @@
+FROM registry.access.redhat.com/ubi9/ubi:latest
+
+VOLUME /payload
+
+RUN dnf update -y && \
+ dnf install python3 python312 python3-pip make -y && \
+ python3 -m pip install --upgrade pip==20.3.4
+
+RUN pip install virtualenv
+
+WORKDIR /payload
+ENTRYPOINT virtualenv testenv -p "/usr/bin/$PYTHON_VENV" && \
+ source testenv/bin/activate && \
+ pip install -U setuptools && \
+ pip install -U funcsigs && \
+ pip install -U -r requirements-tests.txt && \
+ pip install -U pytest && \
+ pip install -U six && \
+ pip install -U . && \
+ export LINTABLES=$(find . -name '*.py' | grep -E -e '^\./leapp\/' -e '^\./tests/scripts/' | sort -u ) && \
+ echo '==================================================' && \
+ echo '==================================================' && \
+ echo '=============== Running pylint ===============' && \
+ echo '==================================================' && \
+ echo '==================================================' && \
+ echo $LINTABLES | xargs pylint && echo '===> pylint PASSED' && \
+ echo '==================================================' && \
+ echo '==================================================' && \
+ echo '=============== Running flake8 ===============' && \
+ echo '==================================================' && \
+ echo '==================================================' && \
+ flake8 $LINTABLES && echo '===> flake8 PASSED' && \
+ echo '==================================================' && \
+ echo '==================================================' && \
+ echo '=============== Running tests ===============' && \
+ echo '==================================================' && \
+ echo '==================================================' && \
+ py.test -vv --cov-report term-missing --cov=leapp tests/scripts/*.py
diff --git a/res/container-tests/Containerfile.ubi9 b/res/container-tests/Containerfile.ubi9
index 359d46b..b1b5b71 100644
--- a/res/container-tests/Containerfile.ubi9
+++ b/res/container-tests/Containerfile.ubi9
@@ -1,12 +1,13 @@
-FROM registry.access.redhat.com/ubi8/ubi:latest
+FROM registry.access.redhat.com/ubi9/ubi:latest
VOLUME /payload
-RUN yum update -y && \
- yum install python3 python39 python3-virtualenv make -y && \
- yum -y install python3-pip && \
+RUN dnf update -y && \
+ dnf install python3 python39 make python3-pip -y && \
python3 -m pip install --upgrade pip==20.3.4
+RUN pip install virtualenv
+
WORKDIR /payload
ENTRYPOINT virtualenv testenv -p "/usr/bin/$PYTHON_VENV" && \
source testenv/bin/activate && \
diff --git a/tests/scripts/test_audit.py b/tests/scripts/test_audit.py
index fae01c3..98a1998 100644
--- a/tests/scripts/test_audit.py
+++ b/tests/scripts/test_audit.py
@@ -4,6 +4,8 @@ import os
import sqlite3
import uuid
+import pytest
+
from leapp.utils.audit import get_connection, Execution, Host, MessageData, \
DataSource, Message, Audit, get_messages, checkpoint, get_checkpoints, create_audit_entry, get_audit_entry
from leapp.config import get_config
@@ -95,10 +97,14 @@ def setup_module():
get_config().set('database', 'path', '/tmp/leapp-test.db')
+@pytest.fixture(autouse=True)
def setup():
path = get_config().get('database', 'path')
if os.path.isfile(path):
os.unlink(path)
+ yield
+ if os.path.isfile(path):
+ os.unlink(path)
def test_migrations_are_applied():
diff --git a/tests/scripts/test_exit_status.py b/tests/scripts/test_exit_status.py
index 11e8583..0596ab3 100644
--- a/tests/scripts/test_exit_status.py
+++ b/tests/scripts/test_exit_status.py
@@ -29,10 +29,14 @@ def setup_module():
get_config().set('database', 'path', '/tmp/leapp-test.db')
+@pytest.fixture(autouse=True)
def setup():
path = get_config().get('database', 'path')
if os.path.isfile(path):
os.unlink(path)
+ yield
+ if os.path.isfile(path):
+ os.unlink(path)
@pytest.mark.parametrize('error, code', [(None, 0), ('StopActorExecution', 0), ('StopActorExecutionError', 0),
--
2.42.0

View File

@ -1,157 +0,0 @@
From 098e32d0b9d179992f76e6e6e0cb4c54f852de4d Mon Sep 17 00:00:00 2001
From: Michal Reznik <mreznik@redhat.com>
Date: Sun, 7 Apr 2024 18:08:05 +0200
Subject: [PATCH 18/23] Replace deprecated FileFinder.find_module (Python 3.12)
The find_module function has been deprecated for a long time and
it has been removed in Python3.12. To keep the backward compatibility,
we introduce compat.load_module() function that is compatible with
Python2.7 -> Python3.12 now. Replacing all previous load of module
in code by this function.
Similar applies for the pkgutil.get_loader()
Co-authored-by: Matej Matuska <mmatuska@redhat.com>
---
leapp/cli/__init__.py | 7 ++++++-
leapp/compat.py | 19 +++++++++++++++++++
leapp/repository/__init__.py | 3 ++-
leapp/repository/actor_definition.py | 3 ++-
leapp/snactor/__init__.py | 3 ++-
res/container-tests/Containerfile.ubi10 | 3 +++
6 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/leapp/cli/__init__.py b/leapp/cli/__init__.py
index ab16198..59192f9 100644
--- a/leapp/cli/__init__.py
+++ b/leapp/cli/__init__.py
@@ -1,3 +1,4 @@
+import importlib
import os
import pkgutil
import socket
@@ -24,7 +25,11 @@ def _load_commands(base_command):
if os.path.isdir(entry_path) and os.path.isfile(os.path.join(entry_path, '__init__.py')):
# We found a package - We will import it and get the `register` symbol and check if it is callable.
package_name = 'leapp.cli.commands.{}'.format(entry)
- package = pkgutil.get_loader(package_name).load_module(package_name)
+ if sys.version_info < (3, 12):
+ # get_loader and load_module are deprecated since 3.12
+ package = pkgutil.get_loader(package_name).load_module(package_name) # noqa: E501, pylint: disable=deprecated-method
+ else:
+ package = importlib.import_module(package_name)
register = getattr(package, 'register', None)
if callable(register):
register(base_command)
diff --git a/leapp/compat.py b/leapp/compat.py
index 2e340a2..a8c8bdf 100644
--- a/leapp/compat.py
+++ b/leapp/compat.py
@@ -1,4 +1,5 @@
import gettext # noqa: F401; pylint: disable=unused-import
+import importlib
import locale
import sys
@@ -66,3 +67,21 @@ else:
:return: Nothing
"""
raise exc.with_traceback(tb)
+
+
+def load_module(importer, name):
+ """
+ Loads a module using the given importer and module name
+
+ :param importer: A finder implementation (returned by e.g. pkgutils.iter_modules)
+ :param name: Module name
+ :return: The loaded module
+ """
+ if sys.version_info < (3, 4):
+ return importer.find_module(name).load_module(name)
+
+ spec = importer.find_spec(name)
+ module = importlib.util.module_from_spec(spec)
+ sys.modules[name] = module
+ spec.loader.exec_module(module)
+ return module
diff --git a/leapp/repository/__init__.py b/leapp/repository/__init__.py
index b47af3e..58b6d16 100644
--- a/leapp/repository/__init__.py
+++ b/leapp/repository/__init__.py
@@ -3,6 +3,7 @@ import os
import pkgutil
import sys
+from leapp.compat import load_module
from leapp.exceptions import RepoItemPathDoesNotExistError, UnsupportedDefinitionKindError
from leapp.models import get_models, resolve_model_references
import leapp.libraries.common # noqa # pylint: disable=unused-import
@@ -166,7 +167,7 @@ class Repository(object):
directories = [os.path.join(self._repo_dir, os.path.dirname(module)) for module in modules]
prefix = prefix + '.' if not prefix.endswith('.') else prefix
for importer, name, ispkg in pkgutil.iter_modules(directories, prefix=prefix):
- importer.find_module(name).load_module(name)
+ load_module(importer, name)
def serialize(self):
"""
diff --git a/leapp/repository/actor_definition.py b/leapp/repository/actor_definition.py
index 2b5df1a..0e9cc0a 100644
--- a/leapp/repository/actor_definition.py
+++ b/leapp/repository/actor_definition.py
@@ -11,6 +11,7 @@ from multiprocessing import Process, Queue, Pipe
import leapp.libraries.actor # noqa # pylint: disable=unused-import
from leapp.actors import get_actor_metadata, get_actors
+from leapp.compat import load_module
from leapp.exceptions import (ActorInspectionFailedError, LeappRuntimeError, MultipleActorsError,
UnsupportedDefinitionKindError)
from leapp.repository.definition import DefinitionKind
@@ -193,7 +194,7 @@ class ActorDefinition(object):
path = os.path.abspath(os.path.join(self._repo_dir, self.directory))
for importer, name, is_pkg in pkgutil.iter_modules((path,)):
if not is_pkg:
- self._module = importer.find_module(name).load_module(name)
+ self._module = load_module(importer, name)
break
def discover(self):
diff --git a/leapp/snactor/__init__.py b/leapp/snactor/__init__.py
index 22ea993..3264a26 100644
--- a/leapp/snactor/__init__.py
+++ b/leapp/snactor/__init__.py
@@ -2,6 +2,7 @@ import os
import pkgutil
import socket
+from leapp.compat import load_module
from leapp.utils.i18n import _ # noqa; pylint: disable=redefined-builtin
from leapp.snactor import commands
from leapp.snactor.commands import workflow
@@ -30,7 +31,7 @@ def _load_commands_from(path):
for importer, name, is_pkg in pkgutil.iter_modules([pkg_path]):
if is_pkg:
continue
- mod = importer.find_module(name).load_module(name)
+ mod = load_module(importer, name)
if hasattr(mod.cli, 'command'):
if not mod.cli.command.parent:
cli.command.add_sub(mod.cli.command)
diff --git a/res/container-tests/Containerfile.ubi10 b/res/container-tests/Containerfile.ubi10
index 22d5a8f..6d6507c 100644
--- a/res/container-tests/Containerfile.ubi10
+++ b/res/container-tests/Containerfile.ubi10
@@ -14,6 +14,9 @@ ENTRYPOINT virtualenv testenv -p "/usr/bin/$PYTHON_VENV" && \
pip install -U setuptools && \
pip install -U funcsigs && \
pip install -U -r requirements-tests.txt && \
+ # NOTE(mmatuska): The pytest ver defined in requirements-tests is too old \
+ # for Python 3.12 (missing imp module), there do an update here until we \
+ # bump that. Similarly for six. \
pip install -U pytest && \
pip install -U six && \
pip install -U . && \
--
2.42.0

View File

@ -1,42 +0,0 @@
From 666e66c1f3f1d21b0b63cc9e4bbbb3eb263513aa Mon Sep 17 00:00:00 2001
From: Michal Reznik <mreznik@redhat.com>
Date: Sat, 13 Apr 2024 11:18:40 +0200
Subject: [PATCH 19/23] draft: Fix SafeConfigParser error
AttributeError: module 'configparser' has no attribute 'SafeConfigParser'
---
leapp/messaging/answerstore.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/leapp/messaging/answerstore.py b/leapp/messaging/answerstore.py
index b2c707d..afd28dc 100644
--- a/leapp/messaging/answerstore.py
+++ b/leapp/messaging/answerstore.py
@@ -2,6 +2,10 @@ import multiprocessing
import six
from six.moves import configparser
+try:
+ from six.moves.configparser import SafeConfigParser as ConfigParser
+except ImportError:
+ from six.moves.configparser import ConfigParser
from leapp.exceptions import CommandError
from leapp.utils.audit import create_audit_entry
@@ -46,10 +50,11 @@ class AnswerStore(object):
Loads an ini config file from the given location.
:param inifile: Path to the answer file to load.
- :return: configparser.SafeConfigParser object
+ :return: configparser.ConfigParser object
:raises CommandError if any of the values are not in key=value format
"""
- conf = configparser.SafeConfigParser(allow_no_value=False)
+ conf = ConfigParser(allow_no_value=False)
+
try:
conf.read(inifile)
return conf
--
2.42.0

View File

@ -1,25 +0,0 @@
From 652de82aa6be50c2971e3e5ead16f42043a3d879 Mon Sep 17 00:00:00 2001
From: Matej Matuska <mmatuska@redhat.com>
Date: Tue, 2 Jul 2024 15:50:21 +0200
Subject: [PATCH 20/23] Silence linter on deprecated module false positive
---
leapp/libraries/stdlib/call.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/leapp/libraries/stdlib/call.py b/leapp/libraries/stdlib/call.py
index b80f860..5d9ceed 100644
--- a/leapp/libraries/stdlib/call.py
+++ b/leapp/libraries/stdlib/call.py
@@ -11,7 +11,7 @@ except ImportError:
# (pstodulk): find_executable() is from the distutils module which was
# removed in Python 3.12. We can get rid of this fallback when we drop
# support for Python 2. https://peps.python.org/pep-0632/
- from distutils.spawn import find_executable as which
+ from distutils.spawn import find_executable as which # pylint: disable=deprecated-module
from leapp.compat import string_types
from leapp.libraries.stdlib.eventloop import POLL_HUP, POLL_IN, POLL_OUT, POLL_PRI, EventLoop
--
2.42.0

View File

@ -1,27 +0,0 @@
From 5c8bb645208ac2e98d3389dcf0dca215bfebf967 Mon Sep 17 00:00:00 2001
From: Matej Matuska <mmatuska@redhat.com>
Date: Fri, 12 Jul 2024 11:10:15 +0200
Subject: [PATCH 21/23] Run unit tests on Python 3.9 on ubi9 instead of ubi8
---
.github/workflows/unit-tests.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index e2376b7..008ce28 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -16,8 +16,9 @@ jobs:
matrix:
scenarios:
- name: Run unit tests with python3.9 on el8
+ - name: Run unit tests with python3.9 on el9
python: python3.9
- container: ubi8
+ container: ubi9
- name: Run unit tests with python 3.6 on el8
python: python3.6
container: ubi8
--
2.42.0

View File

@ -1,28 +0,0 @@
From 0b00cc695ea076eb0f45176385f750654c4acea1 Mon Sep 17 00:00:00 2001
From: Matej Matuska <mmatuska@redhat.com>
Date: Fri, 12 Jul 2024 11:11:18 +0200
Subject: [PATCH 22/23] Add unit tests on Python 3.12 to the GH action
Currently the fake RHEL 10 container is used (based on ubi9).
---
.github/workflows/unit-tests.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index 008ce28..e67264b 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -15,7 +15,9 @@ jobs:
fail-fast: false
matrix:
scenarios:
- - name: Run unit tests with python3.9 on el8
+ - name: Run unit tests with python3.12 on el9
+ python: python3.12
+ container: ubi10
- name: Run unit tests with python3.9 on el9
python: python3.9
container: ubi9
--
2.42.0

View File

@ -1,46 +0,0 @@
From fcd13bc8720cd7efdf5398387307971f6f8afc76 Mon Sep 17 00:00:00 2001
From: David Kubek <dkubek@redhat.com>
Date: Thu, 6 Jun 2024 15:08:44 +0200
Subject: [PATCH 23/23] Fix broken queries on rerun
After the update to the leapp db table names, the rerun command fails.
This commit fixes the issue by using the current schema.
---
leapp/utils/audit/contextclone.py | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/leapp/utils/audit/contextclone.py b/leapp/utils/audit/contextclone.py
index 1c80f2c..d988d06 100644
--- a/leapp/utils/audit/contextclone.py
+++ b/leapp/utils/audit/contextclone.py
@@ -70,14 +70,14 @@ def _dup_audit(db, message, data_source, newcontext, oldcontext):
return lookup
-def _dup_metadata(db, newcontext, oldcontext):
- for row in _fetch_table_for_context(db, 'metadata', oldcontext):
- # id context kind name metadata
- row_id, kind, name, metadata = _row_tuple(row, 'id', 'kind', 'name', 'metadata')
+def _dup_entity(db, newcontext, oldcontext):
+ for row in _fetch_table_for_context(db, 'entity', oldcontext):
+ # id context kind name metadata_hash
+ row_id, kind, name, metadata_hash = _row_tuple(row, 'id', 'kind', 'name', 'metadata_hash')
db.execute(
- 'INSERT INTO metadata (context, kind, name, metadata) VALUES(?, ?, ?, ?)',
- (newcontext, kind, name, metadata))
+ 'INSERT INTO entity (context, kind, name, metadata_hash) VALUES(?, ?, ?, ?)',
+ (newcontext, kind, name, metadata_hash))
def _dup_dialog(db, data_source, newcontext, oldcontext):
@@ -102,5 +102,5 @@ def clone_context(oldcontext, newcontext, use_db=None):
message = _dup_message(db=db, data_source=data_source, newcontext=newcontext, oldcontext=oldcontext)
# Last clone message entries and use the lookup table generated by the data_source and message duplications
_dup_audit(db=db, data_source=data_source, message=message, newcontext=newcontext, oldcontext=oldcontext)
- _dup_metadata(db=db, oldcontext=oldcontext, newcontext=newcontext)
+ _dup_entity(db=db, oldcontext=oldcontext, newcontext=newcontext)
_dup_dialog(db=db, data_source=data_source, oldcontext=oldcontext, newcontext=newcontext)
--
2.42.0

View File

@ -36,8 +36,8 @@
%endif
Name: leapp
Version: 0.17.0
Release: 3%{?dist}
Version: 0.18.0
Release: 1%{?dist}
Summary: OS & Application modernization framework
License: ASL 2.0
@ -65,31 +65,6 @@ Requires: leapp-repository
# PATCHES HERE
# Patch0001: filename.patch
Patch0001: 0001-Update-packit-with-currently-supported-upgrade-paths.patch
Patch0002: 0002-Update-packit-config-after-tier-redefinition.patch
Patch0003: 0003-Reword-the-report-msg-in-the-console-output-to-note-.patch
Patch0004: 0004-Add-renovate.json.patch
Patch0005: 0005-Update-renovate.json.patch
Patch0006: 0006-Add-process-lock.patch
Patch0007: 0007-Extend-information-from-leapp-saved-to-leappdb-847.patch
# CTC2
Patch0008: 0008-Update-peter-evans-create-or-update-comment-digest-t.patch
Patch0009: 0009-Update-dependency-ubuntu-to-v22.patch
Patch0010: 0010-Update-actions-github-script-action-to-v7.patch
Patch0011: 0011-Update-actions-checkout-action-to-v4.patch
Patch0012: 0012-Packit-drop-epel-7-ppc64le-chroot.patch
Patch0013: 0013-Packit-Bring-all-changes-from-leapp-repository.patch
Patch0014: 0014-Update-sclorg-testing-farm-as-github-action-action-t.patch
Patch0015: 0015-Add-.readthedocs.yaml-fixing-builds-on-RTD.patch
Patch0016: 0016-docs-Pin-sphinx-rtd-theme-version-fixing-build-error.patch
Patch0017: 0017-Starting-initial-draft-commit-for-building-for-EL-9-.patch
Patch0018: 0018-Replace-deprecated-FileFinder.find_module-Python-3.1.patch
Patch0019: 0019-draft-Fix-SafeConfigParser-error.patch
Patch0020: 0020-Silence-linter-on-deprecated-module-false-positive.patch
Patch0021: 0021-Run-unit-tests-on-Python-3.9-on-ubi9-instead-of-ubi8.patch
Patch0022: 0022-Add-unit-tests-on-Python-3.12-to-the-GH-action.patch
Patch0023: 0023-Fix-broken-queries-on-rerun.patch
%description
Leapp utility provides the possibility to use the Leapp framework via CLI.
@ -183,29 +158,6 @@ Requires: findutils
# APPLY REGISTERED PATCHES HERE
%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
%patch0017 -p1
%patch0018 -p1
%patch0019 -p1
%patch0020 -p1
%patch0021 -p1
%patch0022 -p1
%patch0023 -p1
##################################################
@ -289,6 +241,11 @@ install -m 0644 -p man/leapp.1 %{buildroot}%{_mandir}/man1/
# no files here
%changelog
* Fri Aug 16 2024 Toshio Kuratomi <toshio@fedoraproject.org> - 0.18.0-1
- Rebase to new upstream version 0.18.0.
- Properly close file descriptors for executed shell commands.
- Resolves: RHEL-27848
* Wed Jul 24 2024 Toshio Kuratomi <toshio@fedoraproject.org> - 0.17.0-3
- Fix broken leapp db queries on rerun
- Port all code to be Python-3.12 compatible.

View File

@ -1 +1 @@
SHA512 (leapp-0.17.0.tar.gz) = 6d14b2ea0337907918f005e7c4e72641f9bd09b08c4fee0174fe848162a541e17a7e69ae862eabe256c5f23d5ccc7d02bd54332144646f5f96db96aa4bf1d593
SHA512 (leapp-0.18.0.tar.gz) = 9539d4fed20f3a5e6772a1365bbd8fdbf6b9246c75d64f937b9048010704d66936e994bd421c466200393bf10b437370bc46aff1684c88c57dbed2695df93a68