forked from rpms/leapp-repository
import leapp-repository-0.16.0-8.el8
This commit is contained in:
parent
90f337e5a7
commit
1203d6cfa5
39
SOURCES/0001-Update-welcome-message.patch
Normal file
39
SOURCES/0001-Update-welcome-message.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From 7c9ea115a68530eb25f5c23d3fcadd60c501bf78 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Wed, 23 Mar 2022 12:23:59 +0100
|
||||
Subject: [PATCH 01/39] Update welcome message
|
||||
|
||||
A necessary change that should finally represent the changes of
|
||||
the previous quarters: several jobs disablement and new CI
|
||||
introduction.
|
||||
No more e2e and internal copr build jobs, /rerun command finally
|
||||
documented.
|
||||
|
||||
OAMG-5822
|
||||
---
|
||||
.github/workflows/pr-welcome-msg.yml | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml
|
||||
index 40f8bba6..a259dc55 100644
|
||||
--- a/.github/workflows/pr-welcome-msg.yml
|
||||
+++ b/.github/workflows/pr-welcome-msg.yml
|
||||
@@ -20,9 +20,13 @@ jobs:
|
||||
body: |
|
||||
## **Thank you for contributing to the Leapp project!**
|
||||
Please note that every PR needs to comply with the [Leapp Guidelines](https://leapp.readthedocs.io/en/latest/contributing.html#) and must pass all tests in order to be mergable.
|
||||
- If you want to re-run tests or request review, you can use following commands as a comment:
|
||||
- - **leapp-ci build** to run copr build and e2e tests in **OAMG CI**
|
||||
+ If you want to request a review or rebuild a package in copr, you can use following commands as a comment:
|
||||
- **review please** to notify leapp developers of review request
|
||||
+ - **/packit copr-build** to submit a public copr build using packit
|
||||
+
|
||||
+ To launch regression testing public members of oamg organization can leave the following comment:
|
||||
+ - **/rerun** to schedule tests using this pr build and leapp*master* as artifacts
|
||||
+ - **/rerun 42** to schedule tests using this pr build and leapp*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)
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
116
SOURCES/0002-Fix-linting-violations.patch
Normal file
116
SOURCES/0002-Fix-linting-violations.patch
Normal file
@ -0,0 +1,116 @@
|
||||
From 44af150b6112cfd4a6d09757e0d7df64f31e8527 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Tue, 29 Mar 2022 15:09:20 +0200
|
||||
Subject: [PATCH 02/39] Fix linting violations
|
||||
|
||||
used-before-assignment is a nice check worth keeping, so let's
|
||||
fix occurencies in commands.upgrade.util code and vstpdconfigread.
|
||||
As is the modified-iterating-list, so this patch fixes appropriately
|
||||
cupsscanner actor's included_directive_check.
|
||||
---
|
||||
commands/upgrade/util.py | 2 +-
|
||||
.../cupsscanner/libraries/cupsscanner.py | 18 +++++++++++++-----
|
||||
.../libraries/config_parser.py | 10 +++++-----
|
||||
.../test_config_parser_vsftpdconfigread.py | 8 ++++++--
|
||||
4 files changed, 25 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/commands/upgrade/util.py b/commands/upgrade/util.py
|
||||
index 75ffa6a6..22466ab7 100644
|
||||
--- a/commands/upgrade/util.py
|
||||
+++ b/commands/upgrade/util.py
|
||||
@@ -20,8 +20,8 @@ def disable_database_sync():
|
||||
def disable_db_sync_decorator(f):
|
||||
@functools.wraps(f)
|
||||
def wrapper(*args, **kwargs):
|
||||
+ saved = os.environ.get('LEAPP_DEVEL_DATABASE_SYNC_OFF', None)
|
||||
try:
|
||||
- saved = os.environ.get('LEAPP_DEVEL_DATABASE_SYNC_OFF', None)
|
||||
os.environ['LEAPP_DEVEL_DATABASE_SYNC_OFF'] = '1'
|
||||
return f(*args, **kwargs)
|
||||
finally:
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/cupsscanner/libraries/cupsscanner.py b/repos/system_upgrade/el7toel8/actors/cupsscanner/libraries/cupsscanner.py
|
||||
index 742d1e44..bc65c458 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/cupsscanner/libraries/cupsscanner.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/cupsscanner/libraries/cupsscanner.py
|
||||
@@ -93,21 +93,29 @@ def include_directive_check(read_func=_read_file):
|
||||
included_files = ['/etc/cups/cupsd.conf']
|
||||
error_list = []
|
||||
|
||||
- for included_file in included_files:
|
||||
+ vetted_included_files = []
|
||||
+ while included_files:
|
||||
+ # NOTE(ivasilev) Will be using stack to process last encountered include directives first
|
||||
+ included_file = included_files.pop(-1)
|
||||
try:
|
||||
lines = read_func(included_file)
|
||||
except IOError:
|
||||
error_list.append('Error during reading file {}: file not'
|
||||
' found'.format(included_file))
|
||||
- included_files.remove(included_file)
|
||||
continue
|
||||
-
|
||||
+ # Append to the resulting list of vetted files if exception wasn't raised
|
||||
+ vetted_included_files.append(included_file)
|
||||
+ # Mark any other included file you find as need-to-be-validated
|
||||
+ includes_to_process = []
|
||||
for line in lines:
|
||||
value = get_directive_value('Include', line)
|
||||
if value:
|
||||
- included_files.append(value)
|
||||
+ includes_to_process.append(value)
|
||||
+ # NOTE(ivasilev) Add discovered Include directives to the stack in reversed order, so that they are processed
|
||||
+ # in the same order they appeared in the file
|
||||
+ included_files.extend(reversed(includes_to_process))
|
||||
|
||||
- return (included_files, error_list)
|
||||
+ return (vetted_included_files, error_list)
|
||||
|
||||
|
||||
def digest_directive_check(path, read_func=_read_file):
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/libraries/config_parser.py b/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/libraries/config_parser.py
|
||||
index 395786f2..a7a6c179 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/libraries/config_parser.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/libraries/config_parser.py
|
||||
@@ -94,9 +94,9 @@ class VsftpdConfigParser(object):
|
||||
|
||||
def _parse_config(self, contents):
|
||||
res = {}
|
||||
- try:
|
||||
- for (ix, line) in enumerate(contents.split('\n')):
|
||||
+ for (ix, line) in enumerate(contents.split('\n')):
|
||||
+ try:
|
||||
self._parse_config_line(line, res)
|
||||
- return res
|
||||
- except ParsingError as e:
|
||||
- raise ParsingError("Syntax error on line %d: %s" % (ix + 1, e))
|
||||
+ except ParsingError as e:
|
||||
+ raise ParsingError("Syntax error on line %d: %s" % (ix + 1, e))
|
||||
+ return res
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/tests/test_config_parser_vsftpdconfigread.py b/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/tests/test_config_parser_vsftpdconfigread.py
|
||||
index 52ee9043..b10ec4c9 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/tests/test_config_parser_vsftpdconfigread.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/vsftpdconfigread/tests/test_config_parser_vsftpdconfigread.py
|
||||
@@ -1,7 +1,6 @@
|
||||
import pytest
|
||||
|
||||
-from leapp.libraries.actor.config_parser import ParsingError, VsftpdConfigOptionParser, \
|
||||
- VsftpdConfigParser
|
||||
+from leapp.libraries.actor.config_parser import ParsingError, VsftpdConfigOptionParser, VsftpdConfigParser
|
||||
|
||||
|
||||
def test_VsftpdConfigOptionParser_invalid_syntax():
|
||||
@@ -66,6 +65,11 @@ def test_VsftpdConfigParser_invalid_syntax():
|
||||
with pytest.raises(ParsingError):
|
||||
VsftpdConfigParser('anonymous_enable')
|
||||
|
||||
+ # Make sure that line num is properly shown
|
||||
+ with pytest.raises(ParsingError) as err:
|
||||
+ VsftpdConfigParser('background=0\n#andthislineisalso=fine\nError on line 3')
|
||||
+ assert "Syntax error on line 3" in str(err.value)
|
||||
+
|
||||
|
||||
def test_VsftpdConfigParser_empty_config():
|
||||
parser = VsftpdConfigParser('')
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,81 @@
|
||||
From 8c3c946501a50939b91066b772e896ca55dd4084 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Tue, 29 Mar 2022 14:58:25 +0200
|
||||
Subject: [PATCH 03/39] Enable building leapp-repository for specific chroots
|
||||
only
|
||||
|
||||
Instead of building for all project chroots use -r/--chroot
|
||||
option to specify chroots.
|
||||
Tmt-tests workflow and copr-build workflow will be passing proper
|
||||
chroots now via COPR_CHROOT env var.
|
||||
Also some refactoring has been done to the workflows to move all
|
||||
magic constants to env section.
|
||||
|
||||
OAMG-6735
|
||||
---
|
||||
.github/workflows/copr-build.yml | 3 +--
|
||||
.github/workflows/tmt-tests.yml | 14 ++++++++++----
|
||||
2 files changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/copr-build.yml b/.github/workflows/copr-build.yml
|
||||
index c2c04a26..8252e327 100644
|
||||
--- a/.github/workflows/copr-build.yml
|
||||
+++ b/.github/workflows/copr-build.yml
|
||||
@@ -32,5 +32,4 @@ jobs:
|
||||
EOF
|
||||
|
||||
pip install copr-cli
|
||||
- make copr_build
|
||||
-
|
||||
+ COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build
|
||||
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
|
||||
index 93c1dd2f..15e8a488 100644
|
||||
--- a/.github/workflows/tmt-tests.yml
|
||||
+++ b/.github/workflows/tmt-tests.yml
|
||||
@@ -37,8 +37,11 @@ jobs:
|
||||
|
||||
- name: Trigger copr build
|
||||
id: copr_build
|
||||
+ env:
|
||||
+ COPR_CONFIG: "copr_fedora.conf"
|
||||
+ COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64"
|
||||
run: |
|
||||
- cat << EOF > copr_fedora.conf
|
||||
+ cat << EOF > $COPR_CONFIG
|
||||
[copr-cli]
|
||||
login = ${{ secrets.FEDORA_COPR_LOGIN }}
|
||||
username = @oamg
|
||||
@@ -48,7 +51,7 @@ jobs:
|
||||
EOF
|
||||
|
||||
pip install copr-cli
|
||||
- PR=${{ steps.pr_nr.outputs.pr_nr }} COPR_CONFIG=copr_fedora.conf make copr_build | tee copr.log
|
||||
+ PR=${{ steps.pr_nr.outputs.pr_nr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log
|
||||
|
||||
COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log)
|
||||
echo "::set-output name=copr_url::${COPR_URL}"
|
||||
@@ -99,8 +102,11 @@ jobs:
|
||||
- name: Trigger copr build for leapp
|
||||
id: copr_build_leapp
|
||||
if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
+ env:
|
||||
+ COPR_CONFIG: "copr_fedora.conf"
|
||||
+ COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64"
|
||||
run: |
|
||||
- cat << EOF > copr_fedora.conf
|
||||
+ cat << EOF > $COPR_CONFIG
|
||||
[copr-cli]
|
||||
login = ${{ secrets.FEDORA_COPR_LOGIN }}
|
||||
username = @oamg
|
||||
@@ -110,7 +116,7 @@ jobs:
|
||||
EOF
|
||||
|
||||
pip install copr-cli
|
||||
- PR=${{ steps.leapp_pr.outputs.leapp_pr }} COPR_CONFIG=copr_fedora.conf make copr_build | tee copr.log
|
||||
+ PR=${{ steps.leapp_pr.outputs.leapp_pr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log
|
||||
|
||||
COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log)
|
||||
echo "::set-output name=copr_url::${COPR_URL}"
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,23 +0,0 @@
|
||||
From 496abd1775779054377c5e35ae96fa4d390bab42 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Tue, 19 Apr 2022 21:51:03 +0200
|
||||
Subject: [PATCH] Enforce the removal of rubygem-irb (do not install it)
|
||||
|
||||
---
|
||||
etc/leapp/transaction/to_remove | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/etc/leapp/transaction/to_remove b/etc/leapp/transaction/to_remove
|
||||
index 0feb782..07c6864 100644
|
||||
--- a/etc/leapp/transaction/to_remove
|
||||
+++ b/etc/leapp/transaction/to_remove
|
||||
@@ -1,3 +1,6 @@
|
||||
### List of packages (each on new line) to be removed from the upgrade transaction
|
||||
# Removing initial-setup package to avoid it asking for EULA acceptance during upgrade - OAMG-1531
|
||||
initial-setup
|
||||
+
|
||||
+# temporary workaround for the file conflict symlink <-> dir (#2030627)
|
||||
+rubygem-irb
|
||||
--
|
||||
2.35.1
|
||||
|
@ -0,0 +1,99 @@
|
||||
From 9e95311904fb90615e8473cc8bf96c2d544f8428 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 11:46:30 +0200
|
||||
Subject: [PATCH 04/39] Switch to the official composite action for tft
|
||||
|
||||
Looks like phracek's github action is mature enough
|
||||
https://github.com/sclorg/testing-farm-as-github-action to
|
||||
perform that switch. Status update enablement is not part
|
||||
of this patch.
|
||||
|
||||
In order to enable wait-for-result functionality the single
|
||||
tmt-tests workflow will have to be split into 2 distinct
|
||||
7to8 and 8to9 workflows (to be done in following commits).
|
||||
This will cause massive refactoring, probably
|
||||
involving moving artifacts preparation into one workflow and
|
||||
creating a specific repository_dispatch event to trigger
|
||||
7to8 and 8to9 with test artifacts as inputs.
|
||||
|
||||
OAMG-6493
|
||||
---
|
||||
.github/workflows/tmt-tests.yml | 46 ++++++++++++++++++++++-----------
|
||||
1 file changed, 31 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
|
||||
index 15e8a488..5cf21e0b 100644
|
||||
--- a/.github/workflows/tmt-tests.yml
|
||||
+++ b/.github/workflows/tmt-tests.yml
|
||||
@@ -140,37 +140,53 @@ jobs:
|
||||
id: run_test_7to8
|
||||
env:
|
||||
ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0},{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
- uses: oamg/testing-farm-service-action@main
|
||||
+ uses: sclorg/testing-farm-as-github-action@v1.2.9
|
||||
with:
|
||||
# required
|
||||
- tft_server: ${{ secrets.TF_ENDPOINT }}
|
||||
- tft_token: ${{ secrets.TF_API_KEY }}
|
||||
- compose: ${{ secrets.COMPOSE_RHEL79 }}
|
||||
- artifacts: ${{ env.ARTIFACTS }}
|
||||
+ api_url: ${{ secrets.TF_ENDPOINT }}
|
||||
+ api_key: ${{ secrets.TF_API_KEY }}
|
||||
+ git_url: 'https://gitlab.cee.redhat.com/oamg/tmt-plans'
|
||||
+ github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# optional
|
||||
- tests_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)"
|
||||
+ tf_scope: 'private'
|
||||
+ tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)"
|
||||
+ compose: ${{ secrets.COMPOSE_RHEL79 }}
|
||||
arch: 'x86_64'
|
||||
copr: 'epel-7-x86_64'
|
||||
+ copr_artifacts: ${{ env.ARTIFACTS }}
|
||||
debug: ${{ secrets.ACTIONS_STEP_DEBUG }}
|
||||
- test_name: '7to8'
|
||||
tmt_context: 'distro=rhel-7'
|
||||
+ pull_request_status_name: '7to8'
|
||||
+ create_issue_comment: 'true'
|
||||
+ # NOTE(ivasilev) In order to update pr status this workflow has to be massively refactored with artifacts
|
||||
+ # preparation moved out to a different workflow and the rest split into 2 workflows - 7to8 and 8to9 that are
|
||||
+ # triggered on a specific repository dispatch event.
|
||||
+ update_pull_request_status: 'false'
|
||||
|
||||
- name: Schedule regression testing for 8to9
|
||||
id: run_test_8to9
|
||||
env:
|
||||
ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0},{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
- uses: oamg/testing-farm-service-action@main
|
||||
+ uses: sclorg/testing-farm-as-github-action@v1.2.9
|
||||
with:
|
||||
# required
|
||||
- tft_server: ${{ secrets.TF_ENDPOINT }}
|
||||
- tft_token: ${{ secrets.TF_API_KEY }}
|
||||
- compose: ${{ secrets.COMPOSE_RHEL86 }}
|
||||
- artifacts: ${{ env.ARTIFACTS }}
|
||||
+ api_url: ${{ secrets.TF_ENDPOINT }}
|
||||
+ api_key: ${{ secrets.TF_API_KEY }}
|
||||
+ git_url: 'https://gitlab.cee.redhat.com/oamg/tmt-plans'
|
||||
+ github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# optional
|
||||
- tests_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)"
|
||||
+ tf_scope: 'private'
|
||||
+ tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)"
|
||||
+ compose: ${{ secrets.COMPOSE_RHEL86 }}
|
||||
arch: 'x86_64'
|
||||
copr: 'epel-8-x86_64'
|
||||
+ copr_artifacts: ${{ env.ARTIFACTS }}
|
||||
debug: ${{ secrets.ACTIONS_STEP_DEBUG }}
|
||||
- test_name: '8to9'
|
||||
- env_vars: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_SKU=RH00069;RHSM_REPOS=rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms;LEAPP_EXEC_ENV_VARS=LEAPP_DEVEL_TARGET_PRODUCT_TYPE=beta'
|
||||
+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_SKU=RH00069;RHSM_REPOS=rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms;LEAPP_EXEC_ENV_VARS=LEAPP_DEVEL_TARGET_PRODUCT_TYPE=beta'
|
||||
tmt_context: 'distro=rhel-8'
|
||||
+ pull_request_status_name: '8to9'
|
||||
+ create_issue_comment: 'true'
|
||||
+ # NOTE(ivasilev) In order to update pr status this workflow has to be massively refactored with artifacts
|
||||
+ # preparation moved out to a different workflow and the rest split into 2 workflows - 7to8 and 8to9 that are
|
||||
+ # triggered on a specific repository dispatch event.
|
||||
+ update_pull_request_status: 'false'
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,36 @@
|
||||
From 3862be2a250964e5459eda6538b2fdb8ae1b9c39 Mon Sep 17 00:00:00 2001
|
||||
From: ina vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Fri, 1 Apr 2022 14:16:12 +0200
|
||||
Subject: [PATCH 05/39] Switch to semicolon build separator in tmt-tests (#873)
|
||||
|
||||
Official github action separates test artifacts string by ; only,
|
||||
so in order to test multiple artifacts this has to land.
|
||||
---
|
||||
.github/workflows/tmt-tests.yml | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
|
||||
index 5cf21e0b..ef68830e 100644
|
||||
--- a/.github/workflows/tmt-tests.yml
|
||||
+++ b/.github/workflows/tmt-tests.yml
|
||||
@@ -139,7 +139,7 @@ jobs:
|
||||
- name: Schedule regression testing for 7to8
|
||||
id: run_test_7to8
|
||||
env:
|
||||
- ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0},{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
+ ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0};{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
uses: sclorg/testing-farm-as-github-action@v1.2.9
|
||||
with:
|
||||
# required
|
||||
@@ -166,7 +166,7 @@ jobs:
|
||||
- name: Schedule regression testing for 8to9
|
||||
id: run_test_8to9
|
||||
env:
|
||||
- ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0},{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
+ ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0};{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
uses: sclorg/testing-farm-as-github-action@v1.2.9
|
||||
with:
|
||||
# required
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,8 +1,8 @@
|
||||
From b4fc2e0ae62e68dd246ed2eedda0df2a3ba90633 Mon Sep 17 00:00:00 2001
|
||||
From: Vinzenz Feenstra <vfeenstr@redhat.com>
|
||||
Date: Fri, 1 Apr 2022 15:13:51 +0200
|
||||
Subject: [PATCH] pcidevicesscanner: Also match deprecation data against kernel
|
||||
modules
|
||||
Subject: [PATCH 06/39] pcidevicesscanner: Also match deprecation data against
|
||||
kernel modules
|
||||
|
||||
Previously when the deprecation data got introduced the kernel drivers
|
||||
reported to be used by lspci have not been checked.
|
||||
@ -66,5 +66,5 @@ index 146f1a33..0f02bd02 100644
|
||||
+ produce_detected_drivers(devices)
|
||||
produce_pci_devices(producer, devices)
|
||||
--
|
||||
2.35.1
|
||||
2.35.3
|
||||
|
28
SOURCES/0007-Fix-krb5-config-not-found-error.patch
Normal file
28
SOURCES/0007-Fix-krb5-config-not-found-error.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 787c7144850fd4664c31b88ac734ac8bf75f4b1b Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Thu, 7 Apr 2022 11:55:53 +0200
|
||||
Subject: [PATCH 07/39] Fix krb5-config not found error
|
||||
|
||||
copr-cli installation started failing on missing this dependency.
|
||||
---
|
||||
.github/workflows/tmt-tests.yml | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
|
||||
index ef68830e..75768e51 100644
|
||||
--- a/.github/workflows/tmt-tests.yml
|
||||
+++ b/.github/workflows/tmt-tests.yml
|
||||
@@ -15,6 +15,10 @@ jobs:
|
||||
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
+ - name: Install necessary deps
|
||||
+ id: deps_install
|
||||
+ run: sudo apt-get install -y libkrb5-dev
|
||||
+
|
||||
- name: Get pull request number
|
||||
id: pr_nr
|
||||
run: |
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 53ceded213ae17ca5d27268bc496e736dfea7e64 Mon Sep 17 00:00:00 2001
|
||||
From: Vinzenz Feenstra <vfeenstr@redhat.com>
|
||||
Date: Thu, 14 Apr 2022 14:50:07 +0200
|
||||
Subject: [PATCH 2/3] pciscanner: Fix 2 issues in regards to pci address
|
||||
Subject: [PATCH 08/39] pciscanner: Fix 2 issues in regards to pci address
|
||||
handling
|
||||
|
||||
In a previous patch, the introduction of the new handling of deprecation
|
||||
@ -40,5 +40,5 @@ index 0f02bd02..eb063abb 100644
|
||||
|
||||
drivers = {device.driver for device in devices if device.driver in entry_lookup}
|
||||
--
|
||||
2.35.1
|
||||
2.35.3
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a1fdabea9c00a96ffc1504577f12733e1c1830ee Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Thu, 7 Apr 2022 14:56:18 +0200
|
||||
Subject: [PATCH 3/3] Ensure the right repositories are enabled on Satellite
|
||||
Subject: [PATCH 09/39] Ensure the right repositories are enabled on Satellite
|
||||
Capsules
|
||||
|
||||
---
|
||||
@ -74,5 +74,5 @@ index 5c8e79ff..e77b7b58 100644
|
||||
+ assert 'satellite-6.11-for-rhel-8-x86_64-rpms' not in rpmmessage.to_enable
|
||||
+ assert 'satellite-capsule-6.11-for-rhel-8-x86_64-rpms' in rpmmessage.to_enable
|
||||
--
|
||||
2.35.1
|
||||
2.35.3
|
||||
|
@ -1,7 +1,7 @@
|
||||
From eeb4f99f57c67937ea562fce11fd5607470ae0a6 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Fri, 22 Apr 2022 00:20:15 +0200
|
||||
Subject: [PATCH] [IPU 8 -> 9] Migrate blacklisted CAs (hotfix)
|
||||
Subject: [PATCH 10/39] [IPU 8 -> 9] Migrate blacklisted CAs (hotfix)
|
||||
|
||||
Preserve blacklisted certificates during the IPU 8 -> 9
|
||||
|
||||
@ -205,5 +205,5 @@ index 00000000..970dcb97
|
||||
+ monkeypatch.setattr(migrateblacklistca, 'run', lambda dummy: dummy)
|
||||
+ assert not mocked_files.called
|
||||
--
|
||||
2.35.1
|
||||
2.35.3
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 32702c7c7d1c445b9ab95e0d1bbdfdf8f06d4303 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Wed, 27 Apr 2022 11:25:40 +0200
|
||||
Subject: [PATCH] Skip comment lines when parsing grub configuration file
|
||||
Subject: [PATCH 11/39] Skip comment lines when parsing grub configuration file
|
||||
|
||||
Added simple unit-test for default grub info to see the valid lines
|
||||
can be parsed as expected.
|
||||
@ -104,5 +104,5 @@ index 00000000..08552771
|
||||
+ assert mocked_run.called
|
||||
+ assert not expected_result
|
||||
--
|
||||
2.35.1
|
||||
2.35.3
|
||||
|
@ -0,0 +1,115 @@
|
||||
From 8a3a44457524f56daf0ee4b3db7dd7be9d4237c4 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Deseyn <tom.deseyn@gmail.com>
|
||||
Date: Tue, 29 Mar 2022 11:44:28 +0200
|
||||
Subject: [PATCH 12/39] Add actor that checks for obsolete .NET versions.
|
||||
|
||||
The actor checks for versions of .NET that are installed on the system,
|
||||
and which are no longer available after the upgrade.
|
||||
|
||||
The unsupported versions are reported to the user.
|
||||
This actor does not inhibit the upgrade.
|
||||
---
|
||||
.../el8toel9/actors/dotnet/actor.py | 40 +++++++++++++++++
|
||||
.../actors/dotnet/tests/test_dotnet.py | 43 +++++++++++++++++++
|
||||
2 files changed, 83 insertions(+)
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/dotnet/actor.py
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/dotnet/tests/test_dotnet.py
|
||||
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/dotnet/actor.py b/repos/system_upgrade/el8toel9/actors/dotnet/actor.py
|
||||
new file mode 100644
|
||||
index 00000000..d6e3e465
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/dotnet/actor.py
|
||||
@@ -0,0 +1,40 @@
|
||||
+from leapp import reporting
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.libraries.common.rpms import has_package
|
||||
+from leapp.models import InstalledRedHatSignedRPM, Report
|
||||
+from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
|
||||
+
|
||||
+UNSUPPORTED_VERSIONS = ['2.1', '3.0', '3.1', '5.0']
|
||||
+
|
||||
+
|
||||
+class DotnetUnsupportedVersionsCheck(Actor):
|
||||
+ """
|
||||
+ Check for installed .NET versions that are no longer supported.
|
||||
+ """
|
||||
+
|
||||
+ name = 'dotnet_unsupported_versions_check'
|
||||
+ consumes = (InstalledRedHatSignedRPM,)
|
||||
+ produces = (Report,)
|
||||
+ tags = (ChecksPhaseTag, IPUWorkflowTag)
|
||||
+
|
||||
+ def process(self):
|
||||
+ unsupported_versions_report_text = ''
|
||||
+
|
||||
+ for unsupported_version in UNSUPPORTED_VERSIONS:
|
||||
+ runtime_package = f'dotnet-runtime-{unsupported_version}'
|
||||
+ if has_package(InstalledRedHatSignedRPM, runtime_package):
|
||||
+ unsupported_versions_report_text += '{0}{1}'.format('\n - ', unsupported_version)
|
||||
+
|
||||
+ if unsupported_versions_report_text:
|
||||
+ reporting.create_report([
|
||||
+ reporting.Title('Unsupported .NET versions installed on the system.'),
|
||||
+ reporting.Summary(
|
||||
+ (
|
||||
+ 'The following versions of .NET are no longer supported :{0}\n'
|
||||
+ 'Applications that use these runtimes will no longer work\n'
|
||||
+ 'and must be updated to target a newer version of .NET.'
|
||||
+ ).format(
|
||||
+ unsupported_versions_report_text
|
||||
+ )
|
||||
+ ),
|
||||
+ reporting.Severity(reporting.Severity.HIGH)])
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/dotnet/tests/test_dotnet.py b/repos/system_upgrade/el8toel9/actors/dotnet/tests/test_dotnet.py
|
||||
new file mode 100644
|
||||
index 00000000..744a4e0b
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/dotnet/tests/test_dotnet.py
|
||||
@@ -0,0 +1,43 @@
|
||||
+import pytest
|
||||
+
|
||||
+from leapp.models import InstalledRedHatSignedRPM, Report, RPM
|
||||
+
|
||||
+
|
||||
+def _generate_rpm_with_name(name):
|
||||
+ return RPM(name=name,
|
||||
+ version='0.1',
|
||||
+ release='1.sm01',
|
||||
+ epoch='1',
|
||||
+ pgpsig='RSA/SHA256, Mon 01 Jan 1970 00:00:00 AM -03, Key ID 199e2f91fd431d51',
|
||||
+ packager='Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>',
|
||||
+ arch='noarch')
|
||||
+
|
||||
+
|
||||
+@pytest.mark.parametrize('unsupported_versions', [
|
||||
+ ([]), # No unsupported versions
|
||||
+ ([2.1]), # Single unsupported version
|
||||
+ ([3.0]), # Other unsupported version
|
||||
+ ([2.1, 3.0]), # Multiple unsupported versions
|
||||
+])
|
||||
+def test_actor_execution(monkeypatch, current_actor_context, unsupported_versions):
|
||||
+ """
|
||||
+ Install one or more dotnet-runtime packages for unsupported versions
|
||||
+ and verify a report is generated.
|
||||
+ """
|
||||
+
|
||||
+ # Couple of random packages
|
||||
+ rpms = [_generate_rpm_with_name('sed'),
|
||||
+ _generate_rpm_with_name('htop')]
|
||||
+
|
||||
+ # dotnet-runtime-{version} packages
|
||||
+ for version in unsupported_versions:
|
||||
+ rpms += [_generate_rpm_with_name(f'dotnet-runtime-{version}')]
|
||||
+
|
||||
+ # Executed actor feeded with fake RPMs
|
||||
+ current_actor_context.feed(InstalledRedHatSignedRPM(items=rpms))
|
||||
+ current_actor_context.run()
|
||||
+
|
||||
+ if unsupported_versions:
|
||||
+ assert current_actor_context.consume(Report)
|
||||
+ else:
|
||||
+ assert not current_actor_context.consume(Report)
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,36 @@
|
||||
From f41767195b7515c86c6070c0b65db035112c6d17 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Wed, 9 Mar 2022 17:10:20 +0100
|
||||
Subject: [PATCH 13/39] Move OpenSSH server config Scanner and related model to
|
||||
the common repository
|
||||
|
||||
---
|
||||
.../{el7toel8 => common}/actors/opensshconfigscanner/actor.py | 0
|
||||
.../actors/opensshconfigscanner/libraries/readopensshconfig.py | 0
|
||||
.../tests/test_readopensshconfig_opensshconfigscanner.py | 0
|
||||
repos/system_upgrade/{el7toel8 => common}/models/opensshconfig.py | 0
|
||||
4 files changed, 0 insertions(+), 0 deletions(-)
|
||||
rename repos/system_upgrade/{el7toel8 => common}/actors/opensshconfigscanner/actor.py (100%)
|
||||
rename repos/system_upgrade/{el7toel8 => common}/actors/opensshconfigscanner/libraries/readopensshconfig.py (100%)
|
||||
rename repos/system_upgrade/{el7toel8 => common}/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py (100%)
|
||||
rename repos/system_upgrade/{el7toel8 => common}/models/opensshconfig.py (100%)
|
||||
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/opensshconfigscanner/actor.py b/repos/system_upgrade/common/actors/opensshconfigscanner/actor.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/el7toel8/actors/opensshconfigscanner/actor.py
|
||||
rename to repos/system_upgrade/common/actors/opensshconfigscanner/actor.py
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/opensshconfigscanner/libraries/readopensshconfig.py b/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/el7toel8/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
rename to repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py b/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/el7toel8/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
rename to repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
diff --git a/repos/system_upgrade/el7toel8/models/opensshconfig.py b/repos/system_upgrade/common/models/opensshconfig.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/el7toel8/models/opensshconfig.py
|
||||
rename to repos/system_upgrade/common/models/opensshconfig.py
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,175 @@
|
||||
From ce1b83fafbbf3b323874fbb363e85a2e5abab4e2 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Wed, 16 Mar 2022 21:48:04 +0100
|
||||
Subject: [PATCH 14/39] Add actor for updating OpenSSH configuration to RHEL9
|
||||
|
||||
---
|
||||
.../actors/opensshdropindirectory/actor.py | 29 ++++++++
|
||||
.../libraries/opensshdropindirectory.py | 67 +++++++++++++++++++
|
||||
.../test_opensshdropindirectory_prepend.py | 44 ++++++++++++
|
||||
3 files changed, 140 insertions(+)
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/opensshdropindirectory/actor.py
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/opensshdropindirectory/libraries/opensshdropindirectory.py
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/opensshdropindirectory/tests/test_opensshdropindirectory_prepend.py
|
||||
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/actor.py b/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/actor.py
|
||||
new file mode 100644
|
||||
index 00000000..17a0c01a
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/actor.py
|
||||
@@ -0,0 +1,29 @@
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.libraries.actor import opensshdropindirectory
|
||||
+from leapp.models import InstalledRedHatSignedRPM, OpenSshConfig
|
||||
+from leapp.tags import ApplicationsPhaseTag, IPUWorkflowTag
|
||||
+
|
||||
+
|
||||
+class OpenSshDropInDirectory(Actor):
|
||||
+ """
|
||||
+ The RHEL 9 provides default configuration file with an Include directive.
|
||||
+
|
||||
+ If the configuration file was modified, it will not be replaced by the update
|
||||
+ and we need to do couple of tweaks:
|
||||
+
|
||||
+ * Insert Include directive as expected by the rest of the OS
|
||||
+ * Verify the resulting configuration is valid
|
||||
+ * The only potentially problematic option is "Subsystem", but it is kept in the
|
||||
+ main sshd_config even in RHEL9 so there is no obvious upgrade path where it
|
||||
+ could cause issues (unlike the Debian version).
|
||||
+
|
||||
+ [1] https://bugzilla.mindrot.org/show_bug.cgi?id=3236
|
||||
+ """
|
||||
+
|
||||
+ name = 'open_ssh_drop_in_directory'
|
||||
+ consumes = (OpenSshConfig, InstalledRedHatSignedRPM,)
|
||||
+ produces = ()
|
||||
+ tags = (IPUWorkflowTag, ApplicationsPhaseTag,)
|
||||
+
|
||||
+ def process(self):
|
||||
+ opensshdropindirectory.process(self.consume(OpenSshConfig))
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/libraries/opensshdropindirectory.py b/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/libraries/opensshdropindirectory.py
|
||||
new file mode 100644
|
||||
index 00000000..d55eee1c
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/libraries/opensshdropindirectory.py
|
||||
@@ -0,0 +1,67 @@
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.libraries.common.rpms import has_package
|
||||
+from leapp.libraries.stdlib import api
|
||||
+from leapp.models import InstalledRedHatSignedRPM
|
||||
+
|
||||
+# The main SSHD configuration file
|
||||
+SSHD_CONFIG = '/etc/ssh/sshd_config'
|
||||
+
|
||||
+# The include directive needed, taken from RHEL9 sshd_config with leapp comment
|
||||
+INCLUDE = 'Include /etc/ssh/sshd_config.d/*.conf'
|
||||
+INCLUDE_BLOCK = ''.join(('# Added by leapp during upgrade from RHEL8 to RHEL9\n', INCLUDE, '\n'))
|
||||
+
|
||||
+
|
||||
+def prepend_string_if_not_present(f, content, check_string):
|
||||
+ """
|
||||
+ This reads the open file descriptor and checks for presense of the `check_string`.
|
||||
+ If not present, the `content` is prepended to the original content of the file and
|
||||
+ result is written.
|
||||
+ Note, that this requires opened file for both reading and writing, for example with:
|
||||
+
|
||||
+ with open(path, r+') as f:
|
||||
+ """
|
||||
+ lines = f.readlines()
|
||||
+ for line in lines:
|
||||
+ if line.lstrip().startswith(check_string):
|
||||
+ # The directive is present
|
||||
+ return
|
||||
+
|
||||
+ # prepend it otherwise, also with comment
|
||||
+ f.seek(0)
|
||||
+ f.write(''.join((content, ''.join(lines))))
|
||||
+
|
||||
+
|
||||
+def process(openssh_messages):
|
||||
+ """
|
||||
+ The main logic of the actor:
|
||||
+ * read the configuration file message
|
||||
+ * skip if no action is needed
|
||||
+ * package not installed
|
||||
+ * the configuration file was not modified
|
||||
+ * insert the include directive if it is not present yet
|
||||
+ """
|
||||
+ config = next(openssh_messages, None)
|
||||
+ if list(openssh_messages):
|
||||
+ api.current_logger().warning('Unexpectedly received more than one OpenSshConfig message.')
|
||||
+ if not config:
|
||||
+ raise StopActorExecutionError(
|
||||
+ 'Could not check openssh configuration', details={'details': 'No OpenSshConfig facts found.'}
|
||||
+ )
|
||||
+
|
||||
+ # If the package is not installed, there is no need to do anything
|
||||
+ if not has_package(InstalledRedHatSignedRPM, 'openssh-server'):
|
||||
+ return
|
||||
+
|
||||
+ # If the configuration file was not modified, the rpm update will bring the new
|
||||
+ # changes by itself
|
||||
+ if not config.modified:
|
||||
+ return
|
||||
+
|
||||
+ # otherwise prepend the Include directive to the main sshd_config
|
||||
+ api.current_logger().debug('Adding the Include directive to {}.'
|
||||
+ .format(SSHD_CONFIG))
|
||||
+ try:
|
||||
+ with open(SSHD_CONFIG, 'r+') as f:
|
||||
+ prepend_string_if_not_present(f, INCLUDE_BLOCK, INCLUDE)
|
||||
+ except (OSError, IOError) as error:
|
||||
+ api.current_logger().error('Failed to modify the file {}: {} '.format(SSHD_CONFIG, error))
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/tests/test_opensshdropindirectory_prepend.py b/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/tests/test_opensshdropindirectory_prepend.py
|
||||
new file mode 100644
|
||||
index 00000000..bccadf4b
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshdropindirectory/tests/test_opensshdropindirectory_prepend.py
|
||||
@@ -0,0 +1,44 @@
|
||||
+import pytest
|
||||
+
|
||||
+from leapp.libraries.actor.opensshdropindirectory import prepend_string_if_not_present
|
||||
+
|
||||
+
|
||||
+class MockFile(object):
|
||||
+ def __init__(self, path, content=None):
|
||||
+ self.path = path
|
||||
+ self.content = content
|
||||
+ self.error = False
|
||||
+
|
||||
+ def readlines(self):
|
||||
+ return self.content.splitlines(True)
|
||||
+
|
||||
+ def seek(self, n):
|
||||
+ self.content = ''
|
||||
+
|
||||
+ def write(self, content):
|
||||
+ self.content = content
|
||||
+
|
||||
+
|
||||
+testdata = (
|
||||
+ ('', 'Prepend', 'Prepend',
|
||||
+ 'Prepend'), # only prepend
|
||||
+ ('Text', '', '',
|
||||
+ 'Text'), # only text
|
||||
+ ('Text', 'Prepend', 'Prepend',
|
||||
+ 'PrependText'), # prepended text
|
||||
+ ('Prepend\nText\n', 'Prepend', 'Prepend',
|
||||
+ 'Prepend\nText\n'), # already present
|
||||
+ ('Text\n', '# Comment\nPrepend\n', 'Prepend',
|
||||
+ '# Comment\nPrepend\nText\n'), # different prepend than check string
|
||||
+ ('Prepend\nText\n', '# Comment\nPrepend\n', 'Prepend',
|
||||
+ 'Prepend\nText\n'), # different prepend than check string, already present
|
||||
+)
|
||||
+
|
||||
+
|
||||
+@pytest.mark.parametrize('file_content,prepend,check_string,expected', testdata)
|
||||
+def test_prepend_string_if_not_present(file_content, prepend, check_string, expected):
|
||||
+ f = MockFile('/etc/ssh/sshd_config', file_content)
|
||||
+
|
||||
+ prepend_string_if_not_present(f, prepend, check_string)
|
||||
+
|
||||
+ assert f.content == expected
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,84 @@
|
||||
From 25eff3169450888e4afa33df2c4a455f58671fe5 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:30:07 +0200
|
||||
Subject: [PATCH 15/39] Add OpenSSH Drop-in directory check to emit info report
|
||||
about modifying sshd_config
|
||||
|
||||
---
|
||||
.../opensshdropindirectorycheck/actor.py | 64 +++++++++++++++++++
|
||||
1 file changed, 64 insertions(+)
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/opensshdropindirectorycheck/actor.py
|
||||
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshdropindirectorycheck/actor.py b/repos/system_upgrade/el8toel9/actors/opensshdropindirectorycheck/actor.py
|
||||
new file mode 100644
|
||||
index 00000000..e8b0385a
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshdropindirectorycheck/actor.py
|
||||
@@ -0,0 +1,64 @@
|
||||
+from leapp import reporting
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.libraries.common.rpms import has_package
|
||||
+from leapp.libraries.stdlib import api
|
||||
+from leapp.models import InstalledRedHatSignedRPM, OpenSshConfig, Report
|
||||
+from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
|
||||
+
|
||||
+
|
||||
+class OpenSshDropInDirectoryCheck(Actor):
|
||||
+ """
|
||||
+ Trigger a notice that the main sshd_config will be updated to contain
|
||||
+ the Include directive so the other configuration files dropped by the
|
||||
+ RHEL9 packages are effective.
|
||||
+
|
||||
+ This might change the sshd behavior so it is advised to verify by the
|
||||
+ customer that the updated system behaves as expected.
|
||||
+ """
|
||||
+
|
||||
+ name = 'open_ssh_drop_in_directory_check'
|
||||
+ consumes = (OpenSshConfig, InstalledRedHatSignedRPM,)
|
||||
+ produces = (Report,)
|
||||
+ tags = (IPUWorkflowTag, ChecksPhaseTag,)
|
||||
+
|
||||
+ def process(self):
|
||||
+ openssh_messages = self.consume(OpenSshConfig)
|
||||
+ config = next(openssh_messages, None)
|
||||
+ if list(openssh_messages):
|
||||
+ api.current_logger().warning('Unexpectedly received more than one OpenSshConfig message.')
|
||||
+ if not config:
|
||||
+ raise StopActorExecutionError(
|
||||
+ 'Could not check openssh configuration', details={'details': 'No OpenSshConfig facts found.'}
|
||||
+ )
|
||||
+
|
||||
+ # If the package is not installed, there is no need to do anything
|
||||
+ if not has_package(InstalledRedHatSignedRPM, 'openssh-server'):
|
||||
+ return
|
||||
+
|
||||
+ # If the configuration file was not modified, the rpm update will bring the new
|
||||
+ # changes by itself
|
||||
+ if not config.modified:
|
||||
+ return
|
||||
+
|
||||
+ # otherwise we will prepend the Include directive to the main sshd_config
|
||||
+ resources = [
|
||||
+ reporting.RelatedResource('package', 'openssh-server'),
|
||||
+ reporting.RelatedResource('file', '/etc/ssh/sshd_config')
|
||||
+ ]
|
||||
+ reporting.create_report([
|
||||
+ reporting.Title('The upgrade will prepend the Incude directive to OpenSSH sshd_config'),
|
||||
+ reporting.Summary(
|
||||
+ 'OpenSSH server configuration needs to be modified to contain Include directive '
|
||||
+ 'for the RHEL9 to work properly and integrate with the other parts of the OS. '
|
||||
+ 'The following snippet will be added to the /etc/ssh/sshd_config during the '
|
||||
+ 'ApplicationsPhase: `Include /etc/ssh/sshd_config.d/*.conf`'
|
||||
+ ),
|
||||
+ reporting.Severity(reporting.Severity.INFO),
|
||||
+ reporting.Tags([
|
||||
+ reporting.Tags.AUTHENTICATION,
|
||||
+ reporting.Tags.SECURITY,
|
||||
+ reporting.Tags.NETWORK,
|
||||
+ reporting.Tags.SERVICES
|
||||
+ ]),
|
||||
+ ] + resources)
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,165 @@
|
||||
From 3217ead5c28a55d8eedc400957e05735e0f94db6 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Wed, 9 Mar 2022 20:53:08 +0100
|
||||
Subject: [PATCH 16/39] OpenSSH Config Scanner: Record the presence of
|
||||
subsystem option
|
||||
|
||||
---
|
||||
.../common/actors/opensshconfigscanner/actor.py | 1 +
|
||||
.../libraries/readopensshconfig.py | 6 ++++++
|
||||
...test_readopensshconfig_opensshconfigscanner.py | 15 +++++++++++++++
|
||||
.../system_upgrade/common/models/opensshconfig.py | 7 +++++--
|
||||
4 files changed, 27 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshconfigscanner/actor.py b/repos/system_upgrade/common/actors/opensshconfigscanner/actor.py
|
||||
index df194559..4553f3e8 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshconfigscanner/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshconfigscanner/actor.py
|
||||
@@ -15,6 +15,7 @@ class OpenSshConfigScanner(Actor):
|
||||
* Protocol
|
||||
* Ciphers
|
||||
* MACs
|
||||
+ * Subsystem sftp
|
||||
|
||||
"""
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py b/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
index 3b70486a..4a8df194 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
@@ -61,6 +61,12 @@ def parse_config(config):
|
||||
if not ret.macs:
|
||||
ret.macs = value
|
||||
|
||||
+ elif el[0].lower() == 'subsystem':
|
||||
+ # Record only first occurence, which is effective
|
||||
+ if el[1].lower() == 'sftp' and len(el) > 2 and not ret.subsystem_sftp:
|
||||
+ # here we need to record all remaining items as command and arguments
|
||||
+ ret.subsystem_sftp = ' '.join(el[2:])
|
||||
+
|
||||
elif el[0].lower() in DEPRECATED_DIRECTIVES:
|
||||
# Filter out duplicit occurences of the same deprecated directive
|
||||
if el[0].lower() not in ret.deprecated_directives:
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py b/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
index 8fa5837b..48d24b28 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
@@ -24,6 +24,8 @@ def test_parse_config():
|
||||
"hostkey /etc/ssh/ssh_host_ed25519_key",
|
||||
"ciphers aes128-ctr",
|
||||
"macs hmac-md5",
|
||||
+ "subsystem sftp internal-sftp",
|
||||
+ "subsystem other internal-other", # this is ignored
|
||||
]
|
||||
|
||||
output = parse_config(config)
|
||||
@@ -34,6 +36,7 @@ def test_parse_config():
|
||||
assert output.protocol == "2"
|
||||
assert output.ciphers == "aes128-ctr"
|
||||
assert output.macs == "hmac-md5"
|
||||
+ assert output.subsystem_sftp == "internal-sftp"
|
||||
|
||||
|
||||
def test_parse_config_case():
|
||||
@@ -41,6 +44,7 @@ def test_parse_config_case():
|
||||
"PermitRootLogin prohibit-password",
|
||||
"UsePrivilegeSeparation yes",
|
||||
"Protocol 1",
|
||||
+ "SubSystem sftp sftp-server",
|
||||
]
|
||||
|
||||
output = parse_config(config)
|
||||
@@ -49,6 +53,7 @@ def test_parse_config_case():
|
||||
assert output.permit_root_login[0].value == "prohibit-password"
|
||||
assert output.use_privilege_separation == "yes"
|
||||
assert output.protocol == "1"
|
||||
+ assert output.subsystem_sftp == "sftp-server"
|
||||
|
||||
|
||||
def test_parse_config_multiple():
|
||||
@@ -58,6 +63,8 @@ def test_parse_config_multiple():
|
||||
"PermitRootLogin yes",
|
||||
"Ciphers aes128-cbc",
|
||||
"Ciphers aes256-cbc",
|
||||
+ "subsystem sftp internal-sftp",
|
||||
+ "subsystem sftp internal-sftp2",
|
||||
]
|
||||
|
||||
output = parse_config(config)
|
||||
@@ -69,6 +76,7 @@ def test_parse_config_multiple():
|
||||
assert output.use_privilege_separation is None
|
||||
assert output.protocol is None
|
||||
assert output.ciphers == 'aes128-cbc'
|
||||
+ assert output.subsystem_sftp == 'internal-sftp'
|
||||
|
||||
|
||||
def test_parse_config_commented():
|
||||
@@ -76,6 +84,7 @@ def test_parse_config_commented():
|
||||
"#PermitRootLogin no",
|
||||
"#UsePrivilegeSeparation no",
|
||||
"#Protocol 12",
|
||||
+ "#SubSystem sftp internal-sftp",
|
||||
]
|
||||
|
||||
output = parse_config(config)
|
||||
@@ -83,6 +92,7 @@ def test_parse_config_commented():
|
||||
assert not output.permit_root_login
|
||||
assert output.use_privilege_separation is None
|
||||
assert output.protocol is None
|
||||
+ assert output.subsystem_sftp is None
|
||||
|
||||
|
||||
def test_parse_config_missing_argument():
|
||||
@@ -90,6 +100,8 @@ def test_parse_config_missing_argument():
|
||||
"PermitRootLogin",
|
||||
"UsePrivilegeSeparation",
|
||||
"Protocol"
|
||||
+ "SubSystem"
|
||||
+ "SubSystem sftp"
|
||||
]
|
||||
|
||||
output = parse_config(config)
|
||||
@@ -97,6 +109,7 @@ def test_parse_config_missing_argument():
|
||||
assert not output.permit_root_login
|
||||
assert output.use_privilege_separation is None
|
||||
assert output.protocol is None
|
||||
+ assert output.subsystem_sftp is None
|
||||
|
||||
|
||||
def test_parse_config_match():
|
||||
@@ -174,6 +187,7 @@ def test_produce_config():
|
||||
use_privilege_separation="yes",
|
||||
protocol="1",
|
||||
deprecated_directives=[],
|
||||
+ subsystem_sftp="internal-sftp",
|
||||
)
|
||||
|
||||
produce_config(fake_producer, config)
|
||||
@@ -183,6 +197,7 @@ def test_produce_config():
|
||||
assert cfg.permit_root_login[0].value == "no"
|
||||
assert cfg.use_privilege_separation == "yes"
|
||||
assert cfg.protocol == '1'
|
||||
+ assert cfg.subsystem_sftp == 'internal-sftp'
|
||||
|
||||
|
||||
def test_actor_execution(current_actor_context):
|
||||
diff --git a/repos/system_upgrade/common/models/opensshconfig.py b/repos/system_upgrade/common/models/opensshconfig.py
|
||||
index 934c9da3..e94c6881 100644
|
||||
--- a/repos/system_upgrade/common/models/opensshconfig.py
|
||||
+++ b/repos/system_upgrade/common/models/opensshconfig.py
|
||||
@@ -34,7 +34,10 @@ class OpenSshConfig(Model):
|
||||
""" Value of the Ciphers directive, if present. Ciphers separated by comma. """
|
||||
macs = fields.Nullable(fields.String())
|
||||
""" Value of the MACs directive, if present. """
|
||||
- modified = fields.Boolean(default=False)
|
||||
- """ True if the configuration file was modified. """
|
||||
deprecated_directives = fields.List(fields.String())
|
||||
""" Configuration directives that were deprecated in the new version of openssh. """
|
||||
+ subsystem_sftp = fields.Nullable(fields.String())
|
||||
+ """ The "Subsystem sftp" configuration option, if present """
|
||||
+
|
||||
+ modified = fields.Boolean(default=False)
|
||||
+ """ True if the configuration file was modified. """
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,137 @@
|
||||
From 85e1bd3c9366c6e15f53097ff0cd846739beb611 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Thu, 17 Mar 2022 16:01:12 +0100
|
||||
Subject: [PATCH 17/39] Warn if the SSHD is not configured to use SFTP server
|
||||
|
||||
---
|
||||
.../actors/opensshsubsystemsftp/actor.py | 22 +++++++++
|
||||
.../libraries/opensshsubsystemsftp.py | 47 +++++++++++++++++++
|
||||
.../tests/test_opensshsubsystemsftp.py | 33 +++++++++++++
|
||||
3 files changed, 102 insertions(+)
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/actor.py
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/tests/test_opensshsubsystemsftp.py
|
||||
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/actor.py b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/actor.py
|
||||
new file mode 100644
|
||||
index 00000000..14d8b882
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/actor.py
|
||||
@@ -0,0 +1,22 @@
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.libraries.actor import opensshsubsystemsftp
|
||||
+from leapp.models import InstalledRedHatSignedRPM, OpenSshConfig
|
||||
+from leapp.reporting import Report
|
||||
+from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
|
||||
+
|
||||
+
|
||||
+class OpenSshSubsystemSftp(Actor):
|
||||
+ """
|
||||
+ The RHEL9 changes the SCP to use SFTP protocol internally. The both RHEL8 and RHEL9
|
||||
+ enable SFTP server by default, but if the user disabled the SFTP for some reason,
|
||||
+ it might make sense to warn that some previously working SCP operations could stop
|
||||
+ working.
|
||||
+ """
|
||||
+
|
||||
+ name = 'open_ssh_subsystem_sftp'
|
||||
+ consumes = (OpenSshConfig, InstalledRedHatSignedRPM,)
|
||||
+ produces = (Report,)
|
||||
+ tags = (IPUWorkflowTag, ChecksPhaseTag)
|
||||
+
|
||||
+ def process(self):
|
||||
+ opensshsubsystemsftp.process(self.consume(OpenSshConfig))
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py
|
||||
new file mode 100644
|
||||
index 00000000..b60c08ca
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py
|
||||
@@ -0,0 +1,47 @@
|
||||
+from leapp import reporting
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.libraries.stdlib import api
|
||||
+
|
||||
+
|
||||
+def process(openssh_messages):
|
||||
+ config = next(openssh_messages, None)
|
||||
+ if list(openssh_messages):
|
||||
+ api.current_logger().warning('Unexpectedly received more than one OpenSshConfig message.')
|
||||
+ if not config:
|
||||
+ raise StopActorExecutionError(
|
||||
+ 'Could not check openssh configuration', details={'details': 'No OpenSshConfig facts found.'}
|
||||
+ )
|
||||
+
|
||||
+ # not modified configuration will get updated by RPM automatically
|
||||
+ if not config.modified:
|
||||
+ return
|
||||
+
|
||||
+ if not config.subsystem_sftp:
|
||||
+ resources = [
|
||||
+ reporting.RelatedResource('package', 'openssh-server'),
|
||||
+ reporting.RelatedResource('file', '/etc/ssh/sshd_config'),
|
||||
+ reporting.ExternalLink(
|
||||
+ title="SCP support in RHEL",
|
||||
+ url="https://access.redhat.com/articles/5284081",
|
||||
+ ),
|
||||
+ # TODO provide a link to documentation or blog post
|
||||
+ ]
|
||||
+ reporting.create_report([
|
||||
+ reporting.Title('OpenSSH configured without SFTP subsystem'),
|
||||
+ reporting.Summary(
|
||||
+ 'The RHEL9 is changing the default SCP behaviour to use SFTP internally '
|
||||
+ 'so not having SFTP server enabled can prevent interoperability and break existing '
|
||||
+ 'scripts on other systems updated to RHEL9 to copy files to or from this machine.'
|
||||
+ ),
|
||||
+ reporting.Remediation(
|
||||
+ hint='Add the following line to the /etc/ssh/sshd_config to enable SFTP server: '
|
||||
+ 'Subsystem sftp /usr/libexec/openssh/sftp-server'
|
||||
+ ),
|
||||
+ reporting.Severity(reporting.Severity.MEDIUM),
|
||||
+ reporting.Tags([
|
||||
+ reporting.Tags.AUTHENTICATION,
|
||||
+ reporting.Tags.SECURITY,
|
||||
+ reporting.Tags.NETWORK,
|
||||
+ reporting.Tags.SERVICES
|
||||
+ ]),
|
||||
+ ] + resources)
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/tests/test_opensshsubsystemsftp.py b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/tests/test_opensshsubsystemsftp.py
|
||||
new file mode 100644
|
||||
index 00000000..4e3c2ace
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/tests/test_opensshsubsystemsftp.py
|
||||
@@ -0,0 +1,33 @@
|
||||
+import pytest
|
||||
+
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.libraries.actor import opensshsubsystemsftp
|
||||
+from leapp.models import OpenSshConfig, Report
|
||||
+
|
||||
+
|
||||
+def test_no_config(current_actor_context):
|
||||
+ with pytest.raises(StopActorExecutionError):
|
||||
+ opensshsubsystemsftp.process(iter([]))
|
||||
+
|
||||
+
|
||||
+@pytest.mark.parametrize('modified,subsystem,expected_report', [
|
||||
+ (False, None, False), # should not happen
|
||||
+ (False, '/usr/libexec/openssh/sftp-server', False), # Defaults
|
||||
+ (True, None, True),
|
||||
+ (True, 'internal-sftp', False),
|
||||
+ (True, '/usr/libexec/openssh/sftp-server', False)
|
||||
+])
|
||||
+def test_subsystem(current_actor_context, modified, subsystem, expected_report):
|
||||
+ conf = OpenSshConfig(
|
||||
+ modified=modified,
|
||||
+ permit_root_login=[],
|
||||
+ deprecated_directives=[]
|
||||
+ )
|
||||
+ if subsystem is not None:
|
||||
+ conf.subsystem_sftp = subsystem
|
||||
+ current_actor_context.feed(conf)
|
||||
+ current_actor_context.run()
|
||||
+ if expected_report:
|
||||
+ assert current_actor_context.consume(Report)
|
||||
+ else:
|
||||
+ assert not current_actor_context.consume(Report)
|
||||
--
|
||||
2.35.3
|
||||
|
41
SOURCES/0018-Fix-actor-tracebacks-for-non-default-lang.patch
Normal file
41
SOURCES/0018-Fix-actor-tracebacks-for-non-default-lang.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From e4f733297937847522ecf4b306182c2bcb293676 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Wed, 4 May 2022 13:39:41 +0200
|
||||
Subject: [PATCH 18/39] Fix actor tracebacks for non-default lang
|
||||
|
||||
This should fix tracebacks in actors when LANGUAGE
|
||||
environment variable is set to non utf-8 in test env.
|
||||
|
||||
OAMG-6750
|
||||
---
|
||||
commands/preupgrade/__init__.py | 1 +
|
||||
commands/upgrade/__init__.py | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/commands/preupgrade/__init__.py b/commands/preupgrade/__init__.py
|
||||
index 92038bb6..46812b36 100644
|
||||
--- a/commands/preupgrade/__init__.py
|
||||
+++ b/commands/preupgrade/__init__.py
|
||||
@@ -62,6 +62,7 @@ def preupgrade(args, breadcrumbs):
|
||||
logger.info('Executing workflow until phase: %s', until_phase)
|
||||
|
||||
# Set the locale, so that the actors parsing command outputs that might be localized will not fail
|
||||
+ os.environ['LANGUAGE'] = 'en_US.UTF-8'
|
||||
os.environ['LC_ALL'] = 'en_US.UTF-8'
|
||||
os.environ['LANG'] = 'en_US.UTF-8'
|
||||
workflow.run(context=context, until_phase=until_phase, skip_dialogs=True)
|
||||
diff --git a/commands/upgrade/__init__.py b/commands/upgrade/__init__.py
|
||||
index c9c2741c..b64e4d77 100644
|
||||
--- a/commands/upgrade/__init__.py
|
||||
+++ b/commands/upgrade/__init__.py
|
||||
@@ -91,6 +91,7 @@ def upgrade(args, breadcrumbs):
|
||||
workflow.load_answers(answerfile_path, userchoices_path)
|
||||
|
||||
# Set the locale, so that the actors parsing command outputs that might be localized will not fail
|
||||
+ os.environ['LANGUAGE'] = 'en_US.UTF-8'
|
||||
os.environ['LC_ALL'] = 'en_US.UTF-8'
|
||||
os.environ['LANG'] = 'en_US.UTF-8'
|
||||
workflow.run(context=context, skip_phases_until=skip_phases_until, skip_dialogs=True,
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 634cf9e3e336779b2300ce4fc09f7e4740005608 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Mon, 21 Mar 2022 18:54:56 +0100
|
||||
Subject: [PATCH 19/39] Move the OpenSSH PermitRootLogin check to common
|
||||
repository
|
||||
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
---
|
||||
.../actors/opensshpermitrootlogincheck/actor.py | 0
|
||||
.../libraries/opensshpermitrootlogincheck.py | 0
|
||||
.../tests/test_library_opensshpermitrootlogincheck.py | 0
|
||||
3 files changed, 0 insertions(+), 0 deletions(-)
|
||||
rename repos/system_upgrade/{el7toel8 => common}/actors/opensshpermitrootlogincheck/actor.py (100%)
|
||||
rename repos/system_upgrade/{el7toel8 => common}/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py (100%)
|
||||
rename repos/system_upgrade/{el7toel8 => common}/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py (100%)
|
||||
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/actor.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/actor.py
|
||||
rename to repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
rename to repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py
|
||||
rename to repos/system_upgrade/common/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,268 @@
|
||||
From 1052277e4525b139d24065db576f8bd750b8da36 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Mon, 21 Mar 2022 20:17:52 +0100
|
||||
Subject: [PATCH 20/39] PermitRootLogin check: add new use cases for 8to9
|
||||
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
---
|
||||
.../opensshpermitrootlogincheck/actor.py | 79 +++++++++++++++++--
|
||||
.../libraries/opensshpermitrootlogincheck.py | 8 ++
|
||||
...est_library_opensshpermitrootlogincheck.py | 26 +++++-
|
||||
3 files changed, 104 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
index f13a7672..f7ee61da 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
@@ -1,7 +1,8 @@
|
||||
from leapp import reporting
|
||||
from leapp.actors import Actor
|
||||
from leapp.exceptions import StopActorExecutionError
|
||||
-from leapp.libraries.actor.opensshpermitrootlogincheck import semantics_changes
|
||||
+from leapp.libraries.actor.opensshpermitrootlogincheck import global_value, semantics_changes
|
||||
+from leapp.libraries.common.config.version import get_source_major_version
|
||||
from leapp.libraries.stdlib import api
|
||||
from leapp.models import OpenSshConfig, Report
|
||||
from leapp.reporting import create_report
|
||||
@@ -14,13 +15,21 @@ COMMON_REPORT_TAGS = [
|
||||
reporting.Tags.SERVICES
|
||||
]
|
||||
|
||||
+COMMON_RESOURCES = [
|
||||
+ reporting.RelatedResource('package', 'openssh-server'),
|
||||
+ reporting.RelatedResource('file', '/etc/ssh/sshd_config')
|
||||
+]
|
||||
+
|
||||
|
||||
class OpenSshPermitRootLoginCheck(Actor):
|
||||
"""
|
||||
OpenSSH no longer allows root logins with password.
|
||||
|
||||
Check the values of PermitRootLogin in OpenSSH server configuration file
|
||||
- and warn about potential issues after update.
|
||||
+ and warn about potential issues after upgrade to the next major version of RHEL.
|
||||
+
|
||||
+ The RHEL8 still provided default configuration that allowed root logins,
|
||||
+ which can lead to possible unwanted changes during the upgrade
|
||||
"""
|
||||
name = 'openssh_permit_root_login'
|
||||
consumes = (OpenSshConfig, )
|
||||
@@ -37,10 +46,15 @@ class OpenSshPermitRootLoginCheck(Actor):
|
||||
'Could not check openssh configuration', details={'details': 'No OpenSshConfig facts found.'}
|
||||
)
|
||||
|
||||
- resources = [
|
||||
- reporting.RelatedResource('package', 'openssh-server'),
|
||||
- reporting.RelatedResource('file', '/etc/ssh/sshd_config')
|
||||
- ]
|
||||
+ if get_source_major_version() == '7':
|
||||
+ self.process7to8(config)
|
||||
+ elif get_source_major_version() == '8':
|
||||
+ self.process8to9(config)
|
||||
+ else:
|
||||
+ api.current_logger().warning('Unknown source major version: {} (expecting 7 or 8)'
|
||||
+ .format(get_source_major_version()))
|
||||
+
|
||||
+ def process7to8(self, config):
|
||||
# When the configuration does not contain the PermitRootLogin directive and
|
||||
# the configuration file was locally modified, it will not get updated by
|
||||
# RPM and the user might be locked away from the server. Warn the user here.
|
||||
@@ -61,7 +75,7 @@ class OpenSshPermitRootLoginCheck(Actor):
|
||||
'"PermitRootLogin yes" to sshd_config.'
|
||||
),
|
||||
reporting.Flags([reporting.Flags.INHIBITOR])
|
||||
- ] + resources)
|
||||
+ ] + COMMON_RESOURCES)
|
||||
|
||||
# Check if there is at least one PermitRootLogin other than "no"
|
||||
# in match blocks (other than Match All).
|
||||
@@ -87,4 +101,53 @@ class OpenSshPermitRootLoginCheck(Actor):
|
||||
'in global context if desired.'
|
||||
),
|
||||
reporting.Flags([reporting.Flags.INHIBITOR])
|
||||
- ] + resources)
|
||||
+ ] + COMMON_RESOURCES)
|
||||
+
|
||||
+ def process8to9(self, config):
|
||||
+ # RHEL8 default sshd configuration file is not modified: It will get replaced by rpm and
|
||||
+ # root will no longer be able to connect through ssh. This will probably result in many
|
||||
+ # false positives so it will have to be waived a lot
|
||||
+ if not config.modified:
|
||||
+ create_report([
|
||||
+ reporting.Title('Possible problems with remote login using root account'),
|
||||
+ reporting.Summary(
|
||||
+ 'OpenSSH configuration file will get updated to RHEL9 '
|
||||
+ 'version, no longer allowing root login with password. '
|
||||
+ 'It is a good practice to use non-root administrative '
|
||||
+ 'user and non-password authentications, but if you rely '
|
||||
+ 'on the remote root login, this change can lock you out '
|
||||
+ 'of this system.'
|
||||
+ ),
|
||||
+ reporting.Severity(reporting.Severity.HIGH),
|
||||
+ reporting.Tags(COMMON_REPORT_TAGS),
|
||||
+ reporting.Remediation(
|
||||
+ hint='If you depend on remote root logins using passwords, '
|
||||
+ 'consider setting up a different user for remote '
|
||||
+ 'administration or adding a comment into the '
|
||||
+ 'sshd_config next to the "PermitRootLogin yes" directive '
|
||||
+ 'to prevent rpm replacing it during the upgrade.'
|
||||
+ ),
|
||||
+ reporting.Flags([reporting.Flags.INHIBITOR])
|
||||
+ ] + COMMON_RESOURCES)
|
||||
+ # If the configuration is modified and contains any directive allowing
|
||||
+ # root login (which is in default configuration), we are upgrading to
|
||||
+ # RHEL9 keeping the old "security policy", which might keep the root
|
||||
+ # login unexpectedly open. This might be just high priority warning
|
||||
+ if global_value(config, 'prohibit-password') == 'yes':
|
||||
+ create_report([
|
||||
+ reporting.Title('Remote root logins globally allowed using password'),
|
||||
+ reporting.Summary(
|
||||
+ 'RHEL9 no longer allows remote root logins, but the '
|
||||
+ 'server configuration explicitly overrides this default. '
|
||||
+ 'The configuration file will not be updated and root is '
|
||||
+ 'still going to be allowed to login with password. '
|
||||
+ 'This is not recommended and considered as a security risk.'
|
||||
+ ),
|
||||
+ reporting.Severity(reporting.Severity.HIGH),
|
||||
+ reporting.Tags(COMMON_REPORT_TAGS),
|
||||
+ reporting.Remediation(
|
||||
+ hint='If you depend on remote root logins using passwords, '
|
||||
+ 'consider setting up a different user for remote '
|
||||
+ 'administration. Otherwise you can ignore this message.'
|
||||
+ )
|
||||
+ ] + COMMON_RESOURCES)
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
index 0cb90819..d247b220 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
@@ -1,8 +1,16 @@
|
||||
+def global_value(config, default):
|
||||
+ for opt in config.permit_root_login:
|
||||
+ if (opt.in_match is None or opt.in_match[0].lower() == 'all'):
|
||||
+ return opt.value
|
||||
+ return default
|
||||
|
||||
|
||||
def semantics_changes(config):
|
||||
globally_enabled = False
|
||||
in_match_disabled = False
|
||||
+ if not config.permit_root_login:
|
||||
+ return True
|
||||
+
|
||||
for opt in config.permit_root_login:
|
||||
if opt.value != "yes" and opt.in_match is not None \
|
||||
and opt.in_match[0].lower() != 'all':
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py
|
||||
index 23110839..6ccd5851 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/tests/test_library_opensshpermitrootlogincheck.py
|
||||
@@ -1,7 +1,20 @@
|
||||
-from leapp.libraries.actor.opensshpermitrootlogincheck import semantics_changes
|
||||
+from leapp.libraries.actor.opensshpermitrootlogincheck import global_value, semantics_changes
|
||||
from leapp.models import OpenSshConfig, OpenSshPermitRootLogin
|
||||
|
||||
|
||||
+def test_empty_file():
|
||||
+ """ Empty file
|
||||
+ """
|
||||
+ config = OpenSshConfig(
|
||||
+ permit_root_login=[
|
||||
+ ],
|
||||
+ deprecated_directives=[]
|
||||
+ )
|
||||
+
|
||||
+ assert semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "default"
|
||||
+
|
||||
+
|
||||
def test_globally_enabled():
|
||||
""" Configuration file in this format:
|
||||
|
||||
@@ -17,6 +30,7 @@ def test_globally_enabled():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "yes"
|
||||
|
||||
|
||||
def test_globally_disabled():
|
||||
@@ -34,6 +48,7 @@ def test_globally_disabled():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "no"
|
||||
|
||||
|
||||
def test_globally_disabled_password():
|
||||
@@ -51,6 +66,7 @@ def test_globally_disabled_password():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "prohibit-password"
|
||||
|
||||
|
||||
def test_in_match_disabled():
|
||||
@@ -70,6 +86,7 @@ def test_in_match_disabled():
|
||||
)
|
||||
|
||||
assert semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "default"
|
||||
|
||||
|
||||
def test_in_match_disabled_password():
|
||||
@@ -89,6 +106,7 @@ def test_in_match_disabled_password():
|
||||
)
|
||||
|
||||
assert semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "default"
|
||||
|
||||
|
||||
def test_in_match_enabled():
|
||||
@@ -109,6 +127,7 @@ def test_in_match_enabled():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "default"
|
||||
|
||||
|
||||
def test_in_match_all_disabled():
|
||||
@@ -128,6 +147,7 @@ def test_in_match_all_disabled():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "no"
|
||||
|
||||
|
||||
def test_in_match_all_disabled_password():
|
||||
@@ -147,6 +167,7 @@ def test_in_match_all_disabled_password():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "prohibit-password"
|
||||
|
||||
|
||||
def test_in_match_all_enabled():
|
||||
@@ -166,6 +187,7 @@ def test_in_match_all_enabled():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "yes"
|
||||
|
||||
|
||||
def test_in_match_enabled_globally_disabled():
|
||||
@@ -188,6 +210,7 @@ def test_in_match_enabled_globally_disabled():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "no"
|
||||
|
||||
|
||||
def test_in_match_disabled_globally_enabled():
|
||||
@@ -210,3 +233,4 @@ def test_in_match_disabled_globally_enabled():
|
||||
)
|
||||
|
||||
assert not semantics_changes(config)
|
||||
+ assert global_value(config, "default") == "yes"
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,41 @@
|
||||
From f6588061b85c5b6862ff424fbdab2dc29266c506 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Thu, 5 May 2022 20:06:51 +0200
|
||||
Subject: [PATCH 21/39] If the config is not modified, leave it up to RPM
|
||||
|
||||
Neither of the inhibitor are useful if the configuration file was not
|
||||
modified and the upgrade of the file will be handled by RPM, keeping the
|
||||
root logins enabled by pulling the new configuration file from new
|
||||
package.
|
||||
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
---
|
||||
.../actors/opensshpermitrootlogincheck/actor.py | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
index f7ee61da..ae3b4586 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
@@ -55,10 +55,15 @@ class OpenSshPermitRootLoginCheck(Actor):
|
||||
.format(get_source_major_version()))
|
||||
|
||||
def process7to8(self, config):
|
||||
- # When the configuration does not contain the PermitRootLogin directive and
|
||||
+ # when the config was not modified, we can pass this check and let the
|
||||
+ # rpm handle the configuration file update
|
||||
+ if not config.modified:
|
||||
+ return
|
||||
+
|
||||
+ # When the configuration does not contain *any* PermitRootLogin directive and
|
||||
# the configuration file was locally modified, it will not get updated by
|
||||
- # RPM and the user might be locked away from the server. Warn the user here.
|
||||
- if not config.permit_root_login and config.modified:
|
||||
+ # RPM and the user might be locked away from the server with new default
|
||||
+ if not config.permit_root_login:
|
||||
create_report([
|
||||
reporting.Title('Possible problems with remote login using root account'),
|
||||
reporting.Summary(
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,43 @@
|
||||
From 32605051864e5e7ba16e7582d1a75459c826ef59 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Thu, 5 May 2022 20:08:59 +0200
|
||||
Subject: [PATCH 22/39] Improve remediation, do not trigger second inhibitor
|
||||
|
||||
In the past, both of the inhibitors were triggered when the
|
||||
configuration file did not contain any PermitRootLogin configuration
|
||||
option. But this really does not make any sense to report the second
|
||||
inhibitor if the first one is already raised.
|
||||
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
---
|
||||
.../actors/opensshpermitrootlogincheck/actor.py | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
index ae3b4586..4cc4cbc2 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
@@ -74,13 +74,16 @@ class OpenSshPermitRootLoginCheck(Actor):
|
||||
reporting.Severity(reporting.Severity.HIGH),
|
||||
reporting.Tags(COMMON_REPORT_TAGS),
|
||||
reporting.Remediation(
|
||||
- hint='If you depend on remote root logins using '
|
||||
- 'passwords, consider setting up a different '
|
||||
- 'user for remote administration or adding '
|
||||
- '"PermitRootLogin yes" to sshd_config.'
|
||||
+ hint='If you depend on remote root logins using passwords, consider '
|
||||
+ 'setting up a different user for remote administration or adding '
|
||||
+ '"PermitRootLogin yes" to sshd_config. '
|
||||
+ 'If this change is ok for you, add explicit '
|
||||
+ '"PermitRootLogin prohibit-password" to your sshd_config '
|
||||
+ 'to ignore this inhibitor'
|
||||
),
|
||||
reporting.Flags([reporting.Flags.INHIBITOR])
|
||||
] + COMMON_RESOURCES)
|
||||
+ return
|
||||
|
||||
# Check if there is at least one PermitRootLogin other than "no"
|
||||
# in match blocks (other than Match All).
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,77 @@
|
||||
From 5862f8b67f02fad30ec6a067318c876b4dba396f Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Thu, 5 May 2022 20:09:50 +0200
|
||||
Subject: [PATCH 23/39] Add doc strings and improve code readability
|
||||
|
||||
The original code was quite confusing. This reuses the global_value
|
||||
function and checks for the only rare corner case we want to consider
|
||||
allowing without inhibiting the upgrade.
|
||||
|
||||
The test coverage is still passing with the new code.
|
||||
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
---
|
||||
.../libraries/opensshpermitrootlogincheck.py | 40 ++++++++++++++-----
|
||||
1 file changed, 30 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
index d247b220..c2237571 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/libraries/opensshpermitrootlogincheck.py
|
||||
@@ -1,4 +1,11 @@
|
||||
def global_value(config, default):
|
||||
+ """
|
||||
+ Find the global value for PermitRootLogin option in sshd_config.
|
||||
+
|
||||
+ OpenSSH is using the first value found in configuration file, that is not
|
||||
+ in match block other than "all". If there is no such option, the argument
|
||||
+ "default" will be returned.
|
||||
+ """
|
||||
for opt in config.permit_root_login:
|
||||
if (opt.in_match is None or opt.in_match[0].lower() == 'all'):
|
||||
return opt.value
|
||||
@@ -6,18 +13,31 @@ def global_value(config, default):
|
||||
|
||||
|
||||
def semantics_changes(config):
|
||||
- globally_enabled = False
|
||||
- in_match_disabled = False
|
||||
+ """
|
||||
+ Check if the current configuration changes semantics if upgraded from RHEL7 to RHEL8
|
||||
+
|
||||
+ The case where the configuration does not contain *any* PermitRootLogin option is
|
||||
+ already covered in the actor and does not need to be handled here.
|
||||
+
|
||||
+ This tries to capture the case, where the root login is enabled in at least one
|
||||
+ match block. The global default changes so the new configurations will not allow
|
||||
+ all password root logins, but there is at least some chance to access the system as
|
||||
+ root with password.
|
||||
+
|
||||
+ Examples:
|
||||
+ * If the root login is globally set (enabled or disabled), the semantics stays the same.
|
||||
+ * If the root login is enabled only in match blocks, the semantics changes, but the
|
||||
+ machine stays accessible at least for clients matching this block.
|
||||
+
|
||||
+ """
|
||||
+ config_global_value = global_value(config, None)
|
||||
+ in_match_enabled = False
|
||||
if not config.permit_root_login:
|
||||
return True
|
||||
|
||||
for opt in config.permit_root_login:
|
||||
- if opt.value != "yes" and opt.in_match is not None \
|
||||
- and opt.in_match[0].lower() != 'all':
|
||||
- in_match_disabled = True
|
||||
-
|
||||
- if opt.value == "yes" and (opt.in_match is None or
|
||||
- opt.in_match[0].lower() == 'all'):
|
||||
- globally_enabled = True
|
||||
+ if opt.value == "yes" and opt.in_match is not None and \
|
||||
+ opt.in_match[0].lower() != 'all':
|
||||
+ in_match_enabled = True
|
||||
|
||||
- return not globally_enabled and in_match_disabled
|
||||
+ return config_global_value is None and not in_match_enabled
|
||||
--
|
||||
2.35.3
|
||||
|
33
SOURCES/0024-Pass-enable-root-auth-post-install-script.patch
Normal file
33
SOURCES/0024-Pass-enable-root-auth-post-install-script.patch
Normal file
@ -0,0 +1,33 @@
|
||||
From 2bc5a6822b9854eba001df435832a4d240cfe641 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Thu, 28 Apr 2022 11:40:07 +0200
|
||||
Subject: [PATCH 24/39] Pass enable root auth post-install-script
|
||||
|
||||
This should allow root auth on every guest, even those that
|
||||
don't have it enabled by default.
|
||||
|
||||
OAMG-6748
|
||||
---
|
||||
.github/workflows/tmt-tests.yml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
|
||||
index 75768e51..2b10571d 100644
|
||||
--- a/.github/workflows/tmt-tests.yml
|
||||
+++ b/.github/workflows/tmt-tests.yml
|
||||
@@ -166,6 +166,7 @@ jobs:
|
||||
# preparation moved out to a different workflow and the rest split into 2 workflows - 7to8 and 8to9 that are
|
||||
# triggered on a specific repository dispatch event.
|
||||
update_pull_request_status: 'false'
|
||||
+ environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
|
||||
|
||||
- name: Schedule regression testing for 8to9
|
||||
id: run_test_8to9
|
||||
@@ -194,3 +195,4 @@ jobs:
|
||||
# preparation moved out to a different workflow and the rest split into 2 workflows - 7to8 and 8to9 that are
|
||||
# triggered on a specific repository dispatch event.
|
||||
update_pull_request_status: 'false'
|
||||
+ environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
|
||||
--
|
||||
2.35.3
|
||||
|
36
SOURCES/0025-Pin-version-to-1.2.10.patch
Normal file
36
SOURCES/0025-Pin-version-to-1.2.10.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 85e0cea9d871be12e29c05dcbb485b051325ff98 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Thu, 28 Apr 2022 14:02:27 +0200
|
||||
Subject: [PATCH 25/39] Pin version to 1.2.10
|
||||
|
||||
This version of tft github action should have the support for
|
||||
environment_settings parameter.
|
||||
---
|
||||
.github/workflows/tmt-tests.yml | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
|
||||
index 2b10571d..24334978 100644
|
||||
--- a/.github/workflows/tmt-tests.yml
|
||||
+++ b/.github/workflows/tmt-tests.yml
|
||||
@@ -144,7 +144,7 @@ jobs:
|
||||
id: run_test_7to8
|
||||
env:
|
||||
ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0};{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
- uses: sclorg/testing-farm-as-github-action@v1.2.9
|
||||
+ uses: sclorg/testing-farm-as-github-action@v1.2.10
|
||||
with:
|
||||
# required
|
||||
api_url: ${{ secrets.TF_ENDPOINT }}
|
||||
@@ -172,7 +172,7 @@ jobs:
|
||||
id: run_test_8to9
|
||||
env:
|
||||
ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0};{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
- uses: sclorg/testing-farm-as-github-action@v1.2.9
|
||||
+ uses: sclorg/testing-farm-as-github-action@v1.2.10
|
||||
with:
|
||||
# required
|
||||
api_url: ${{ secrets.TF_ENDPOINT }}
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,168 @@
|
||||
From f5adf078b700d60e5863e03cb71401e546789f2f Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Wed, 18 May 2022 10:34:36 +0200
|
||||
Subject: [PATCH 26/39] Drop the checkcpu actor from the el8toel9 repo
|
||||
|
||||
The actor has been supposed to be removed a time ago already
|
||||
as this functionality is handled in generic way by
|
||||
common/actors/checkdetecteddevicesanddrivers
|
||||
As this actor still exists it breaks the expectation the CPU check
|
||||
is driven by the `device_driver_deprecation_data.json` file. Regarding
|
||||
that, we cannot dynamically react to changes around supported CPUs
|
||||
on s390x (IBM Z) architecture for IPU 8 -> 9.
|
||||
|
||||
This relates to BZ: https://bugzilla.redhat.com/show_bug.cgi?id=2087664
|
||||
The bz is reported for IPU 7 -> 8, however the problem is on IPU 8 -> 9
|
||||
as well and we cannot handle via data files due to this actor.
|
||||
So dropping it.
|
||||
---
|
||||
.../el8toel9/actors/checkcpu/actor.py | 23 --------
|
||||
.../el8toel9/actors/checkcpu/libraries/cpu.py | 41 -------------
|
||||
.../actors/checkcpu/tests/test_checkcpu.py | 57 -------------------
|
||||
3 files changed, 121 deletions(-)
|
||||
delete mode 100644 repos/system_upgrade/el8toel9/actors/checkcpu/actor.py
|
||||
delete mode 100644 repos/system_upgrade/el8toel9/actors/checkcpu/libraries/cpu.py
|
||||
delete mode 100644 repos/system_upgrade/el8toel9/actors/checkcpu/tests/test_checkcpu.py
|
||||
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/checkcpu/actor.py b/repos/system_upgrade/el8toel9/actors/checkcpu/actor.py
|
||||
deleted file mode 100644
|
||||
index 7b61bd34..00000000
|
||||
--- a/repos/system_upgrade/el8toel9/actors/checkcpu/actor.py
|
||||
+++ /dev/null
|
||||
@@ -1,23 +0,0 @@
|
||||
-from leapp.actors import Actor
|
||||
-from leapp.libraries.actor import cpu
|
||||
-from leapp.models import CPUInfo, Report
|
||||
-from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
|
||||
-
|
||||
-
|
||||
-class CheckCPU(Actor):
|
||||
- """
|
||||
- Check whether the CPU is supported by the target system. Inhibit upgrade if not.
|
||||
-
|
||||
- Currently we know just about cases with s390x where the set of CPUs supported
|
||||
- by RHEL 9 is subset of CPUs supported on RHEL 8. We can detect such cases based
|
||||
- on the machine field inside the /proc/cpuinfo file. expected values of the
|
||||
- field on supported machines are: 3906, 3907, 8561, 8562.
|
||||
- """
|
||||
-
|
||||
- name = "checkcpu"
|
||||
- consumes = (CPUInfo,)
|
||||
- produces = (Report,)
|
||||
- tags = (ChecksPhaseTag, IPUWorkflowTag,)
|
||||
-
|
||||
- def process(self):
|
||||
- cpu.process()
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/checkcpu/libraries/cpu.py b/repos/system_upgrade/el8toel9/actors/checkcpu/libraries/cpu.py
|
||||
deleted file mode 100644
|
||||
index 79682247..00000000
|
||||
--- a/repos/system_upgrade/el8toel9/actors/checkcpu/libraries/cpu.py
|
||||
+++ /dev/null
|
||||
@@ -1,41 +0,0 @@
|
||||
-
|
||||
-from leapp import reporting
|
||||
-from leapp.exceptions import StopActorExecutionError
|
||||
-from leapp.libraries.common.config import architecture
|
||||
-from leapp.libraries.stdlib import api
|
||||
-from leapp.models import CPUInfo
|
||||
-
|
||||
-SUPPORTED_MACHINE_TYPES = [3906, 3907, 8561, 8562]
|
||||
-
|
||||
-
|
||||
-def process():
|
||||
- if not architecture.matches_architecture(architecture.ARCH_S390X):
|
||||
- return
|
||||
- cpuinfo = next(api.consume(CPUInfo), None)
|
||||
- if cpuinfo is None:
|
||||
- raise StopActorExecutionError(message=("Missing information about CPU."))
|
||||
-
|
||||
- if not cpuinfo.machine_type:
|
||||
- # this is not expected to happen, but in case...
|
||||
- api.current_logger().warning("The machine (CPU) type is empty.")
|
||||
-
|
||||
- if cpuinfo.machine_type not in SUPPORTED_MACHINE_TYPES:
|
||||
- summary = ("The system is not possible to upgrade because of unsupported"
|
||||
- " type of the processor. Based on the official documentation,"
|
||||
- " z14 and z15 processors are supported on the Red Hat Enterprise"
|
||||
- " Linux 9 system for the IBM Z architecture. The supported processors"
|
||||
- " have machine types {}. The detected machine type of the CPU is '{}'."
|
||||
- .format(", ".join([str(i) for i in SUPPORTED_MACHINE_TYPES]), cpuinfo.machine_type))
|
||||
- report = [
|
||||
- reporting.Title("The processor is not supported by the target system."),
|
||||
- reporting.Summary(summary),
|
||||
- reporting.Severity(reporting.Severity.HIGH),
|
||||
- reporting.Tags([reporting.Tags.SANITY]),
|
||||
- reporting.Flags([reporting.Flags.INHIBITOR]),
|
||||
- reporting.ExternalLink(
|
||||
- title="Considerations in adopting RHEL 8",
|
||||
- url=("https://access.redhat.com/ecosystem/hardware/#/search?p=1&"
|
||||
- "c_version=Red%20Hat%20Enterprise%20Linux%208&ch_architecture=s390x"))
|
||||
- ]
|
||||
- # FIXME(dhorak): update the URL to the document once it exists
|
||||
- reporting.create_report(report)
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/checkcpu/tests/test_checkcpu.py b/repos/system_upgrade/el8toel9/actors/checkcpu/tests/test_checkcpu.py
|
||||
deleted file mode 100644
|
||||
index 9cb11986..00000000
|
||||
--- a/repos/system_upgrade/el8toel9/actors/checkcpu/tests/test_checkcpu.py
|
||||
+++ /dev/null
|
||||
@@ -1,57 +0,0 @@
|
||||
-import logging
|
||||
-
|
||||
-import pytest
|
||||
-
|
||||
-from leapp import reporting
|
||||
-from leapp.exceptions import StopActorExecutionError
|
||||
-from leapp.libraries.actor import cpu
|
||||
-from leapp.libraries.common import testutils
|
||||
-from leapp.libraries.common.config import architecture
|
||||
-from leapp.libraries.common.testutils import CurrentActorMocked
|
||||
-from leapp.libraries.stdlib import api
|
||||
-from leapp.models import CPUInfo
|
||||
-
|
||||
-
|
||||
-def test_non_ibmz_arch(monkeypatch):
|
||||
- monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_X86_64))
|
||||
- monkeypatch.setattr(reporting, "create_report", testutils.create_report_mocked())
|
||||
- cpu.process()
|
||||
- assert not reporting.create_report.called
|
||||
-
|
||||
-
|
||||
-def test_ibmz_arch_missing_cpuinfo(monkeypatch):
|
||||
- monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_S390X))
|
||||
- monkeypatch.setattr(reporting, "create_report", testutils.create_report_mocked())
|
||||
- monkeypatch.setattr(api, 'consume', lambda x: iter([]))
|
||||
- with pytest.raises(StopActorExecutionError):
|
||||
- cpu.process()
|
||||
- assert not reporting.create_report.called
|
||||
-
|
||||
-
|
||||
-def test_ibmz_cpu_supported(monkeypatch):
|
||||
- monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_S390X))
|
||||
- monkeypatch.setattr(reporting, "create_report", testutils.create_report_mocked())
|
||||
- for sup_arch in cpu.SUPPORTED_MACHINE_TYPES:
|
||||
- monkeypatch.setattr(api, 'consume', lambda x: iter([CPUInfo(machine_type=sup_arch)]))
|
||||
- cpu.process()
|
||||
- assert not reporting.create_report.called
|
||||
-
|
||||
-
|
||||
-def test_ibmz_cpu_unsupported(monkeypatch):
|
||||
- title_msg = 'The processor is not supported by the target system.'
|
||||
- monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_S390X))
|
||||
- monkeypatch.setattr(api, 'consume', lambda x: iter([CPUInfo(machine_type=666)]))
|
||||
- monkeypatch.setattr(reporting, "create_report", testutils.create_report_mocked())
|
||||
- cpu.process()
|
||||
- assert reporting.create_report.called
|
||||
- assert title_msg == reporting.create_report.report_fields['title']
|
||||
- assert reporting.Flags.INHIBITOR in reporting.create_report.report_fields['flags']
|
||||
-
|
||||
-
|
||||
-def test_ibmz_cpu_is_empty(monkeypatch, caplog):
|
||||
- monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_S390X))
|
||||
- monkeypatch.setattr(reporting, "create_report", testutils.create_report_mocked())
|
||||
- monkeypatch.setattr(api, 'consume', lambda x: iter([CPUInfo(machine_type=None)]))
|
||||
- with caplog.at_level(logging.DEBUG):
|
||||
- cpu.process()
|
||||
- assert 'The machine (CPU) type is empty.' in caplog.text
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,51 @@
|
||||
From ce02fa83a2f3cff089133ed9bb05dbdd6755132d Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Tue, 17 May 2022 15:01:23 +0200
|
||||
Subject: [PATCH 27/39] BZ#2087144 - do not enable Ansible repository when
|
||||
upgrading Satellite
|
||||
|
||||
Having it enabled, confuses the upgrade as there is now also
|
||||
ansible-core in RHEL 8.6 and we need to upgrade to that instead of
|
||||
legacy Ansible from the dedicated repository.
|
||||
---
|
||||
.../el7toel8/actors/satellite_upgrade_facts/actor.py | 3 +--
|
||||
.../tests/unit_test_satellite_upgrade_facts.py | 2 --
|
||||
2 files changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
index fb83107e..12c0fa53 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
@@ -129,8 +129,7 @@ class SatelliteUpgradeFacts(Actor):
|
||||
modules_to_enable=modules_to_enable
|
||||
)
|
||||
)
|
||||
- repositories_to_enable = ['ansible-2.9-for-rhel-8-x86_64-rpms',
|
||||
- 'satellite-maintenance-6.11-for-rhel-8-x86_64-rpms']
|
||||
+ repositories_to_enable = ['satellite-maintenance-6.11-for-rhel-8-x86_64-rpms']
|
||||
if has_package(InstalledRPM, 'foreman'):
|
||||
repositories_to_enable.append('satellite-6.11-for-rhel-8-x86_64-rpms')
|
||||
else:
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
index e77b7b58..28b9f44b 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
@@ -103,7 +103,6 @@ def test_enables_right_repositories_on_satellite(current_actor_context):
|
||||
|
||||
rpmmessage = current_actor_context.consume(RepositoriesSetupTasks)[0]
|
||||
|
||||
- assert 'ansible-2.9-for-rhel-8-x86_64-rpms' in rpmmessage.to_enable
|
||||
assert 'satellite-maintenance-6.11-for-rhel-8-x86_64-rpms' in rpmmessage.to_enable
|
||||
assert 'satellite-6.11-for-rhel-8-x86_64-rpms' in rpmmessage.to_enable
|
||||
assert 'satellite-capsule-6.11-for-rhel-8-x86_64-rpms' not in rpmmessage.to_enable
|
||||
@@ -115,7 +114,6 @@ def test_enables_right_repositories_on_capsule(current_actor_context):
|
||||
|
||||
rpmmessage = current_actor_context.consume(RepositoriesSetupTasks)[0]
|
||||
|
||||
- assert 'ansible-2.9-for-rhel-8-x86_64-rpms' in rpmmessage.to_enable
|
||||
assert 'satellite-maintenance-6.11-for-rhel-8-x86_64-rpms' in rpmmessage.to_enable
|
||||
assert 'satellite-6.11-for-rhel-8-x86_64-rpms' not in rpmmessage.to_enable
|
||||
assert 'satellite-capsule-6.11-for-rhel-8-x86_64-rpms' in rpmmessage.to_enable
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,135 @@
|
||||
From f858a2a87edc602c976342e22538bf44249f9d1e Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Mon, 4 Apr 2022 09:10:45 +0200
|
||||
Subject: [PATCH 28/39] call Satellite installer with --disable-system-checks
|
||||
if possible
|
||||
|
||||
The installer has a set of checks to verify whether the current system
|
||||
is suitable for running Satellite. The administrator of the system can
|
||||
choose to ignore those checks with `--disable-system-checks`.
|
||||
|
||||
As the installer invocation inside LEAPP is non-interactive, we should
|
||||
err on the side of not running checks, so that the upgrade doesn't abort
|
||||
in the case where the administrator has chosen to ignore the warnings.
|
||||
|
||||
This is in line with other non-interactive invocations of the installer
|
||||
that other tools (like foreman-maintain) do.
|
||||
|
||||
The "if katello installer" logic is needed, as the checks and the cli
|
||||
parameter is only present in Katello installations, not plain Foreman.
|
||||
---
|
||||
.../actors/satellite_upgrade_facts/actor.py | 3 +++
|
||||
.../tests/unit_test_satellite_upgrade_facts.py | 15 +++++++++++++++
|
||||
.../el7toel8/actors/satellite_upgrader/actor.py | 6 +++++-
|
||||
.../tests/unit_test_satellite_upgrader.py | 11 +++++++++++
|
||||
repos/system_upgrade/el7toel8/models/satellite.py | 2 ++
|
||||
5 files changed, 36 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
index 12c0fa53..c837b449 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
@@ -32,6 +32,8 @@ class SatelliteUpgradeFacts(Actor):
|
||||
if not has_foreman:
|
||||
return
|
||||
|
||||
+ has_katello_installer = has_package(InstalledRPM, 'foreman-installer-katello')
|
||||
+
|
||||
local_postgresql = has_package(InstalledRPM, 'rh-postgresql12-postgresql-server')
|
||||
postgresql_contrib = has_package(InstalledRPM, 'rh-postgresql12-postgresql-contrib')
|
||||
postgresql_evr = has_package(InstalledRPM, 'rh-postgresql12-postgresql-evr')
|
||||
@@ -114,6 +116,7 @@ class SatelliteUpgradeFacts(Actor):
|
||||
|
||||
self.produce(SatelliteFacts(
|
||||
has_foreman=has_foreman,
|
||||
+ has_katello_installer=has_katello_installer,
|
||||
postgresql=SatellitePostgresqlFacts(
|
||||
local_postgresql=local_postgresql,
|
||||
old_var_lib_pgsql_data=old_pgsql_data,
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
index 28b9f44b..fceda925 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
@@ -21,6 +21,7 @@ def fake_package(pkg_name):
|
||||
|
||||
FOREMAN_RPM = fake_package('foreman')
|
||||
FOREMAN_PROXY_RPM = fake_package('foreman-proxy')
|
||||
+KATELLO_INSTALLER_RPM = fake_package('foreman-installer-katello')
|
||||
KATELLO_RPM = fake_package('katello')
|
||||
POSTGRESQL_RPM = fake_package('rh-postgresql12-postgresql-server')
|
||||
|
||||
@@ -46,6 +47,20 @@ def test_satellite_capsule_present(current_actor_context):
|
||||
assert message.has_foreman
|
||||
|
||||
|
||||
+def test_no_katello_installer_present(current_actor_context):
|
||||
+ current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
+ current_actor_context.run()
|
||||
+ message = current_actor_context.consume(SatelliteFacts)[0]
|
||||
+ assert not message.has_katello_installer
|
||||
+
|
||||
+
|
||||
+def test_katello_installer_present(current_actor_context):
|
||||
+ current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM, KATELLO_INSTALLER_RPM]))
|
||||
+ current_actor_context.run()
|
||||
+ message = current_actor_context.consume(SatelliteFacts)[0]
|
||||
+ assert message.has_katello_installer
|
||||
+
|
||||
+
|
||||
def test_enables_ruby_module(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
current_actor_context.run()
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrader/actor.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrader/actor.py
|
||||
index 28d5edd9..bd1a5d68 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrader/actor.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrader/actor.py
|
||||
@@ -19,9 +19,13 @@ class SatelliteUpgrader(Actor):
|
||||
if not facts or not facts.has_foreman:
|
||||
return
|
||||
|
||||
+ installer_cmd = ['foreman-installer']
|
||||
+ if facts.has_katello_installer:
|
||||
+ installer_cmd.append('--disable-system-checks')
|
||||
+
|
||||
api.current_actor().show_message('Running the installer. This can take a while.')
|
||||
try:
|
||||
- run(['foreman-installer'])
|
||||
+ run(installer_cmd)
|
||||
except OSError as e:
|
||||
api.current_logger().error('Failed to run `foreman-installer`: {}'.format(str(e)))
|
||||
except CalledProcessError:
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrader/tests/unit_test_satellite_upgrader.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrader/tests/unit_test_satellite_upgrader.py
|
||||
index 886d6879..d62815ca 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrader/tests/unit_test_satellite_upgrader.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrader/tests/unit_test_satellite_upgrader.py
|
||||
@@ -21,4 +21,15 @@ def test_run_installer(monkeypatch, current_actor_context):
|
||||
current_actor_context.run()
|
||||
assert mocked_run.commands
|
||||
assert len(mocked_run.commands) == 1
|
||||
+ assert mocked_run.commands[0] == ['foreman-installer', '--disable-system-checks']
|
||||
+
|
||||
+
|
||||
+def test_run_installer_without_katello(monkeypatch, current_actor_context):
|
||||
+ mocked_run = MockedRun()
|
||||
+ monkeypatch.setattr('leapp.libraries.stdlib.run', mocked_run)
|
||||
+ current_actor_context.feed(SatelliteFacts(has_foreman=True, has_katello_installer=False,
|
||||
+ postgresql=SatellitePostgresqlFacts()))
|
||||
+ current_actor_context.run()
|
||||
+ assert mocked_run.commands
|
||||
+ assert len(mocked_run.commands) == 1
|
||||
assert mocked_run.commands[0] == ['foreman-installer']
|
||||
diff --git a/repos/system_upgrade/el7toel8/models/satellite.py b/repos/system_upgrade/el7toel8/models/satellite.py
|
||||
index 9f962c7f..b4282790 100644
|
||||
--- a/repos/system_upgrade/el7toel8/models/satellite.py
|
||||
+++ b/repos/system_upgrade/el7toel8/models/satellite.py
|
||||
@@ -22,5 +22,7 @@ class SatelliteFacts(Model):
|
||||
|
||||
has_foreman = fields.Boolean(default=False)
|
||||
"""Whether or not foreman is installed on this system"""
|
||||
+ has_katello_installer = fields.Boolean(default=True)
|
||||
+ """Whether or not the installer supports Katello additions"""
|
||||
postgresql = fields.Model(SatellitePostgresqlFacts)
|
||||
""" Foreman related PostgreSQL facts """
|
||||
--
|
||||
2.35.3
|
||||
|
84
SOURCES/0029-Allow-specifying-report-schema-1.2.0.patch
Normal file
84
SOURCES/0029-Allow-specifying-report-schema-1.2.0.patch
Normal file
@ -0,0 +1,84 @@
|
||||
From 87048e486fd7b89609907fce9732d525932f0912 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Fri, 1 Apr 2022 12:40:02 +0200
|
||||
Subject: [PATCH 29/39] Allow specifying --report-schema 1.2.0
|
||||
|
||||
This version will display actors' tags and flags as
|
||||
groups in the final leapp report.
|
||||
|
||||
OAMG-1429
|
||||
---
|
||||
commands/preupgrade/__init__.py | 7 ++++---
|
||||
commands/upgrade/__init__.py | 7 ++++---
|
||||
commands/upgrade/util.py | 8 --------
|
||||
3 files changed, 8 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/commands/preupgrade/__init__.py b/commands/preupgrade/__init__.py
|
||||
index 46812b36..be2c7be8 100644
|
||||
--- a/commands/preupgrade/__init__.py
|
||||
+++ b/commands/preupgrade/__init__.py
|
||||
@@ -27,8 +27,8 @@ from leapp.utils.output import beautify_actor_exception, report_errors, report_i
|
||||
@command_opt('target', choices=command_utils.get_supported_target_versions(),
|
||||
help='Specify RHEL version to upgrade to for {} detected upgrade flavour'.format(
|
||||
command_utils.get_upgrade_flavour()))
|
||||
-@command_opt('report-schema', help='Specify report schema version for leapp-report.json', choices=['1.0.0', '1.1.0'],
|
||||
- default=get_config().get('report', 'schema'))
|
||||
+@command_opt('report-schema', help='Specify report schema version for leapp-report.json',
|
||||
+ choices=['1.0.0', '1.1.0', '1.2.0'], default=get_config().get('report', 'schema'))
|
||||
@breadcrumbs.produces_breadcrumbs
|
||||
def preupgrade(args, breadcrumbs):
|
||||
util.disable_database_sync()
|
||||
@@ -38,7 +38,8 @@ def preupgrade(args, breadcrumbs):
|
||||
configuration = util.prepare_configuration(args)
|
||||
answerfile_path = cfg.get('report', 'answerfile')
|
||||
userchoices_path = cfg.get('report', 'userchoices')
|
||||
- report_schema = util.process_report_schema(args, cfg)
|
||||
+ # NOTE(ivasilev) argparse choices and defaults in enough for validation
|
||||
+ report_schema = args.report_schema
|
||||
|
||||
if os.getuid():
|
||||
raise CommandError('This command has to be run under the root user.')
|
||||
diff --git a/commands/upgrade/__init__.py b/commands/upgrade/__init__.py
|
||||
index b64e4d77..39bfd525 100644
|
||||
--- a/commands/upgrade/__init__.py
|
||||
+++ b/commands/upgrade/__init__.py
|
||||
@@ -33,8 +33,8 @@ from leapp.utils.output import beautify_actor_exception, report_errors, report_i
|
||||
@command_opt('target', choices=command_utils.get_supported_target_versions(),
|
||||
help='Specify RHEL version to upgrade to for {} detected upgrade flavour'.format(
|
||||
command_utils.get_upgrade_flavour()))
|
||||
-@command_opt('report-schema', help='Specify report schema version for leapp-report.json', choices=['1.0.0', '1.1.0'],
|
||||
- default=get_config().get('report', 'schema'))
|
||||
+@command_opt('report-schema', help='Specify report schema version for leapp-report.json',
|
||||
+ choices=['1.0.0', '1.1.0', '1.2.0'], default=get_config().get('report', 'schema'))
|
||||
@breadcrumbs.produces_breadcrumbs
|
||||
def upgrade(args, breadcrumbs):
|
||||
skip_phases_until = None
|
||||
@@ -49,7 +49,8 @@ def upgrade(args, breadcrumbs):
|
||||
only_with_tags = args.only_with_tags if 'only_with_tags' in args else None
|
||||
resume_context = args.resume_context if 'resume_context' in args else None
|
||||
|
||||
- report_schema = util.process_report_schema(args, cfg)
|
||||
+ # NOTE(ivasilev) argparse choices and defaults in enough for validation
|
||||
+ report_schema = args.report_schema
|
||||
|
||||
if os.getuid():
|
||||
raise CommandError('This command has to be run under the root user.')
|
||||
diff --git a/commands/upgrade/util.py b/commands/upgrade/util.py
|
||||
index 22466ab7..ce0b5433 100644
|
||||
--- a/commands/upgrade/util.py
|
||||
+++ b/commands/upgrade/util.py
|
||||
@@ -228,11 +228,3 @@ def process_whitelist_experimental(repositories, workflow, configuration, logger
|
||||
if logger:
|
||||
logger.error(msg)
|
||||
raise CommandError(msg)
|
||||
-
|
||||
-
|
||||
-def process_report_schema(args, configuration):
|
||||
- default_report_schema = configuration.get('report', 'schema')
|
||||
- if args.report_schema and args.report_schema > default_report_schema:
|
||||
- raise CommandError('--report-schema version can not be greater that the '
|
||||
- 'actual {} one.'.format(default_report_schema))
|
||||
- return args.report_schema or default_report_schema
|
||||
--
|
||||
2.35.3
|
||||
|
113
SOURCES/0030-restrict-Satellite-upgrades-to-x86_64.patch
Normal file
113
SOURCES/0030-restrict-Satellite-upgrades-to-x86_64.patch
Normal file
@ -0,0 +1,113 @@
|
||||
From d239a9f64462c7af8aa1d4c9e3484ac647054a4c Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Fri, 8 Apr 2022 09:15:52 +0200
|
||||
Subject: [PATCH 30/39] restrict Satellite upgrades to x86_64
|
||||
|
||||
---
|
||||
.../actors/satellite_upgrade_facts/actor.py | 4 ++++
|
||||
.../unit_test_satellite_upgrade_facts.py | 22 +++++++++++++------
|
||||
2 files changed, 19 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
index c837b449..8b1f5625 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py
|
||||
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
|
||||
from leapp.actors import Actor
|
||||
+from leapp.libraries.common.config import architecture
|
||||
from leapp.libraries.common.rpms import has_package
|
||||
from leapp.libraries.stdlib import run
|
||||
from leapp.models import (
|
||||
@@ -28,6 +29,9 @@ class SatelliteUpgradeFacts(Actor):
|
||||
tags = (IPUWorkflowTag, FactsPhaseTag)
|
||||
|
||||
def process(self):
|
||||
+ if not architecture.matches_architecture(architecture.ARCH_X86_64):
|
||||
+ return
|
||||
+
|
||||
has_foreman = has_package(InstalledRPM, 'foreman') or has_package(InstalledRPM, 'foreman-proxy')
|
||||
if not has_foreman:
|
||||
return
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
index fceda925..0b6f6c1d 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
|
||||
+from leapp.libraries.common.config import mock_configs
|
||||
from leapp.models import (
|
||||
DNFWorkaround,
|
||||
InstalledRPM,
|
||||
@@ -28,21 +29,28 @@ POSTGRESQL_RPM = fake_package('rh-postgresql12-postgresql-server')
|
||||
|
||||
def test_no_satellite_present(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
message = current_actor_context.consume(SatelliteFacts)
|
||||
assert not message
|
||||
|
||||
|
||||
def test_satellite_present(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
message = current_actor_context.consume(SatelliteFacts)[0]
|
||||
assert message.has_foreman
|
||||
|
||||
|
||||
+def test_wrong_arch(current_actor_context):
|
||||
+ current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG_S390X)
|
||||
+ message = current_actor_context.consume(SatelliteFacts)
|
||||
+ assert not message
|
||||
+
|
||||
+
|
||||
def test_satellite_capsule_present(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_PROXY_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
message = current_actor_context.consume(SatelliteFacts)[0]
|
||||
assert message.has_foreman
|
||||
|
||||
@@ -63,14 +71,14 @@ def test_katello_installer_present(current_actor_context):
|
||||
|
||||
def test_enables_ruby_module(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
message = current_actor_context.consume(RpmTransactionTasks)[0]
|
||||
assert Module(name='ruby', stream='2.7') in message.modules_to_enable
|
||||
|
||||
|
||||
def test_enables_pki_modules(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM, KATELLO_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
message = current_actor_context.consume(RpmTransactionTasks)[0]
|
||||
assert Module(name='pki-core', stream='10.6') in message.modules_to_enable
|
||||
assert Module(name='pki-deps', stream='10.6') in message.modules_to_enable
|
||||
@@ -88,7 +96,7 @@ def test_detects_local_postgresql(monkeypatch, current_actor_context):
|
||||
monkeypatch.setattr("os.stat", mock_stat())
|
||||
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM, POSTGRESQL_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
|
||||
rpmmessage = current_actor_context.consume(RpmTransactionTasks)[0]
|
||||
assert Module(name='postgresql', stream='12') in rpmmessage.modules_to_enable
|
||||
@@ -101,7 +109,7 @@ def test_detects_local_postgresql(monkeypatch, current_actor_context):
|
||||
|
||||
def test_detects_remote_postgresql(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
|
||||
rpmmessage = current_actor_context.consume(RpmTransactionTasks)[0]
|
||||
assert Module(name='postgresql', stream='12') not in rpmmessage.modules_to_enable
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,30 @@
|
||||
From ef967d029a8d3724d187ca4cd558bf4f52f8a295 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Wed, 18 May 2022 12:26:57 +0200
|
||||
Subject: [PATCH 31/39] Add missing documentation link to the SFTP deprecation
|
||||
|
||||
Related: #863
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
---
|
||||
.../opensshsubsystemsftp/libraries/opensshsubsystemsftp.py | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py
|
||||
index b60c08ca..20af2b39 100644
|
||||
--- a/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/opensshsubsystemsftp/libraries/opensshsubsystemsftp.py
|
||||
@@ -24,7 +24,10 @@ def process(openssh_messages):
|
||||
title="SCP support in RHEL",
|
||||
url="https://access.redhat.com/articles/5284081",
|
||||
),
|
||||
- # TODO provide a link to documentation or blog post
|
||||
+ reporting.ExternalLink(
|
||||
+ title="OpenSSH SCP deprecation in RHEL 9: What you need to know ",
|
||||
+ url="https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know",
|
||||
+ ),
|
||||
]
|
||||
reporting.create_report([
|
||||
reporting.Title('OpenSSH configured without SFTP subsystem'),
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,53 @@
|
||||
From 2d41d5f9186b642396bbad57ce7e11ebbdf1c52c Mon Sep 17 00:00:00 2001
|
||||
From: Vinzenz Feenstra <vfeenstr@redhat.com>
|
||||
Date: Thu, 19 May 2022 13:05:03 +0200
|
||||
Subject: [PATCH 32/39] Fix satellite actor due to some oversight of a missing
|
||||
parameter
|
||||
|
||||
Signed-off-by: Vinzenz Feenstra <vfeenstr@redhat.com>
|
||||
---
|
||||
.../tests/unit_test_satellite_upgrade_facts.py | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
index 0b6f6c1d..e70554a4 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/tests/unit_test_satellite_upgrade_facts.py
|
||||
@@ -57,14 +57,14 @@ def test_satellite_capsule_present(current_actor_context):
|
||||
|
||||
def test_no_katello_installer_present(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
message = current_actor_context.consume(SatelliteFacts)[0]
|
||||
assert not message.has_katello_installer
|
||||
|
||||
|
||||
def test_katello_installer_present(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM, KATELLO_INSTALLER_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
message = current_actor_context.consume(SatelliteFacts)[0]
|
||||
assert message.has_katello_installer
|
||||
|
||||
@@ -122,7 +122,7 @@ def test_detects_remote_postgresql(current_actor_context):
|
||||
|
||||
def test_enables_right_repositories_on_satellite(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
|
||||
rpmmessage = current_actor_context.consume(RepositoriesSetupTasks)[0]
|
||||
|
||||
@@ -133,7 +133,7 @@ def test_enables_right_repositories_on_satellite(current_actor_context):
|
||||
|
||||
def test_enables_right_repositories_on_capsule(current_actor_context):
|
||||
current_actor_context.feed(InstalledRPM(items=[FOREMAN_PROXY_RPM]))
|
||||
- current_actor_context.run()
|
||||
+ current_actor_context.run(config_model=mock_configs.CONFIG)
|
||||
|
||||
rpmmessage = current_actor_context.consume(RepositoriesSetupTasks)[0]
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
59
SOURCES/0033-Drop-the-obsoleted-copr-build-job.patch
Normal file
59
SOURCES/0033-Drop-the-obsoleted-copr-build-job.patch
Normal file
@ -0,0 +1,59 @@
|
||||
From 9049c65f73524c34f40f4da0a1f07b3d58d09f60 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Thu, 28 Apr 2022 14:28:14 +0200
|
||||
Subject: [PATCH 33/39] Drop the obsoleted copr-build job
|
||||
|
||||
This job is already obsoleted as nowadays the builds are delivered
|
||||
by Packit.
|
||||
|
||||
Also this is only failing recent month. So it seems there is no need
|
||||
for this.
|
||||
---
|
||||
.github/workflows/copr-build.yml | 35 --------------------------------
|
||||
1 file changed, 35 deletions(-)
|
||||
delete mode 100644 .github/workflows/copr-build.yml
|
||||
|
||||
diff --git a/.github/workflows/copr-build.yml b/.github/workflows/copr-build.yml
|
||||
deleted file mode 100644
|
||||
index 8252e327..00000000
|
||||
--- a/.github/workflows/copr-build.yml
|
||||
+++ /dev/null
|
||||
@@ -1,35 +0,0 @@
|
||||
-name: copr-build
|
||||
-
|
||||
-on:
|
||||
- push:
|
||||
- branches:
|
||||
- - master
|
||||
-
|
||||
-jobs:
|
||||
- copr_build:
|
||||
- name: Create copr build
|
||||
- runs-on: ubuntu-20.04
|
||||
- if: github.repository_owner == 'oamg'
|
||||
- steps:
|
||||
- - name: Checkout
|
||||
- id: checkout
|
||||
- uses: actions/checkout@v2
|
||||
- with:
|
||||
- ref: "refs/heads/master"
|
||||
-
|
||||
- - name: Trigger fedora copr build
|
||||
- id: trigger_fedora_build
|
||||
- env:
|
||||
- COPR_CONFIG: "copr_fedora.conf"
|
||||
- COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64"
|
||||
- run: |
|
||||
- cat << EOF > $COPR_CONFIG
|
||||
- [copr-cli]
|
||||
- login = ${{ secrets.FEDORA_COPR_LOGIN }}
|
||||
- username = @oamg
|
||||
- token = ${{ secrets.FEDORA_COPR_TOKEN }}
|
||||
- copr_url = https://copr.fedorainfracloud.org
|
||||
- EOF
|
||||
-
|
||||
- pip install copr-cli
|
||||
- COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build
|
||||
--
|
||||
2.35.3
|
||||
|
701
SOURCES/0034-Add-prod-certs-for-8.7-9.1-Beta-GA.patch
Normal file
701
SOURCES/0034-Add-prod-certs-for-8.7-9.1-Beta-GA.patch
Normal file
@ -0,0 +1,701 @@
|
||||
From 2f747a9baf0ff69e2f1be3809edb2f92e4aba35f Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Tue, 17 May 2022 16:21:22 +0200
|
||||
Subject: [PATCH 34/39] Add prod certs for 8.7 & 9.1 (Beta + GA)
|
||||
|
||||
---
|
||||
.../common/files/prod-certs/8.7/279.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/8.7/362.pem | 36 +++++++++++++++++++
|
||||
.../common/files/prod-certs/8.7/363.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/8.7/419.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/8.7/433.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/8.7/479.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/8.7/486.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/8.7/72.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/279.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/362.pem | 36 +++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/363.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/419.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/433.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/479.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/486.pem | 35 ++++++++++++++++++
|
||||
.../common/files/prod-certs/9.1/72.pem | 35 ++++++++++++++++++
|
||||
16 files changed, 562 insertions(+)
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/279.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/362.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/363.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/419.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/433.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/479.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/486.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/8.7/72.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/279.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/362.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/363.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/419.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/433.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/479.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/486.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/9.1/72.pem
|
||||
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/279.pem b/repos/system_upgrade/common/files/prod-certs/8.7/279.pem
|
||||
new file mode 100644
|
||||
index 00000000..c4ce4d7f
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/279.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGJTCCBA2gAwIBAgIJALDxRLt/tU7bMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDI0NVoXDTQyMDEw
|
||||
+NTEwMDI0NVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs2ZmYyMjVj
|
||||
+ZC02YjgwLTRlMzEtODNkOC02ZTM4MzY5MmU4OGNdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBrjCBqzAJBgNVHRMEAjAAMEMGDCsGAQQBkggJAYIXAQQzDDFSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuMBUGDCsG
|
||||
+AQQBkggJAYIXAgQFDAM4LjcwGQYMKwYBBAGSCAkBghcDBAkMB3BwYzY0bGUwJwYM
|
||||
+KwYBBAGSCAkBghcEBBcMFXJoZWwtOCxyaGVsLTgtcHBjNjRsZTANBgkqhkiG9w0B
|
||||
+AQsFAAOCAgEAYvHRG1AeXwUHoGeqzzMz9Oo5a/YlWAsc5JIj72Hjggrs1dpvjO1r
|
||||
+cs2aMNSYjki6QYLrSrJRbhhVT56JtpBSoBtVeh6SncLLzqe9jJsuFRDTPi99vtFL
|
||||
+9Bo6BqEUgrO9jKEnUmd6Gdntj74CfCJ/QxqgJ/q6uKVKR5YjjfHa8eNcshq12mr7
|
||||
+kvjQctWkbUYDkQAwtM7jw62DuOdkHUdvXRr2Uexs98XN41gNrIzMg0yNQpf/rKq5
|
||||
+w2oqDr45nNrHkmWtEAAqCQ+gDrZBALpbtrd4CDx/65zj3+ABp8oIZP/hMxV9xf86
|
||||
++npHiCtHj6hIXy4zwFMIKCna7w29OZUcTjOZ94dHe7IjO6HLuPdJvnJBgS4mba+C
|
||||
+zylck/qLyuhT+tO9rb1WhI29oq8elIVpjte1mGqtcaLnLTEBwZ4n8jhIk0Q705UX
|
||||
+DUhFV+xiD+asQmdeAWO+xzUXYVrJE2tiYfPtY+apLZlW2W6vTvfGhsI28kl7INC4
|
||||
+umMiNnRB32bMiIr0wH/zqaqpUUXWlj8zitX2ZUEAaHBhKCpr+etO9oATu/RKz6Io
|
||||
+OsHXLkBn6l7G3/nPXp3LVJU4D7UgSzY112GFjMibRIHX0L+d7OeP5vxevWaXMnEV
|
||||
+OnVCsQNu6/haEvADf9IYkPFtS19RCKxkGsGsWrMXeyxF/4CqffjabVA=
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/362.pem b/repos/system_upgrade/common/files/prod-certs/8.7/362.pem
|
||||
new file mode 100644
|
||||
index 00000000..322c85ca
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/362.pem
|
||||
@@ -0,0 +1,36 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGNDCCBBygAwIBAgIJALDxRLt/tU7xMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDgwNFoXDTQyMDEw
|
||||
+NTEwMDgwNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFswYjFjZDBm
|
||||
+My0xMzEwLTQ0ZGItYTNmNS1jNzY4OWE4ZTQyMTBdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBvTCBujAJBgNVHRMEAjAAMEgGDCsGAQQBkggJAYJqAQQ4DDZSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuIEJldGEw
|
||||
+GgYMKwYBBAGSCAkBgmoCBAoMCDguNyBCZXRhMBkGDCsGAQQBkggJAYJqAwQJDAdw
|
||||
+cGM2NGxlMCwGDCsGAQQBkggJAYJqBAQcDBpyaGVsLTgscmhlbC04LWJldGEtcHBj
|
||||
+NjRsZTANBgkqhkiG9w0BAQsFAAOCAgEAnf5WpzbOMFMIAh05C6hjWdEdF24jdSCZ
|
||||
+z9tdf1VXgYwjVENO3rQqPSSFNOJi7VcCbWZ9IZQKJI+Zb06hdSn1IIVNabWs8jZT
|
||||
+R+oAjjPmIulnqlnTh17JlF3cecty+GnbjitAW/AeYlql3Y1Lzy+GaAS2kERvCcCA
|
||||
+yFfc7h0odQDtIyhSCB2MewDX5pVnY8e4SybIvjTSMUOzPKdUs4o0IifqoL/MvvB6
|
||||
+3tLt9ezkqoIUWGF/LbEpuvrAa7cx5Fh2JnNQGdsI8071Y8YyL0kjUMtoNf5NBI3l
|
||||
+1gaFT5U2AzgnoRSlWGF/qCS3NuNZi2j6cvrUEWABrTAQlVi91Oqxhoib+KDFCZkj
|
||||
+73Xuyg+wFRUiOF+WL0/Jhe3spbynXtHb8PC4E2rRXUioCUZwkqgSo13b/xgcJDML
|
||||
+FRaUwARNZWfjmc+4Xxt7shzqFheshaHG7WPq8kxE6en4/yoO0imIk03ESSJSx2lB
|
||||
+CWUHZpFTmIZyjYgXjoeHW0FEeS8E8sQGfoT320McEUN5FS5NX/vYgmFQUOGqniPC
|
||||
+oiy07G/zdcBPTzxgcAU2CoFfXXYbEebcH14k3YbAeEOva38c+rBUa8siIozrYGyf
|
||||
+cFXfbyURcRw33M322KfvLesxUhfVaTNMapVR8AbdBYmQXwLZHBmL9dC+CY7kg3W9
|
||||
+AcQ+oHoM+eE=
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/363.pem b/repos/system_upgrade/common/files/prod-certs/8.7/363.pem
|
||||
new file mode 100644
|
||||
index 00000000..24c23cf8
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/363.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGJjCCBA6gAwIBAgIJALDxRLt/tU7wMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDgwMFoXDTQyMDEw
|
||||
+NTEwMDgwMFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFswOTVkNzhj
|
||||
+OS03NTM0LTQ1YWItOGE0NC04NzA0OWZiOWJiNGJdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBrzCBrDAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYJrAQQqDChSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NCBCZXRhMBoGDCsGAQQBkggJAYJr
|
||||
+AgQKDAg4LjcgQmV0YTAZBgwrBgEEAZIICQGCawMECQwHYWFyY2g2NDAsBgwrBgEE
|
||||
+AZIICQGCawQEHAwacmhlbC04LHJoZWwtOC1iZXRhLWFhcmNoNjQwDQYJKoZIhvcN
|
||||
+AQELBQADggIBAB8682pIKA5WtH83Hb8qNnT2URChEilvPcrFpSlJqtc8BWmcUpMq
|
||||
+MRB4z3biDaWoXpHMT5FeipOuEtOLANrEcjhbd1tQqgHvlDmkbxD9fT4/aSuABikB
|
||||
+14oF7o57Ys4s3NqQZ4Dl5DH4LcP9Z3WCBBcqH4SNVbeAT49QdxwI9E3Z4+HgvOgQ
|
||||
+LtKqiwzOyUsYPUpPXOOOEzCbRAnaWeGX/fIH6PTusM2T/SRScHrsKDidrrobrUVq
|
||||
+Rnim68FZ1bAxv7g6RHDi0S447CX4Gzy0tRFJTKdivUk9cF32AH7Q1v3cEiaImGYS
|
||||
+VaznFmOdRg/gU9mV/QPy+N1hhNYf888oDprF2OPzc2tdmbBOUdZdkA5J3CXHZ+f9
|
||||
+Q5WuLsZEBeuetwk9LQA+v0gPYCXJfZAsvhdM0mQpUDW9gp2ucnu45Wm8iDmA59zM
|
||||
+/uhJLRv2z9UtqEySt6OYJEd0linv0RvEwKwBPCZA3L8FKvosuIwcV+x4XTHb9f0E
|
||||
+kwqRFboioJaER/K5oX0kkCaVlD/8xpuS3Qc8pN3FXD3ZiK3u2plLZh+7LWd6id+E
|
||||
+VMIUej+kPAfwiXf8MDR/GZZJeIHI27C84thoq6C0AcseaO5LTUSLMaqGSSvU5yoV
|
||||
+8TJr9HIJw9bFmHroWKPdtLGFCCYO7GhC25+jZn+dUYOCRCsRCaE/J4d0
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/419.pem b/repos/system_upgrade/common/files/prod-certs/8.7/419.pem
|
||||
new file mode 100644
|
||||
index 00000000..88315387
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/419.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGFzCCA/+gAwIBAgIJALDxRLt/tU7aMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDI0MFoXDTQyMDEw
|
||||
+NTEwMDI0MFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs3NDJjODll
|
||||
+NC0zZjM2LTQ4NTgtOTkxMy04ZTc5OTYxM2Q5NzldMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBoDCBnTAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYMjAQQlDCNSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NDAVBgwrBgEEAZIICQGDIwIEBQwD
|
||||
+OC43MBkGDCsGAQQBkggJAYMjAwQJDAdhYXJjaDY0MCcGDCsGAQQBkggJAYMjBAQX
|
||||
+DBVyaGVsLTgscmhlbC04LWFhcmNoNjQwDQYJKoZIhvcNAQELBQADggIBANZE6GPc
|
||||
+I1/WYEDtvEMts3mLO6+NtKzd8Bt3nmMZEYorN3mZ0WjpbNuBcVlbQX87eoMLA9g2
|
||||
+P54gkuPzpY+ea1ZKYJ7zzG6AnKXNprL1RrHNkdEs79r3AM1t/m1CdlZwsSfRlGdX
|
||||
+hDZR8Gy5tgX9Q75jMK/JuXuQFJiOpLIK2yeD6/9geGWv1NXbV/gkE7U+K8LwvQRa
|
||||
+gR0FLzJpJlzFIbJXutldvwDm22zgECfzvfoSCFw5E7Sk+5lprVdlDMfW1t9Bj5lF
|
||||
+FBDYJBT4iAXVcyRj5QBBMG1xcUxh7XEM3XiD9/2albaeTMkiIip7OCsOdPi9uPcs
|
||||
+wvjgJ6+Uxd33sLnfl/hywrrKc8gZGX+IhkeNph3GMq0CwijLT6/0jA/dbYyusGDO
|
||||
+OdEilyP4YIe5nltwO8rgW4AytIrX9xKfF56qjdudUNbrzLrbKF8+URwdjQBSJOdh
|
||||
+q4NS9gRnaCnn6FlrpYW4aUJAjcWfugUj8dpKBIdOCZo55G3AqAAl7lv2MwibGwuw
|
||||
+XX8wE5EVnr3Wq3UIiqNoGU/Gkz4sdoTXGPSMQQPWYPhJ/nUtC943d/MDZkZ1HF6L
|
||||
+CwsmLK9fTstiRdm5DF6q7nAUxgXz0dslLln1WYHXi4k/x5gIZmLbLBwqfsbMg53d
|
||||
+jlJwRkvUou7uq1C4Cc0oH7es4chgkyShYNyR
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/433.pem b/repos/system_upgrade/common/files/prod-certs/8.7/433.pem
|
||||
new file mode 100644
|
||||
index 00000000..bed65e1c
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/433.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGKTCCBBGgAwIBAgIJALDxRLt/tU7yMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDgwOFoXDTQyMDEw
|
||||
+NTEwMDgwOFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtiYjg0YzZl
|
||||
+MS03NGE3LTRjOTMtYjViNC01MDYzMzQxN2UxMjNdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBsjCBrzAJBgNVHRMEAjAAMEEGDCsGAQQBkggJAYMxAQQxDC9SZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIElCTSB6IFN5c3RlbXMgQmV0YTAaBgwrBgEE
|
||||
+AZIICQGDMQIECgwIOC43IEJldGEwFwYMKwYBBAGSCAkBgzEDBAcMBXMzOTB4MCoG
|
||||
+DCsGAQQBkggJAYMxBAQaDBhyaGVsLTgscmhlbC04LWJldGEtczM5MHgwDQYJKoZI
|
||||
+hvcNAQELBQADggIBAFHSGH0JiAad8JnEJQxH7JklzxaTxLFlueLc2Q8P1wV2g+ib
|
||||
+XsdmP+fq9YR56UN/3rYip6MTEwp2tTCZy9FRraLTunscYB19LwBmiYirDBNyyJms
|
||||
+hCOzIN6itJrfjD7WOJ9DgEDstnEJrTW76a1TV92etWNvW3bwkktKnfHlbv2tgRSj
|
||||
+44zIWaF5J9P9R4oOD27ArmR0/AK13194U8iRwJi8Tw/z90QznSYj4QGJZyBm9a/d
|
||||
+alEktaNkdjNYcGczlepOwZ7pHkDyMihBUVBXLBK68j2d6OdZf9qptM5oouaIKMOp
|
||||
+DBCjecfQ11q3avAjvGPAOoIuAzVlRZE1pDP2VtFPoCohWytP4QMSfvFWgFx2zWjR
|
||||
+Gc0LEAHkP9iLnkqvSZfAYXdsaZ564Y1H6zv3PbQPSC540edRbWSufSa46LeR0U6+
|
||||
+zavOtchYFwZaeTZc4rzxDffMJQhv27C+QOnSth/YR2r9Yg+QfRwfmwR+zPBbbfUP
|
||||
+t8dL/Es7vi3mMjmshcSvRpka1b8kMemm+xIV7zQPfpcPXGy1+SzC0jbYApE608WG
|
||||
+kjqttn6qWADc3kpAFGKXf2nozwDhqKXLLVCKPcTRds+IB36wKeH6eTgS/tv6df7x
|
||||
+U2CVpb5fgHz4TgZaGJPTRkzDRtRnuct6LJ/bokKrGw+9+v4WZvRrWQ4dncS+
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/479.pem b/repos/system_upgrade/common/files/prod-certs/8.7/479.pem
|
||||
new file mode 100644
|
||||
index 00000000..c79cdb7c
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/479.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGFTCCA/2gAwIBAgIJALDxRLt/tU7dMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDI1M1oXDTQyMDEw
|
||||
+NTEwMDI1M1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsxN2ZmNWVj
|
||||
+YS1kM2YyLTQ1NGYtYjliZi01MThiYmM1MDk0NzhdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBnjCBmzAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYNfAQQlDCNSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NDAVBgwrBgEEAZIICQGDXwIEBQwD
|
||||
+OC43MBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM
|
||||
+FHJoZWwtOCxyaGVsLTgteDg2XzY0MA0GCSqGSIb3DQEBCwUAA4ICAQBvy4DLCvm7
|
||||
+gH40xQ+oGqaQ49X5dshAyIVhQ8cUhnas283F/qWDOLcPgv4qMDV0uk1GNJ89aIkj
|
||||
+jDgxCXozgKZmo1AAFuWKtSrKcj0q+mV5iKKBqcc6vV6ud0WoKWNACLeDR+GkZAH8
|
||||
+WcpU/077Sv7o5Km09p2kzHDwuDbeucibrirMJ13hYqvWePnp/G149mYlplnVJnsH
|
||||
+DMtVOO+NG1Z0hRXGFsq63FUBiDgeRFKNc+7lL3GAlTO47RQDkQ05BFh8Guce4LMv
|
||||
+xnGrY+X0vEUyYPbOxNH6qdys6NrEg8ZxEj0iPJCqyaWFpum1/9f32CHPJ9i2+5Qm
|
||||
+Sg7CRHiF6iK86DcanaIwrvuqyy+HI3G1N84SnbJilQHwiJSAyNh/7pctroHgQK0b
|
||||
+K2O89xHJpG2/s0IO9/GlT1ERtBBYDNYXalkuuqaEbbBpBHTcmBmeIBg+njg9VXAv
|
||||
+MsOtQad8BFl7g+iXO6xEajgt+DpfKPthtwP5vpse00EhYpoRAmCErfvxOlrRriZe
|
||||
+5NBFi+VBuGTIboiu31LBHfDeTEjFNvRhoqiEY0DQgMBIXNCimfaK/BwuA/HwgL3b
|
||||
+mVzOoRYeTLfRr+hovdQFrwVJLMAITS1PQReJ4OTfhG3P6ybk8eDIuK9PxV1KPCGr
|
||||
+MdOPQcr4cqixZyH0ZM/961cOjvKuabHA6Q==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/486.pem b/repos/system_upgrade/common/files/prod-certs/8.7/486.pem
|
||||
new file mode 100644
|
||||
index 00000000..fbd26bfe
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/486.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGJDCCBAygAwIBAgIJALDxRLt/tU7zMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDgxM1oXDTQyMDEw
|
||||
+NTEwMDgxM1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsyOWY3NGM1
|
||||
+MC04NzE0LTQyNWYtODg2YS03YjgwYzFkZDJmN2VdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBrTCBqjAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYNmAQQqDChSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NCBCZXRhMBoGDCsGAQQBkggJAYNm
|
||||
+AgQKDAg4LjcgQmV0YTAYBgwrBgEEAZIICQGDZgMECAwGeDg2XzY0MCsGDCsGAQQB
|
||||
+kggJAYNmBAQbDBlyaGVsLTgscmhlbC04LWJldGEteDg2XzY0MA0GCSqGSIb3DQEB
|
||||
+CwUAA4ICAQCqoYGO8Ic681iebYurHHMm4ZszBfsG3dPqXvkYCLGIKs8y3eYWHMGt
|
||||
+8PG6HdLiFuM0klz3WSfbRDFmQ2Lna4HmJSo+kzHkF27eu/4zU6h+CzHN4hI392KK
|
||||
+TXcsUoAacyXyhcIHg9lZeHNDWitMyYuoJjHURnicCf3GSWvsemmyRSpZiDDMPORp
|
||||
+RA7OSlfn9jH8vANX4TStbjn2Ptqd/9oowaZVeFQarpNnJjw6+5eCtm8Yp4krEa7X
|
||||
+u4smSyQWO9U9/i3ITCIln1fAadrLUEg8T9hR2AptAa6QjlIE4PHy+O7BLyfNSM2k
|
||||
+qVtg+ws1k7io+yz7bJzVt5MtTEmTWviy96aT8DEZm51fRkDoG0HNxtTc15bcfkw1
|
||||
+NZQ7Dll1qvn/WTkgoJ32ZR0paI790zqThmouoVRflBC0dmIqjplSzhTOsoSIDeum
|
||||
+u613P77Xk2km0ll0Aw8BUG5oacoxFGY0C252Y0QMhpI8PSn9d/FUBdLD0SwG0gyd
|
||||
+1j2O2rwXpoVBYTqJafy6zINGjMMYA3K1UoinL7YE8KdIv0CMewnoNILpCMdeou8g
|
||||
+DvCVdRMHxlnA8upL1CjjNJeSNMAEaZjWfzdDHSIETAWs4XxFM3flBSqmX2ecspmb
|
||||
+vTHBwfOYs0iuNCi+sbWCX2lb4XP1r/pvA/T1lH6k7J3ON9XOHOVWRw==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/8.7/72.pem b/repos/system_upgrade/common/files/prod-certs/8.7/72.pem
|
||||
new file mode 100644
|
||||
index 00000000..63bb2f18
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/8.7/72.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGFjCCA/6gAwIBAgIJALDxRLt/tU7cMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDExMDEwMDI0OVoXDTQyMDEw
|
||||
+NTEwMDI0OVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtkNTBkM2Vl
|
||||
+Zi1iMTI0LTRkNWItYmI1Mi05OTNkNTUzYjU3YTFdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBnzCBnDAJBgNVHRMEAjAAMDsGCysGAQQBkggJAUgBBCwMKlJlZCBIYXQg
|
||||
+RW50ZXJwcmlzZSBMaW51eCBmb3IgSUJNIHogU3lzdGVtczAUBgsrBgEEAZIICQFI
|
||||
+AgQFDAM4LjcwFgYLKwYBBAGSCAkBSAMEBwwFczM5MHgwJAYLKwYBBAGSCAkBSAQE
|
||||
+FQwTcmhlbC04LHJoZWwtOC1zMzkweDANBgkqhkiG9w0BAQsFAAOCAgEAFrbUKzXJ
|
||||
+odKPWFSsCO29xwbI2udUSQNphjpumtFDgi/8fteWgb7iJtL4iGTVXjoTbS+lJkML
|
||||
+1d0a20v0GcMk7oULYTzzbgSaDZ/NQmkblo9nQ3tKVb8pBcJDRZJ6OnyG/nm/dH1p
|
||||
+TMXKWbLfGySlqyGyDe8F3nEQRRkJsbTkQdzC196/C8fjiTBcsS6KASQTOS9t7H8M
|
||||
+zLeisuCiozMk34Vf1bbgeLNJp33ZhAbKxTble2UfrA/9VYKe/vLP/i4sUY1VcYoF
|
||||
+ZEbqh3QFaTZ3mBNkENtmivKwxysWW5pa7GUbnfEO23+9flp+BLoElfMqHxmh8sdx
|
||||
+7UbvdOpWhzvO+i+By26HjRv4wtjY+Wsm8kHeGT0O+dEEB1vfsRWCwHUYhEfpdoxy
|
||||
+Ivo5/fi6cCETFhzeneJyOWrUsg1PnYIa6EZ7oBRrrOMpcSvgpM+MIQC/NYgwF5lh
|
||||
+TWQzrSta34HZdtuwqGQ5I6etjp45OyUOcE1ww4YEHYJCoQXyHdiFDpETWYoR9x6Q
|
||||
+FZ+JvLuzm61Kn3wT/H+kxFSfT8CmSc0nIGR6Fe4MEG5Ly9DH+PoDf3f7XDdIsFoX
|
||||
+OU81koyfPHejg7J89hzWQh596sc+pv67l/ThfjZxjuhI2RU4P0PzXtMc/5SnQQb5
|
||||
+faCsMhoTZWRVvgumW77D0uk7k91BSVYKbkY=
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/279.pem b/repos/system_upgrade/common/files/prod-certs/9.1/279.pem
|
||||
new file mode 100644
|
||||
index 00000000..23e565f8
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/279.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGJTCCBA2gAwIBAgIJALDxRLt/tU8gMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTQzNloXDTQyMDEy
|
||||
+MjE2MTQzNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFswMjA2OWIw
|
||||
+NC03ODY3LTQ2OTQtOGFlOS01MDFlMmExMDBjMDddMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBrjCBqzAJBgNVHRMEAjAAMEMGDCsGAQQBkggJAYIXAQQzDDFSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuMBUGDCsG
|
||||
+AQQBkggJAYIXAgQFDAM5LjEwGQYMKwYBBAGSCAkBghcDBAkMB3BwYzY0bGUwJwYM
|
||||
+KwYBBAGSCAkBghcEBBcMFXJoZWwtOSxyaGVsLTktcHBjNjRsZTANBgkqhkiG9w0B
|
||||
+AQsFAAOCAgEAsR3LlRmkKG8hA9H6RKEJwHxZnTb+fGF0gnYMCQYQ5z+J0LLmeP5R
|
||||
+KgJP62lauRtQwsVCEyKURV8k8SBCDcQ8xpqhC/GkZRqaELo0NNgJ4KS+mmbsee88
|
||||
+VW7mU8j91n1h1Dz+7zQVrXyP/uNailjPmDKB/l9LpSTGdHVuEJMBZP9840SjCv/Q
|
||||
+S2hCN5aLGf8Jg7Vz72LRUINEZW0At36MKX50NenWsD9ME45E8CRzH3Nfg/iQs8wX
|
||||
+bavUDiHAwTMSHlUZRRtPQf69MIQVfr+EMGBM307GqurNdtrGreOwnRoHmvvXsa0k
|
||||
+3SRZ+WUwR7ajsCA2nGn4sybYdaB4+DWMWk/ZHvWQazU7Ff0J8F6QdIMfN6g/slBC
|
||||
+t4YOsmYO46oVcrYAuqIJ2E3IMzZCsz4MODGwbj8brVL5OnZ/DHPzNaKxJ/DN+YqU
|
||||
+xe3j1ZKts4dRBQIuVrudp2mf8Ergrk8iqAltNpWNEZEPkLH8pNlPV3MmBEtshTWu
|
||||
+pHskG2WSm+o/qM4aoKwlvROaa9xoHPtck0xYiMujrohnQWgxdlUuiQIl43yAt7m1
|
||||
+dmfm085Vgn26UrPLYYoFVOCQLiSPnVtqGIBrsC7Qp1wzNYrUfo9WI1AjTJzxwPaU
|
||||
+tgsDMdfF3yQJuDw+LwL+8LHnuAGQj94+6pXfmG/n2qXhfgQDrA1uK8I=
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/362.pem b/repos/system_upgrade/common/files/prod-certs/9.1/362.pem
|
||||
new file mode 100644
|
||||
index 00000000..1bf886e2
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/362.pem
|
||||
@@ -0,0 +1,36 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGNDCCBBygAwIBAgIJALDxRLt/tU82MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTcwM1oXDTQyMDEy
|
||||
+MjE2MTcwM1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4Njc0Yjk5
|
||||
+OC1iZmU1LTRjY2MtODg4NC0zNDgwMDlhY2EzMGZdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBvTCBujAJBgNVHRMEAjAAMEgGDCsGAQQBkggJAYJqAQQ4DDZSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuIEJldGEw
|
||||
+GgYMKwYBBAGSCAkBgmoCBAoMCDkuMSBCZXRhMBkGDCsGAQQBkggJAYJqAwQJDAdw
|
||||
+cGM2NGxlMCwGDCsGAQQBkggJAYJqBAQcDBpyaGVsLTkscmhlbC05LWJldGEtcHBj
|
||||
+NjRsZTANBgkqhkiG9w0BAQsFAAOCAgEAQyA3WPkt5NdFxpA60uTkhSCqgsuwDwCZ
|
||||
+D1iFeSClTqT5WvEZxAacmepILXqFEv7DIP82cRXbAVYLvr24Wlc9LuEe0r+gAMI1
|
||||
+SS/IZ/A2kf8yQ4spaPEZ+S8cmtrErM0CqxabaV4E79CTnhxz9Sv0ktG1nIx3e2q9
|
||||
+ZbrFfXbrmNzli9xOhIFxLtqxvFIVktW3ak0ugDl7Ah7zlt3gJlf2q3/JeaFYuOAf
|
||||
+4+93F916ss9skekUwd798FPJN8FMDOm9ClRyHFSitgeDijwYCf+rvWjVYnb0Wpfs
|
||||
+eCZvTGP8J+VnJxDSUlnFbjTEjuzOXXVTqoPrlvfrqfeSTp1X9bf4r2AvstAswfp2
|
||||
+f/HGli3ZAgnIyupb2HE85wTM+qjeescIIIhzo8BjjiFLszOwNdn74ZcoWC/mSftd
|
||||
+fx6MAXZH3Qygd3BmaGQ4oDoMpqeK1s8wXNAt/xQ9VpHe/WVQLBOZwi0AqB6bw5Cj
|
||||
+K4k8YMsFq3yfgJFk4LqDELZd9RYOR6/A6zAcoHGmjqkRTmeC1xVt9UB1fChHNjZK
|
||||
+/ZDT4mS1qwY48laIdkTiKNqdRiAXUUktQNCkqQ/C2SLgsGe23vJfaxwLh/dLht2u
|
||||
+GcSes7HrzhdwxOUFnoXZSAxoWyWL2uU6V+iHMLyP78TqhpsaZ0vYQcYw4vQyB8LQ
|
||||
+AuQfqagBINQ=
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/363.pem b/repos/system_upgrade/common/files/prod-certs/9.1/363.pem
|
||||
new file mode 100644
|
||||
index 00000000..c30db921
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/363.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGJjCCBA6gAwIBAgIJALDxRLt/tU81MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTY1OFoXDTQyMDEy
|
||||
+MjE2MTY1OFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtlY2JjYTFi
|
||||
+Zi1kYWY2LTQ0MjctYThlNC0wNTQzMWE0ZjdmNGVdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBrzCBrDAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYJrAQQqDChSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NCBCZXRhMBoGDCsGAQQBkggJAYJr
|
||||
+AgQKDAg5LjEgQmV0YTAZBgwrBgEEAZIICQGCawMECQwHYWFyY2g2NDAsBgwrBgEE
|
||||
+AZIICQGCawQEHAwacmhlbC05LHJoZWwtOS1iZXRhLWFhcmNoNjQwDQYJKoZIhvcN
|
||||
+AQELBQADggIBAJskY+jnlGF7G1NVA16XYdQkSs0n8BPQElSTibN9XBbEqkEsSHsS
|
||||
+SOuYaMa6lH46YFqLEMXrbJ1mvwu2BfkeOTEqtwax61D+MnwHBD9ouEwVQVJXwdKz
|
||||
+aqVa3ppLdds1wOv4B9bBhVVBElE1YU6I6NMdetQI++zEfmXseqlb19yCEPuva/1h
|
||||
+H5BX/2EJgQJYPnS3+x2hcOKl5lcX40ZuM876BkWPyp9gy79sd/DrWGYhCRyNNfL4
|
||||
+9IaPbrEgSxvuhtdIWq4+g5LHU3sRuNuzYSoh+CJU9a0wDaL+PeKmiiuP2FP9Pmbu
|
||||
+avMO7uQf9hTZQweHePqxVrBfjQM7kgBi2x3oedLGsr2DG6WfOeIa+1J076eChwDQ
|
||||
+5rYzybyHZwiCu/UKhacGQgEPk35IGDnxNMpSqZOCC8peiKQyq3aSIhZH0rk6J4pV
|
||||
+SVyhNWmSfCbNboehTB8Qjpt9BAywMPn0jo1JqNWQ9/qEHK95MKu27tU9IqIQvwO5
|
||||
+ZF4kuJouuBqoPG/N2edkMp+53wu2LLvdgPYEs6UghDh2Eq33AyCCX27W15taxXeR
|
||||
+91h0qXibsaAUD7e8bvDy5goSER8bD3UFxLdjCIWkQpp5jgzJyIWjY1Dm4OVPcWoB
|
||||
+/aIQOe15VyH87eyXMXPiDKRe1cLOsK7MqJs+Iks/QIw0hHaOVNt5MpI5
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/419.pem b/repos/system_upgrade/common/files/prod-certs/9.1/419.pem
|
||||
new file mode 100644
|
||||
index 00000000..6acbc763
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/419.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGFzCCA/+gAwIBAgIJALDxRLt/tU8fMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTQzMVoXDTQyMDEy
|
||||
+MjE2MTQzMVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs2YjI1NDIy
|
||||
+OC03MjZhLTQxMWMtYWJjZS04NDhhNTY0MjBkZTRdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBoDCBnTAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYMjAQQlDCNSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NDAVBgwrBgEEAZIICQGDIwIEBQwD
|
||||
+OS4xMBkGDCsGAQQBkggJAYMjAwQJDAdhYXJjaDY0MCcGDCsGAQQBkggJAYMjBAQX
|
||||
+DBVyaGVsLTkscmhlbC05LWFhcmNoNjQwDQYJKoZIhvcNAQELBQADggIBAErSvVD1
|
||||
+Rq4PcUUGjVoZxCuNL6gwZmTZyN7KkSHRBXgOcYbxRdUvRHTxBJ2fnA91cMh5wdJf
|
||||
+TOkYQEekH5iW70jLQUtRW7Ld6d5M6yXGYa54TIZRBFRHn66ltZL8Ub42PkKWb0tu
|
||||
+icF8gtk2WEx4vm/rLvU1xS2ZEYzX1lyn0fj6UJmqO82EuJOhQW1qeYhTa7sW9SpD
|
||||
+D58zJiFLovVcNk8Te8A1UVMiajazUMQn7eapyFEqDAOnrhY31oMUuoyon2XLeFQc
|
||||
+DPtL+NBKh1x9Y1dyHGN0wwYrLzqLbSiGS7van2lzgI4E7niRpJGsTGg9E3A5g7Mu
|
||||
+FRcp1dWXnP/82/mR4Vln1bLvujNaOdx3VjuJt5GsS7XYZu2AwjpEMwEosWvayzLd
|
||||
+TqS8MDWilCIVVFScDUYQUaqYDkASweAe/HEpNirKZK01LGsXOeZxVOxUlOXM28eH
|
||||
+fyVlKT5zM2dhFXnkQR9yRuXvteKXIVFelH5zD7smDmDqwSeSDXqaxETVHyy2igSU
|
||||
+70l7cx9XsjSbLpgTLBg61PRE9JMKoUrCrA70zphTTAq6cZ0KIkgJMsQH3iAqChL2
|
||||
+aY2o2FrOovBWmjqOl6sF1VHU43Io9cJPeNwXNR5UI9jxf8wPy/4mBPDPaUGhHpL2
|
||||
+bwJPlJP/516RMFzGXhR5PuCvw1UGzqN8UCmL
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/433.pem b/repos/system_upgrade/common/files/prod-certs/9.1/433.pem
|
||||
new file mode 100644
|
||||
index 00000000..6bf7a7ce
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/433.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGKTCCBBGgAwIBAgIJALDxRLt/tU83MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTcwOFoXDTQyMDEy
|
||||
+MjE2MTcwOFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtjY2Q5OTA5
|
||||
+My01OGY2LTQ5YzQtYWQ0YS0zMGViNjQ3MjA2N2VdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBsjCBrzAJBgNVHRMEAjAAMEEGDCsGAQQBkggJAYMxAQQxDC9SZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIElCTSB6IFN5c3RlbXMgQmV0YTAaBgwrBgEE
|
||||
+AZIICQGDMQIECgwIOS4xIEJldGEwFwYMKwYBBAGSCAkBgzEDBAcMBXMzOTB4MCoG
|
||||
+DCsGAQQBkggJAYMxBAQaDBhyaGVsLTkscmhlbC05LWJldGEtczM5MHgwDQYJKoZI
|
||||
+hvcNAQELBQADggIBALHMRvdZe+o9Q10SomVtnf2i/AKg+APq60JCwBXim7bpZKrz
|
||||
+GpH5o6FPlUG9mAvrbf14lXq1wQDM4lbpm7NxXzauxf9SF/L/kp9RzCD9MXXze0rv
|
||||
+zZBPj2gnGrvtyo3jXp5ZB8/BIMxkzOjUooYSVVGtRwI4PDEWStVzUokVHTIr9Aej
|
||||
+ErJbtY7qGQpCruqD/66UX/8lffbbaPbh148ZNkz0eDmVU97PEnPpzDV8S+ikTayc
|
||||
+uzXadOrmPP/oMBRMFhw5lCST0J0mWXxyWfZzU3Et9Lm3w9sDd+r8Ed7dlJImLH5N
|
||||
+FwWv4Yu3ucX4Ww4/nASE5Ag6n7drNRs/+EfSTFNu33uicVqoVwu2kJosekAnZ/EI
|
||||
+Pof1TvYiVRp2R3XGJQQ4hcOkHLF40kurfqxTLUTyrSk5e80IR10cT/WBUoze7h5y
|
||||
+SJ098+9NRbMSoRdZ2y/CEOy1CHJQ1RCuj8zGSadhhO0mJC3Bio63boGidVhDZYJR
|
||||
+k6oIbU8K/DIbPlcvcQ1iuIvRRDH2lHXzC5s9CVzThq43EHk7DtaHisZkHTjRbZDf
|
||||
+/3kEFiHmEq84id4AQ+c55U8t+OfMcERDfbVF0+R9U9AsdI2TcSsiUt0byLj5R6HJ
|
||||
+XLz/rDfj13pv5I3nmb2tcTD2dw+c8rbO8WeodVQ3Au9q4X9ggWkTkJ7UJ/Xu
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/479.pem b/repos/system_upgrade/common/files/prod-certs/9.1/479.pem
|
||||
new file mode 100644
|
||||
index 00000000..daf2a5e5
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/479.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGFTCCA/2gAwIBAgIJALDxRLt/tU8iMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTQ0NloXDTQyMDEy
|
||||
+MjE2MTQ0NlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4ODA2Yjll
|
||||
+My00OWRlLTQ4NmQtYTJhYi0wMDk0Mzc0MGRkNDBdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBnjCBmzAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYNfAQQlDCNSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NDAVBgwrBgEEAZIICQGDXwIEBQwD
|
||||
+OS4xMBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM
|
||||
+FHJoZWwtOSxyaGVsLTkteDg2XzY0MA0GCSqGSIb3DQEBCwUAA4ICAQDW03/f7G4a
|
||||
+DeZ9vW/fmgqk/08PSp0B9eknQJAl4JGSoK6GfIyqlHBlYRd+eiAIJD0CnIAF7mEP
|
||||
+UBJkdT3OlLtqGzXCHZVU8Cwkuvg/0WVfH6qAr8GRwc8fa5DdC1odkDthz4gCbusm
|
||||
+Mtkq9rETow1Ub04eEt7mGNE/NaGwUBVnT7jfmrdFMr+SNjQhgH3Tb/ftnQ2vOZn3
|
||||
+QRAvpbmUX1YNC/uf00k95XX7Ibsqr3awvTad47L5UKtVxlgxPzuerB5EgUt8XJBK
|
||||
+NRk9Bz7T8UMvu+8j8cMB2Mxp8X/3XV0aF17mGR7JuG1KUfgoVU23GHtGx5fZtk6F
|
||||
+/bg53ibXtC9ULmoRP9E+RRG1o/66QMV4DvPig43mP139jq3PohRfYqSowFCZu6aS
|
||||
+F7Tn1Ceu1LPQdq17DXOlaSdrlFpS4Psf/GLOOh8LtJdDfJMeD9NFF8DB78rnNOVN
|
||||
+AZ2qAZYxMxxjRamHrg6pnnm08bGNI/aNXNyhssFPxqWcXFzwr3ZGoYCTph35xi0R
|
||||
++43f9T/Wb0aqa1yyOkDVdtxDllX+spYUwb3IwxBnWq2PYeNqVi5Qy4R4aWlOVGRX
|
||||
+U8WZGLrkK9w76r882b+z9qhJlpvz9weCikpytj1cD3+ExOMsOPcJS3OfX0Gxdjba
|
||||
+LOwZVjjsa8cCnK1+wd/QIRhh+IHDdJkG2g==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/486.pem b/repos/system_upgrade/common/files/prod-certs/9.1/486.pem
|
||||
new file mode 100644
|
||||
index 00000000..8ffd13a4
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/486.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGJDCCBAygAwIBAgIJALDxRLt/tU84MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTcxM1oXDTQyMDEy
|
||||
+MjE2MTcxM1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsxYjdlYzQz
|
||||
+Ny04ODQ2LTQ2ZWMtYjdmZi03MzQ3MzM3NjAwOTRdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBrTCBqjAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYNmAQQqDChSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NCBCZXRhMBoGDCsGAQQBkggJAYNm
|
||||
+AgQKDAg5LjEgQmV0YTAYBgwrBgEEAZIICQGDZgMECAwGeDg2XzY0MCsGDCsGAQQB
|
||||
+kggJAYNmBAQbDBlyaGVsLTkscmhlbC05LWJldGEteDg2XzY0MA0GCSqGSIb3DQEB
|
||||
+CwUAA4ICAQBy2AguldzCVHFa3C02RoPZu9fIakvyQMqtq+xN9fhbPFJdcDWG6nqZ
|
||||
+w63Oq6bzYYIkeM1KRfnteVwG54OOPlnhfnSt4AQ2HOjffFgMlZKbiCL1mV2UBsN9
|
||||
+TFivspxb88I82X+31sYdqgd7HZP8e+hmhENLOoEwntCsG2bjtRzYlXLF/7JEWGml
|
||||
+/Dgfx5e2/wyerIQMQ384WfVpAxJBdJrkUe5W/ap8TnmkN/Ct9jKwIJ3JLSe+tbwI
|
||||
+KUHFLAHcAm/7zZzzNps4M6MC/XrakvG6HiBODzc2QMgxiGNIm+FNhF3sgJVebSyy
|
||||
+m9qbk8w/OjSCD2cdeZkuoLdi3f26GiJi3QzT5Bojcf/y2GTJzzzy3BaVlbOdwd+T
|
||||
+Do4AVv5nmF/0HkquJPCM92avLIOIuqbAU7q92y00l8ephPFo7dNorO1jqBSPEOzb
|
||||
+Ff9EXIqy12xicbAO4ob1WoTjcGwX8qTB16sfcYd+pSucqQnYaIyFaDrH7yYuWCWO
|
||||
+qDKyi3REbQNtAi7xYsMNLiS+ZA8XO394ijPFNqQgEcaGx20iY4l23y7D2rx+hUQL
|
||||
+TVMvxWD0eS1ZC3LuGFqF5A1y/MPxT8n0giItWI5ASlp5fzgxsq4aBdQ/Z2QuvtMu
|
||||
+gstPN2uvybhokLoNseOgEYz+Y5J8EuO1rrVMfRDLeKVqE9/O9z6aXw==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/9.1/72.pem b/repos/system_upgrade/common/files/prod-certs/9.1/72.pem
|
||||
new file mode 100644
|
||||
index 00000000..2a2e4762
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/9.1/72.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGFjCCA/6gAwIBAgIJALDxRLt/tU8hMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIyMDEyNzE2MTQ0MVoXDTQyMDEy
|
||||
+MjE2MTQ0MVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtiMjY4OGFl
|
||||
+MC0xOWRlLTQ4N2EtYjQ3Zi04OTNhZjA3Zjg5YTBdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBnzCBnDAJBgNVHRMEAjAAMDsGCysGAQQBkggJAUgBBCwMKlJlZCBIYXQg
|
||||
+RW50ZXJwcmlzZSBMaW51eCBmb3IgSUJNIHogU3lzdGVtczAUBgsrBgEEAZIICQFI
|
||||
+AgQFDAM5LjEwFgYLKwYBBAGSCAkBSAMEBwwFczM5MHgwJAYLKwYBBAGSCAkBSAQE
|
||||
+FQwTcmhlbC05LHJoZWwtOS1zMzkweDANBgkqhkiG9w0BAQsFAAOCAgEAMrD6Jk+a
|
||||
+rSI/tW1YXvO++Th/x6+kvYmPTFCSG2h3VyC+PUgsn/Oq+szuSlS6alWOFX2UWjyM
|
||||
+RI+VxCL0nRWHuqOWJXIxJy/qoqQwAikimsLfS7UgB/TnbP4d5J19jwtkVFlAIqWu
|
||||
+FEWiMgLBQyjaKuqR0puexD8N5QfAx+++7sh27NU2NPFHOKi0gv4omITny0so5gAJ
|
||||
+/AvgyU9p0czelRmO7cjtHD37fBMnVWRSfCAd2D5puadoQwAMe5a+YDQ95yQmpRi6
|
||||
+FjQYXfuSVxdac1nLHXpK/KzRYP2YlTK7e6GbVTCR5QpTrXKv83hZS8KTZN1oSJ3H
|
||||
+Q97Ykyyl6xTUv0nGggtkSWlLY1S+LzV5Bs+Jx7M4Vwb9cKQVtWeKB1tt+caLzhlu
|
||||
+qMW8fELU8cbS2+9W7+wphRx7MUyEihKCMmEyUg5PNIRUxDiVCYgET3fAo38eWqv0
|
||||
+By99ZBfzgaSN9N25zVvZd8/iDpNCvz49675nx/o04hbMDFc7b1JE9D6lsnqZc+Po
|
||||
+voeiQC/AYiyB0cwgEIoJL6VF0crYMOAUdxJlx5pYByrOMxMRkeBhREgtNjZOPMFC
|
||||
+FUvKuC15Mp6Cnkiu0jtoCRW649R0txxBeKl8oFq4WxAkjYitjk72Mmd6ogFr3BU4
|
||||
+6dnEcucOH7d7QQUfdt7iMFSvwjQO02ya4Nk=
|
||||
+-----END CERTIFICATE-----
|
||||
--
|
||||
2.35.3
|
||||
|
31
SOURCES/0035-Add-upgrade-path-8.7-9.0.patch
Normal file
31
SOURCES/0035-Add-upgrade-path-8.7-9.0.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 5e364e0aedacb93340d7a43ce8b34b84eababa3f Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Thu, 19 May 2022 10:18:19 +0200
|
||||
Subject: [PATCH 35/39] Add upgrade path 8.7 -> 9.0
|
||||
|
||||
The next supported upgrade path for IPU 8 -> 9 is 8.7 -> 9.0.
|
||||
As the development and testing are already in progress, enable
|
||||
8.7 system for the upgrade for non-sap systems.
|
||||
|
||||
With that, we expect in future to drop 8.6 -> 9.0, but keeping it
|
||||
for now as we want to be able to test the functionality with 8.6
|
||||
as well in this phase.
|
||||
---
|
||||
repos/system_upgrade/common/files/upgrade_paths.json | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/files/upgrade_paths.json b/repos/system_upgrade/common/files/upgrade_paths.json
|
||||
index 30d25353..224d6563 100644
|
||||
--- a/repos/system_upgrade/common/files/upgrade_paths.json
|
||||
+++ b/repos/system_upgrade/common/files/upgrade_paths.json
|
||||
@@ -3,6 +3,7 @@
|
||||
"7.6": ["8.4", "8.6"],
|
||||
"7.9": ["8.4", "8.6"],
|
||||
"8.6": ["9.0"],
|
||||
+ "8.7": ["9.0"],
|
||||
"7": ["8.4", "8.6"],
|
||||
"8": ["9.0"]
|
||||
},
|
||||
--
|
||||
2.35.3
|
||||
|
255
SOURCES/0036-Handle-7-to-8-IPUs-on-Google-Cloud-897.patch
Normal file
255
SOURCES/0036-Handle-7-to-8-IPUs-on-Google-Cloud-897.patch
Normal file
@ -0,0 +1,255 @@
|
||||
From 2958dffb2807e1cae01fc22754f6da4314ebf7a8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michal=20He=C4=8Dko?= <michal.sk.com@gmail.com>
|
||||
Date: Thu, 26 May 2022 11:30:23 +0200
|
||||
Subject: [PATCH 36/39] Handle 7 to 8 IPUs on Google Cloud (#897)
|
||||
|
||||
* Handle upgrades on google cloud
|
||||
|
||||
* Fix "switch" typo
|
||||
|
||||
Co-authored-by: Irina Gulina <alexxa@users.noreply.github.com>
|
||||
|
||||
Co-authored-by: Michal Hecko <mhecko@redhat.com>
|
||||
Co-authored-by: Michal Reznik (mreznik) <mreznik@redhat.com>
|
||||
Co-authored-by: Irina Gulina <alexxa@users.noreply.github.com>
|
||||
---
|
||||
.../common/actors/cloud/checkrhui/actor.py | 28 +++++++++++++++++--
|
||||
.../libraries/peseventsscanner_repomap.py | 15 +++++-----
|
||||
.../actors/redhatsignedrpmscanner/actor.py | 19 ++++++-------
|
||||
.../libraries/setuptargetrepos_repomap.py | 15 +++++-----
|
||||
repos/system_upgrade/common/libraries/rhui.py | 24 ++++++++++++++++
|
||||
.../common/models/repositoriesmap.py | 9 +++---
|
||||
6 files changed, 78 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py b/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py
|
||||
index df055f94..552cde54 100644
|
||||
--- a/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py
|
||||
@@ -1,14 +1,19 @@
|
||||
+import os
|
||||
+
|
||||
from leapp import reporting
|
||||
from leapp.actors import Actor
|
||||
from leapp.libraries.common import rhsm, rhui
|
||||
from leapp.libraries.common.rpms import has_package
|
||||
+from leapp.libraries.stdlib import api
|
||||
from leapp.models import (
|
||||
+ CopyFile,
|
||||
DNFPluginTask,
|
||||
InstalledRPM,
|
||||
KernelCmdlineArg,
|
||||
RequiredTargetUserspacePackages,
|
||||
RHUIInfo,
|
||||
- RpmTransactionTasks
|
||||
+ RpmTransactionTasks,
|
||||
+ TargetUserSpacePreupgradeTasks
|
||||
)
|
||||
from leapp.reporting import create_report, Report
|
||||
from leapp.tags import FactsPhaseTag, IPUWorkflowTag
|
||||
@@ -28,6 +33,8 @@ class CheckRHUI(Actor):
|
||||
RequiredTargetUserspacePackages,
|
||||
Report, DNFPluginTask,
|
||||
RpmTransactionTasks,
|
||||
+ TargetUserSpacePreupgradeTasks,
|
||||
+ CopyFile,
|
||||
)
|
||||
tags = (FactsPhaseTag, IPUWorkflowTag)
|
||||
|
||||
@@ -44,6 +51,16 @@ class CheckRHUI(Actor):
|
||||
is_azure_sap = True
|
||||
provider = 'azure-sap'
|
||||
info = rhui.RHUI_CLOUD_MAP[upg_path]['azure-sap']
|
||||
+
|
||||
+ if provider.startswith('google'):
|
||||
+ rhui_dir = api.get_common_folder_path('rhui')
|
||||
+ repofile = os.path.join(rhui_dir, provider, 'leapp-{}.repo'.format(provider))
|
||||
+ api.produce(
|
||||
+ TargetUserSpacePreupgradeTasks(
|
||||
+ copy_files=[CopyFile(src=repofile, dst='/etc/yum.repos.d/leapp-google-copied.repo')]
|
||||
+ )
|
||||
+ )
|
||||
+
|
||||
if not rhsm.skip_rhsm():
|
||||
create_report([
|
||||
reporting.Title('Upgrade initiated with RHSM on public cloud with RHUI infrastructure'),
|
||||
@@ -56,7 +73,9 @@ class CheckRHUI(Actor):
|
||||
reporting.Tags([reporting.Tags.PUBLIC_CLOUD]),
|
||||
])
|
||||
return
|
||||
- # AWS RHUI package is provided and signed by RH but the Azure one not
|
||||
+
|
||||
+ # When upgrading with RHUI we cannot switch certs and let RHSM provide us repos for target OS content.
|
||||
+ # Instead, Leapp's provider-specific package containing target OS certs and repos has to be installed.
|
||||
if not has_package(InstalledRPM, info['leapp_pkg']):
|
||||
create_report([
|
||||
reporting.Title('Package "{}" is missing'.format(info['leapp_pkg'])),
|
||||
@@ -71,12 +90,15 @@ class CheckRHUI(Actor):
|
||||
reporting.Remediation(commands=[['yum', 'install', '-y', info['leapp_pkg']]])
|
||||
])
|
||||
return
|
||||
+
|
||||
# there are several "variants" related to the *AWS* provider (aws, aws-sap)
|
||||
if provider.startswith('aws'):
|
||||
# We have to disable Amazon-id plugin in the initramdisk phase as the network
|
||||
# is down at the time
|
||||
self.produce(DNFPluginTask(name='amazon-id', disable_in=['upgrade']))
|
||||
- # if RHEL7 and RHEL8 packages differ, we cannot rely on simply updating them
|
||||
+
|
||||
+ # If source OS and target OS packages differ we must remove the source pkg, and install the target pkg.
|
||||
+ # If the packages do not differ, it is sufficient to upgrade them during the upgrade
|
||||
if info['src_pkg'] != info['target_pkg']:
|
||||
self.produce(RpmTransactionTasks(to_install=[info['target_pkg']]))
|
||||
self.produce(RpmTransactionTasks(to_remove=[info['src_pkg']]))
|
||||
diff --git a/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py b/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py
|
||||
index 22892e4b..567e8475 100644
|
||||
--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py
|
||||
+++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py
|
||||
@@ -50,13 +50,14 @@ class RepoMapDataHandler(object):
|
||||
# will be used instead
|
||||
self.prio_channel = get_target_product_channel(default=None)
|
||||
|
||||
- # Cloud provider might have multiple variants: aws: (aws, aws-sap-es4), azure: (azure, azure-sap)
|
||||
- if cloud_provider.startswith('aws'):
|
||||
- self.cloud_provider = 'aws'
|
||||
- elif cloud_provider.startswith('azure'):
|
||||
- self.cloud_provider = 'azure'
|
||||
- else:
|
||||
- self.cloud_provider = cloud_provider
|
||||
+ self.cloud_provider = cloud_provider
|
||||
+
|
||||
+ # Cloud provider might have multiple variants, e.g, aws: (aws, aws-sap-es4) - normalize it
|
||||
+ cloud_providers = ('aws', 'azure', 'google')
|
||||
+ for provider in cloud_providers:
|
||||
+ if cloud_provider.startswith(provider):
|
||||
+ self.cloud_provider = provider
|
||||
+ break
|
||||
|
||||
def set_default_channels(self, default_channels):
|
||||
"""
|
||||
diff --git a/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py b/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py
|
||||
index 01f6df38..ce6d9985 100644
|
||||
--- a/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/redhatsignedrpmscanner/actor.py
|
||||
@@ -54,15 +54,14 @@ class RedHatSignedRpmScanner(Actor):
|
||||
"""Whitelist the katello package."""
|
||||
return pkg.name.startswith('katello-ca-consumer')
|
||||
|
||||
- def is_azure_pkg(pkg):
|
||||
- """Whitelist Azure config package."""
|
||||
- upg_path = rhui.get_upg_path()
|
||||
-
|
||||
- src_pkg = rhui.RHUI_CLOUD_MAP[upg_path].get('azure', {}).get('src_pkg')
|
||||
- src_pkg_sap = rhui.RHUI_CLOUD_MAP[upg_path].get('azure-sap', {}).get('src_pkg')
|
||||
- target_pkg = rhui.RHUI_CLOUD_MAP[upg_path].get('azure', {}).get('target_pkg')
|
||||
- target_pkg_sap = rhui.RHUI_CLOUD_MAP[upg_path].get('azure-sap', {}).get('target_pkg')
|
||||
- return pkg.name in [src_pkg, src_pkg_sap, target_pkg, target_pkg_sap]
|
||||
+ upg_path = rhui.get_upg_path()
|
||||
+ whitelisted_cloud_flavours = ('azure', 'azure-sap', 'google', 'google-sap')
|
||||
+ whitelisted_cloud_pkgs = {
|
||||
+ rhui.RHUI_CLOUD_MAP[upg_path].get(flavour, {}).get('src_pkg') for flavour in whitelisted_cloud_flavours
|
||||
+ }
|
||||
+ whitelisted_cloud_pkgs.update(
|
||||
+ rhui.RHUI_CLOUD_MAP[upg_path].get(flavour, {}).get('target_pkg') for flavour in whitelisted_cloud_flavours
|
||||
+ )
|
||||
|
||||
for rpm_pkgs in self.consume(InstalledRPM):
|
||||
for pkg in rpm_pkgs.items:
|
||||
@@ -71,7 +70,7 @@ class RedHatSignedRpmScanner(Actor):
|
||||
has_rhsig(pkg),
|
||||
is_gpg_pubkey(pkg),
|
||||
has_katello_prefix(pkg),
|
||||
- is_azure_pkg(pkg),
|
||||
+ pkg.name in whitelisted_cloud_pkgs,
|
||||
]
|
||||
):
|
||||
signed_pkgs.items.append(pkg)
|
||||
diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py
|
||||
index 22892e4b..567e8475 100644
|
||||
--- a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py
|
||||
+++ b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py
|
||||
@@ -50,13 +50,14 @@ class RepoMapDataHandler(object):
|
||||
# will be used instead
|
||||
self.prio_channel = get_target_product_channel(default=None)
|
||||
|
||||
- # Cloud provider might have multiple variants: aws: (aws, aws-sap-es4), azure: (azure, azure-sap)
|
||||
- if cloud_provider.startswith('aws'):
|
||||
- self.cloud_provider = 'aws'
|
||||
- elif cloud_provider.startswith('azure'):
|
||||
- self.cloud_provider = 'azure'
|
||||
- else:
|
||||
- self.cloud_provider = cloud_provider
|
||||
+ self.cloud_provider = cloud_provider
|
||||
+
|
||||
+ # Cloud provider might have multiple variants, e.g, aws: (aws, aws-sap-es4) - normalize it
|
||||
+ cloud_providers = ('aws', 'azure', 'google')
|
||||
+ for provider in cloud_providers:
|
||||
+ if cloud_provider.startswith(provider):
|
||||
+ self.cloud_provider = provider
|
||||
+ break
|
||||
|
||||
def set_default_channels(self, default_channels):
|
||||
"""
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index 3d355ff6..194aad98 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -78,6 +78,30 @@ RHUI_CLOUD_MAP = {
|
||||
('leapp-azure-sap.repo', YUM_REPOS_PATH)
|
||||
],
|
||||
},
|
||||
+ 'google': {
|
||||
+ 'src_pkg': 'google-rhui-client-rhel7',
|
||||
+ 'target_pkg': 'google-rhui-client-rhel8',
|
||||
+ 'leapp_pkg': 'leapp-rhui-google',
|
||||
+ 'leapp_pkg_repo': 'leapp-google.repo',
|
||||
+ 'files_map': [
|
||||
+ ('content.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
+ ('ca.crt', RHUI_PKI_DIR),
|
||||
+ ('key.pem', RHUI_PKI_DIR),
|
||||
+ ('leapp-google.repo', YUM_REPOS_PATH)
|
||||
+ ],
|
||||
+ },
|
||||
+ 'google-sap': {
|
||||
+ 'src_pkg': 'google-rhui-client-rhel79-sap',
|
||||
+ 'target_pkg': 'google-rhui-client-rhel8-sap',
|
||||
+ 'leapp_pkg': 'leapp-rhui-google-sap',
|
||||
+ 'leapp_pkg_repo': 'leapp-google-sap.repo',
|
||||
+ 'files_map': [
|
||||
+ ('content.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
+ ('ca.crt', RHUI_PKI_DIR),
|
||||
+ ('key.pem', RHUI_PKI_DIR),
|
||||
+ ('leapp-google-sap.repo', YUM_REPOS_PATH)
|
||||
+ ],
|
||||
+ },
|
||||
},
|
||||
'8to9': {
|
||||
'aws': {
|
||||
diff --git a/repos/system_upgrade/common/models/repositoriesmap.py b/repos/system_upgrade/common/models/repositoriesmap.py
|
||||
index c1873333..824c4557 100644
|
||||
--- a/repos/system_upgrade/common/models/repositoriesmap.py
|
||||
+++ b/repos/system_upgrade/common/models/repositoriesmap.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-from leapp.models import Model, fields
|
||||
+from leapp.models import fields, Model
|
||||
from leapp.topics import TransactionTopic
|
||||
|
||||
|
||||
@@ -71,12 +71,11 @@ class PESIDRepositoryEntry(Model):
|
||||
purposes. The other channels indicate premium repositories.
|
||||
"""
|
||||
|
||||
- rhui = fields.StringEnum(['', 'aws', 'azure'])
|
||||
+ rhui = fields.StringEnum(['', 'aws', 'azure', 'google'])
|
||||
"""
|
||||
- Indicate whether the repository is deliver for RHUI and which one.
|
||||
+ Specifies what cloud provider (RHUI) is the repository specific to.
|
||||
|
||||
- For non-rhui systems: empty string
|
||||
- For AWS or Azure: 'aws' / 'azure'
|
||||
+ Empty string denotes that the repository is not specific to any cloud provider.
|
||||
"""
|
||||
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,92 @@
|
||||
From 184dc7be352e5f23d5f85fadb681ddc839dfffbe Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Tue, 10 May 2022 14:41:37 +0200
|
||||
Subject: [PATCH 37/39] CheckNFS actor should respect nfsd filesystem
|
||||
|
||||
Check filesystem type for full match with 'nfs'
|
||||
otherwise false positive fires like in 'nfsd' may
|
||||
occur.
|
||||
|
||||
OAMG-6355
|
||||
---
|
||||
.../system_upgrade/common/actors/checknfs/actor.py | 13 ++++++++-----
|
||||
.../common/actors/checknfs/tests/test_checknfs.py | 11 +++++++++--
|
||||
2 files changed, 17 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/checknfs/actor.py b/repos/system_upgrade/common/actors/checknfs/actor.py
|
||||
index 2461a83a..cfef3827 100644
|
||||
--- a/repos/system_upgrade/common/actors/checknfs/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/checknfs/actor.py
|
||||
@@ -1,7 +1,7 @@
|
||||
+from leapp import reporting
|
||||
from leapp.actors import Actor
|
||||
from leapp.models import StorageInfo
|
||||
-from leapp.reporting import Report, create_report
|
||||
-from leapp import reporting
|
||||
+from leapp.reporting import create_report, Report
|
||||
from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
|
||||
|
||||
|
||||
@@ -22,24 +22,27 @@ class CheckNfs(Actor):
|
||||
"We have found NFS usage at the following locations:\n"
|
||||
nfs_found = False
|
||||
|
||||
+ def _is_nfs(a_type):
|
||||
+ return a_type.startswith('nfs') and a_type != 'nfsd'
|
||||
+
|
||||
for storage in self.consume(StorageInfo):
|
||||
# Check fstab
|
||||
for fstab in storage.fstab:
|
||||
- if fstab.fs_vfstype.startswith("nfs"):
|
||||
+ if _is_nfs(fstab.fs_vfstype):
|
||||
nfs_found = True
|
||||
details += "- One or more NFS entries in /etc/fstab\n"
|
||||
break
|
||||
|
||||
# Check mount
|
||||
for mount in storage.mount:
|
||||
- if mount.tp.startswith("nfs"):
|
||||
+ if _is_nfs(mount.tp):
|
||||
nfs_found = True
|
||||
details += "- Currently mounted NFS shares\n"
|
||||
break
|
||||
|
||||
# Check systemd-mount
|
||||
for systemdmount in storage.systemdmount:
|
||||
- if systemdmount.fs_type.startswith("nfs"):
|
||||
+ if _is_nfs(systemdmount.fs_type):
|
||||
nfs_found = True
|
||||
details += "- One or more configured NFS mounts in systemd-mount\n"
|
||||
break
|
||||
diff --git a/repos/system_upgrade/common/actors/checknfs/tests/test_checknfs.py b/repos/system_upgrade/common/actors/checknfs/tests/test_checknfs.py
|
||||
index 4577de46..0d48c491 100644
|
||||
--- a/repos/system_upgrade/common/actors/checknfs/tests/test_checknfs.py
|
||||
+++ b/repos/system_upgrade/common/actors/checknfs/tests/test_checknfs.py
|
||||
@@ -1,8 +1,8 @@
|
||||
import pytest
|
||||
|
||||
-from leapp.snactor.fixture import current_actor_context
|
||||
-from leapp.models import StorageInfo, SystemdMountEntry, FstabEntry, MountEntry
|
||||
+from leapp.models import FstabEntry, MountEntry, StorageInfo, SystemdMountEntry
|
||||
from leapp.reporting import Report
|
||||
+from leapp.snactor.fixture import current_actor_context
|
||||
|
||||
|
||||
@pytest.mark.parametrize('nfs_fstype', ('nfs', 'nfs4'))
|
||||
@@ -50,6 +50,13 @@ def test_actor_without_fstab_entry(current_actor_context):
|
||||
assert not current_actor_context.consume(Report)
|
||||
|
||||
|
||||
+def test_actor_with_nfsd(current_actor_context):
|
||||
+ with_nfsd = [MountEntry(name="nfsd", mount="/proc/fs/nfsd", tp="nfsd", options="rw,relatime")]
|
||||
+ current_actor_context.feed(StorageInfo(mount=with_nfsd))
|
||||
+ current_actor_context.run()
|
||||
+ assert not current_actor_context.consume(Report)
|
||||
+
|
||||
+
|
||||
@pytest.mark.parametrize('nfs_fstype', ('nfs', 'nfs4'))
|
||||
def test_actor_with_mount_share(current_actor_context, nfs_fstype):
|
||||
with_mount_share = [MountEntry(name="nfs", mount="/mnt/data", tp=nfs_fstype,
|
||||
--
|
||||
2.35.3
|
||||
|
47
SOURCES/0038-Remove-temporary-leapp-directory-in-root.patch
Normal file
47
SOURCES/0038-Remove-temporary-leapp-directory-in-root.patch
Normal file
@ -0,0 +1,47 @@
|
||||
From 1cc680adf1d63028c0b5f79544b6bd9e501b249e Mon Sep 17 00:00:00 2001
|
||||
From: Michal Reznik <mreznik@redhat.com>
|
||||
Date: Fri, 13 May 2022 12:00:15 +0200
|
||||
Subject: [PATCH 38/39] Remove temporary leapp directory in /root
|
||||
|
||||
Leaving the directory behind will cause issues during upgrades to
|
||||
another major verison. E.g in case of RHEL 7 > RHEL 8 > RHEL 9
|
||||
upgrade.
|
||||
---
|
||||
.../preparepythonworkround/libraries/workaround.py | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/preparepythonworkround/libraries/workaround.py b/repos/system_upgrade/common/actors/preparepythonworkround/libraries/workaround.py
|
||||
index f61c78cf..de3079ee 100644
|
||||
--- a/repos/system_upgrade/common/actors/preparepythonworkround/libraries/workaround.py
|
||||
+++ b/repos/system_upgrade/common/actors/preparepythonworkround/libraries/workaround.py
|
||||
@@ -1,7 +1,9 @@
|
||||
import os
|
||||
+import shutil
|
||||
import sys
|
||||
|
||||
from leapp.libraries.common.utils import makedirs
|
||||
+from leapp.libraries.stdlib import api
|
||||
|
||||
LEAPP_HOME = '/root/tmp_leapp_py3'
|
||||
|
||||
@@ -18,10 +20,15 @@ def _get_orig_leapp_path():
|
||||
|
||||
def apply_python3_workaround():
|
||||
py3_leapp = os.path.join(LEAPP_HOME, 'leapp3')
|
||||
+ if os.path.exists(LEAPP_HOME):
|
||||
+ try:
|
||||
+ shutil.rmtree(LEAPP_HOME)
|
||||
+ except OSError as e:
|
||||
+ api.current_logger().error('Could not remove {} directory: {}'.format(LEAPP_HOME, str(e)))
|
||||
+
|
||||
makedirs(LEAPP_HOME)
|
||||
leapp_lib_symlink_path = os.path.join(LEAPP_HOME, 'leapp')
|
||||
- if not os.path.exists(leapp_lib_symlink_path):
|
||||
- os.symlink(_get_orig_leapp_path(), leapp_lib_symlink_path)
|
||||
+ os.symlink(_get_orig_leapp_path(), leapp_lib_symlink_path)
|
||||
with open(py3_leapp, 'w') as f:
|
||||
f_content = [
|
||||
'#!/usr/bin/python3',
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,90 @@
|
||||
From ae40cb78af75ff0901280b624e6d633a55023933 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Reznik <mreznik@redhat.com>
|
||||
Date: Thu, 26 May 2022 13:02:31 +0200
|
||||
Subject: [PATCH 39/39] Improve Leapp resume service cleanup + logging
|
||||
|
||||
---
|
||||
.../actors/createresumeservice/actor.py | 15 ++++++++---
|
||||
.../actors/removeresumeservice/actor.py | 25 +++++++++++--------
|
||||
2 files changed, 26 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/createresumeservice/actor.py b/repos/system_upgrade/common/actors/createresumeservice/actor.py
|
||||
index 3019c611..eae4aa8f 100644
|
||||
--- a/repos/system_upgrade/common/actors/createresumeservice/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/createresumeservice/actor.py
|
||||
@@ -1,11 +1,12 @@
|
||||
-import shutil
|
||||
import os
|
||||
+import shutil
|
||||
|
||||
-from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp import reporting
|
||||
from leapp.actors import Actor
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.libraries.stdlib import api
|
||||
+from leapp.reporting import create_report, Report
|
||||
from leapp.tags import FinalizationPhaseTag, IPUWorkflowTag
|
||||
-from leapp.reporting import Report, create_report
|
||||
-from leapp import reporting
|
||||
|
||||
|
||||
class CreateSystemdResumeService(Actor):
|
||||
@@ -36,6 +37,12 @@ class CreateSystemdResumeService(Actor):
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
+ if os.path.exists(symlink_path):
|
||||
+ api.current_logger().debug(
|
||||
+ 'Symlink {} already exists (from previous upgrade?). Removing... '.format(symlink_path)
|
||||
+ )
|
||||
+ os.unlink(symlink_path)
|
||||
+
|
||||
try:
|
||||
os.symlink(service_path, symlink_path)
|
||||
except OSError as e:
|
||||
diff --git a/repos/system_upgrade/common/actors/removeresumeservice/actor.py b/repos/system_upgrade/common/actors/removeresumeservice/actor.py
|
||||
index c69816d5..07e96eae 100644
|
||||
--- a/repos/system_upgrade/common/actors/removeresumeservice/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/removeresumeservice/actor.py
|
||||
@@ -1,10 +1,10 @@
|
||||
-import os
|
||||
import errno
|
||||
+import os
|
||||
|
||||
-from leapp.actors import Actor
|
||||
-from leapp.libraries.stdlib import run
|
||||
-from leapp.reporting import Report, create_report
|
||||
from leapp import reporting
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.libraries.stdlib import api, run
|
||||
+from leapp.reporting import create_report, Report
|
||||
from leapp.tags import FirstBootPhaseTag, IPUWorkflowTag
|
||||
|
||||
|
||||
@@ -24,12 +24,17 @@ class RemoveSystemdResumeService(Actor):
|
||||
service_name = 'leapp_resume.service'
|
||||
if os.path.isfile('/etc/systemd/system/{}'.format(service_name)):
|
||||
run(['systemctl', 'disable', service_name])
|
||||
- try:
|
||||
- os.unlink('/etc/systemd/system/{}'.format(service_name))
|
||||
- os.unlink('/etc/systemd/system/default.target.wants/{}'.format(service_name))
|
||||
- except OSError as e:
|
||||
- if e.errno != errno.ENOENT:
|
||||
- raise
|
||||
+ paths_to_unlink = [
|
||||
+ '/etc/systemd/system/{}'.format(service_name),
|
||||
+ '/etc/systemd/system/default.target.wants/{}'.format(service_name),
|
||||
+ ]
|
||||
+ for path in paths_to_unlink:
|
||||
+ try:
|
||||
+ os.unlink(path)
|
||||
+ except OSError as e:
|
||||
+ api.current_logger().debug('Failed removing {}: {}'.format(path, str(e)))
|
||||
+ if e.errno != errno.ENOENT:
|
||||
+ raise
|
||||
|
||||
create_report([
|
||||
reporting.Title('"{}" service deleted'.format(service_name)),
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,125 @@
|
||||
From e80ee7184cd0d01d81418e5f925d1460fc51f0a6 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Date: Wed, 20 Apr 2022 14:01:43 -0500
|
||||
Subject: [PATCH 40/47] Revert "Move "multipathconfread" into common
|
||||
repository"
|
||||
|
||||
This reverts commit 1c171ec3a5f9260a3c6f84a9b15cad78a875ac61.
|
||||
|
||||
the multipath actors need to do different things in the el8toel9 upgrade
|
||||
than in the el7toel8 upgrade, so leave the old actors in the el7toel8
|
||||
repo. After reverting, the code was relinted.
|
||||
---
|
||||
.../{common => el7toel8}/actors/multipathconfread/actor.py | 0
|
||||
.../actors/multipathconfread/libraries/multipathconfread.py | 0
|
||||
.../actors/multipathconfread/tests/files/all_the_things.conf | 0
|
||||
.../actors/multipathconfread/tests/files/already_updated.conf | 0
|
||||
.../actors/multipathconfread/tests/files/conf.d/all_devs.conf | 0
|
||||
.../actors/multipathconfread/tests/files/conf.d/empty.conf | 0
|
||||
.../actors/multipathconfread/tests/files/default_rhel7.conf | 0
|
||||
.../actors/multipathconfread/tests/files/default_rhel8.conf | 0
|
||||
.../actors/multipathconfread/tests/files/just_all_devs.conf | 0
|
||||
.../actors/multipathconfread/tests/files/just_checker.conf | 0
|
||||
.../actors/multipathconfread/tests/files/just_detect.conf | 0
|
||||
.../actors/multipathconfread/tests/files/just_exists.conf | 0
|
||||
.../actors/multipathconfread/tests/files/just_reassign.conf | 0
|
||||
.../actors/multipathconfread/tests/files/ugly1.conf | 0
|
||||
.../actors/multipathconfread/tests/files/ugly2.conf | 0
|
||||
.../multipathconfread/tests/test_library_multipathconfread.py | 0
|
||||
.../{common => el7toel8}/libraries/multipathutil.py | 0
|
||||
.../{common => el7toel8}/models/multipathconffacts.py | 0
|
||||
18 files changed, 0 insertions(+), 0 deletions(-)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/actor.py (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/libraries/multipathconfread.py (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/all_the_things.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/already_updated.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/conf.d/all_devs.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/conf.d/empty.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/default_rhel7.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/default_rhel8.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/just_all_devs.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/just_checker.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/just_detect.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/just_exists.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/just_reassign.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/ugly1.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/files/ugly2.conf (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/actors/multipathconfread/tests/test_library_multipathconfread.py (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/libraries/multipathutil.py (100%)
|
||||
rename repos/system_upgrade/{common => el7toel8}/models/multipathconffacts.py (100%)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/actor.py b/repos/system_upgrade/el7toel8/actors/multipathconfread/actor.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/actor.py
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/actor.py
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/libraries/multipathconfread.py b/repos/system_upgrade/el7toel8/actors/multipathconfread/libraries/multipathconfread.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/libraries/multipathconfread.py
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/libraries/multipathconfread.py
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/all_the_things.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/all_the_things.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/all_the_things.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/all_the_things.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/already_updated.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/already_updated.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/already_updated.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/already_updated.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/conf.d/all_devs.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/conf.d/all_devs.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/conf.d/all_devs.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/conf.d/all_devs.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/conf.d/empty.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/conf.d/empty.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/conf.d/empty.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/conf.d/empty.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/default_rhel7.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/default_rhel7.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/default_rhel7.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/default_rhel7.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/default_rhel8.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/default_rhel8.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/default_rhel8.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/default_rhel8.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/just_all_devs.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_all_devs.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/just_all_devs.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_all_devs.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/just_checker.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_checker.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/just_checker.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_checker.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/just_detect.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_detect.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/just_detect.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_detect.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/just_exists.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_exists.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/just_exists.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_exists.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/just_reassign.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_reassign.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/just_reassign.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/just_reassign.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/ugly1.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/ugly1.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/ugly1.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/ugly1.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/files/ugly2.conf b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/ugly2.conf
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/files/ugly2.conf
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/files/ugly2.conf
|
||||
diff --git a/repos/system_upgrade/common/actors/multipathconfread/tests/test_library_multipathconfread.py b/repos/system_upgrade/el7toel8/actors/multipathconfread/tests/test_library_multipathconfread.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/actors/multipathconfread/tests/test_library_multipathconfread.py
|
||||
rename to repos/system_upgrade/el7toel8/actors/multipathconfread/tests/test_library_multipathconfread.py
|
||||
diff --git a/repos/system_upgrade/common/libraries/multipathutil.py b/repos/system_upgrade/el7toel8/libraries/multipathutil.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/libraries/multipathutil.py
|
||||
rename to repos/system_upgrade/el7toel8/libraries/multipathutil.py
|
||||
diff --git a/repos/system_upgrade/common/models/multipathconffacts.py b/repos/system_upgrade/el7toel8/models/multipathconffacts.py
|
||||
similarity index 100%
|
||||
rename from repos/system_upgrade/common/models/multipathconffacts.py
|
||||
rename to repos/system_upgrade/el7toel8/models/multipathconffacts.py
|
||||
--
|
||||
2.35.3
|
||||
|
14955
SOURCES/0041-add-multipathconf-read-check-update-el8toel9-actors.patch
Normal file
14955
SOURCES/0041-add-multipathconf-read-check-update-el8toel9-actors.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,107 @@
|
||||
From efa3becc424438b3904013310d6a8b7ec675ae6a Mon Sep 17 00:00:00 2001
|
||||
From: Niels De Graef <ndegraef@redhat.com>
|
||||
Date: Tue, 12 Apr 2022 13:08:31 +0200
|
||||
Subject: [PATCH 42/47] el8toel9: Warn about the NVIDIA driver before upgrade
|
||||
|
||||
---
|
||||
.../actors/nvidiaproprietarydriver/actor.py | 47 +++++++++++++++++++
|
||||
.../tests/test_nvidiadriver.py | 33 +++++++++++++
|
||||
2 files changed, 80 insertions(+)
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/actor.py
|
||||
create mode 100644 repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/tests/test_nvidiadriver.py
|
||||
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/actor.py b/repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/actor.py
|
||||
new file mode 100644
|
||||
index 00000000..7397f3e2
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/actor.py
|
||||
@@ -0,0 +1,47 @@
|
||||
+from leapp import reporting
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.models import ActiveKernelModulesFacts
|
||||
+from leapp.reporting import create_report, Report
|
||||
+from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
|
||||
+
|
||||
+
|
||||
+class CheckNvidiaProprietaryDriver(Actor):
|
||||
+ """
|
||||
+ Check if NVIDIA proprietary driver is in use. If yes, inhibit the upgrade process.
|
||||
+
|
||||
+ Updating bare metal (or VM) with the binary NVIDIA driver will end up with a blacklisted nouveau.
|
||||
+
|
||||
+ See also https://bugzilla.redhat.com/show_bug.cgi?id=2057026
|
||||
+ """
|
||||
+
|
||||
+ name = 'check_nvidia_proprietary_driver'
|
||||
+ consumes = (ActiveKernelModulesFacts,)
|
||||
+ produces = (Report,)
|
||||
+ tags = (ChecksPhaseTag, IPUWorkflowTag)
|
||||
+
|
||||
+ def process(self):
|
||||
+
|
||||
+ for fact in self.consume(ActiveKernelModulesFacts):
|
||||
+ nvidia_driver_loaded = any('nvidia' in active_mod.filename for active_mod in fact.kernel_modules)
|
||||
+ if nvidia_driver_loaded:
|
||||
+ create_report([
|
||||
+ reporting.Title('Proprietary NVIDIA driver detected'),
|
||||
+ reporting.Summary(
|
||||
+ 'Leapp has detected that the NVIDIA proprietary driver has been loaded, which also means '
|
||||
+ 'the nouveau driver is blacklisted. If you upgrade now, you will end up without a '
|
||||
+ 'graphical session, as the newer kernel won\'t be able to load the NVIDIA driver module '
|
||||
+ 'and nouveau will still be blacklisted.'
|
||||
+ '\n\n'
|
||||
+ 'Please uninstall the NVIDIA graphics driver before upgrading to make sure you have a '
|
||||
+ 'graphical session after upgrading.'
|
||||
+ ),
|
||||
+ reporting.ExternalLink(
|
||||
+ title='How to uninstall proprietary NVIDIA graphics driver and switch back to Red Hat '
|
||||
+ 'shipped nouveau graphics driver?',
|
||||
+ url='https://access.redhat.com/solutions/421683'
|
||||
+ ),
|
||||
+ reporting.Severity(reporting.Severity.HIGH),
|
||||
+ reporting.Flags([reporting.Flags.INHIBITOR]),
|
||||
+ reporting.Tags([reporting.Tags.KERNEL, reporting.Tags.DRIVERS]),
|
||||
+ ])
|
||||
+ break
|
||||
diff --git a/repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/tests/test_nvidiadriver.py b/repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/tests/test_nvidiadriver.py
|
||||
new file mode 100644
|
||||
index 00000000..3cd299b0
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el8toel9/actors/nvidiaproprietarydriver/tests/test_nvidiadriver.py
|
||||
@@ -0,0 +1,33 @@
|
||||
+from leapp.models import ActiveKernelModule, ActiveKernelModulesFacts
|
||||
+from leapp.reporting import Report
|
||||
+
|
||||
+
|
||||
+def test_actor_with_nvidia_driver(current_actor_context):
|
||||
+ with_nvidia = [
|
||||
+ ActiveKernelModule(filename='nvidia', parameters=[]),
|
||||
+ ActiveKernelModule(filename='kvm', parameters=[])]
|
||||
+
|
||||
+ current_actor_context.feed(ActiveKernelModulesFacts(kernel_modules=with_nvidia))
|
||||
+ current_actor_context.run()
|
||||
+ report_fields = current_actor_context.consume(Report)[0].report
|
||||
+ assert 'inhibitor' in report_fields['flags']
|
||||
+
|
||||
+
|
||||
+def test_actor_without_nvidia_driver(current_actor_context):
|
||||
+ without_nvidia = [
|
||||
+ ActiveKernelModule(filename='i915', parameters=[]),
|
||||
+ ActiveKernelModule(filename='kvm', parameters=[])]
|
||||
+
|
||||
+ current_actor_context.feed(ActiveKernelModulesFacts(kernel_modules=without_nvidia))
|
||||
+ current_actor_context.run()
|
||||
+ assert not current_actor_context.consume(Report)
|
||||
+
|
||||
+
|
||||
+def test_actor_with_nouveau_driver(current_actor_context):
|
||||
+ without_nvidia = [
|
||||
+ ActiveKernelModule(filename='nouveau', parameters=[]),
|
||||
+ ActiveKernelModule(filename='kvm', parameters=[])]
|
||||
+
|
||||
+ current_actor_context.feed(ActiveKernelModulesFacts(kernel_modules=without_nvidia))
|
||||
+ current_actor_context.run()
|
||||
+ assert not current_actor_context.consume(Report)
|
||||
--
|
||||
2.35.3
|
||||
|
26
SOURCES/0043-Fix-unnecessary-dunder-call-violation.patch
Normal file
26
SOURCES/0043-Fix-unnecessary-dunder-call-violation.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 191865db1725dcdf17d8d2d7c5a75d3d1f7b7d80 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Tue, 7 Jun 2022 17:17:02 +0200
|
||||
Subject: [PATCH 43/47] Fix unnecessary-dunder-call violation
|
||||
|
||||
That's an interesting linter check, let's keep it.
|
||||
---
|
||||
.../actors/peseventsscanner/libraries/peseventsscanner.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner.py b/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner.py
|
||||
index 1be2caa1..03d1bde5 100644
|
||||
--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner.py
|
||||
+++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner.py
|
||||
@@ -470,7 +470,7 @@ def is_event_relevant(event, installed_pkgs, tasks):
|
||||
def add_packages_to_tasks(tasks, packages, task_type):
|
||||
if packages:
|
||||
api.current_logger().debug('{v:7} {p}'.format(
|
||||
- v=task_type.name, p=', '.join([p.__repr__() for p in packages])))
|
||||
+ v=task_type.name, p=', '.join([repr(p) for p in packages])))
|
||||
for p in packages:
|
||||
tasks[task_type][(p.name, p.modulestream)] = p.repository
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,438 @@
|
||||
From ef458450bcaf38ee3427eb21a0fd11fef5144fe4 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Mon, 6 Jun 2022 16:16:38 +0200
|
||||
Subject: [PATCH 44/47] Massive workflow refactor: split into reusable parts
|
||||
|
||||
1 separate workflow has been introduced - reuse-copr-build;
|
||||
2 workflows have been reused from leapp project - reuse-tests-7to8
|
||||
and reuse-tests-8to9.
|
||||
This should make adding new tests a bit easier.
|
||||
Status reporting has been enabled as well.
|
||||
e2e execution on aws also added as separate test run.
|
||||
|
||||
OAMG-6980
|
||||
---
|
||||
.github/workflows/reuse-copr-build.yml | 157 ++++++++++++++++
|
||||
.github/workflows/tmt-tests.yml | 241 ++++++-------------------
|
||||
2 files changed, 212 insertions(+), 186 deletions(-)
|
||||
create mode 100644 .github/workflows/reuse-copr-build.yml
|
||||
|
||||
diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml
|
||||
new file mode 100644
|
||||
index 00000000..fd59b073
|
||||
--- /dev/null
|
||||
+++ b/.github/workflows/reuse-copr-build.yml
|
||||
@@ -0,0 +1,157 @@
|
||||
+name: reuse-copr-build@TF
|
||||
+
|
||||
+on:
|
||||
+ workflow_call:
|
||||
+ secrets:
|
||||
+ FEDORA_COPR_LOGIN:
|
||||
+ required: true
|
||||
+ FEDORA_COPR_TOKEN:
|
||||
+ required: true
|
||||
+ outputs:
|
||||
+ artifacts:
|
||||
+ description: "A string with test artifacts to install in tft test env"
|
||||
+ value: ${{ jobs.reusable_workflow_copr_build_job.outputs.artifacts }}
|
||||
+
|
||||
+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
|
||||
+ outputs:
|
||||
+ artifacts: ${{ steps.gen_artifacts.outputs.artifacts }}
|
||||
+ if: |
|
||||
+ github.event.issue.pull_request
|
||||
+ && startsWith(github.event.comment.body, '/rerun')
|
||||
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
|
||||
+ steps:
|
||||
+ - name: Install necessary deps
|
||||
+ id: deps_install
|
||||
+ run: sudo apt-get install -y libkrb5-dev
|
||||
+
|
||||
+ - name: Get pull request number
|
||||
+ id: pr_nr
|
||||
+ run: |
|
||||
+ PR_URL="${{ github.event.comment.issue_url }}"
|
||||
+ echo "::set-output name=pr_nr::${PR_URL##*/}"
|
||||
+
|
||||
+ - name: Checkout
|
||||
+ # 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
|
||||
+ with:
|
||||
+ ref: "refs/pull/${{ steps.pr_nr.outputs.pr_nr }}/head"
|
||||
+
|
||||
+ - name: Get ref and sha
|
||||
+ id: ref_sha
|
||||
+ run: |
|
||||
+ echo "::set-output name=sha::$(git rev-parse --short HEAD)"
|
||||
+ echo "::set-output name=ref::refs/pull/${{ steps.pr_nr.outputs.pr_nr }}/head"
|
||||
+
|
||||
+ - name: Trigger copr build
|
||||
+ id: copr_build
|
||||
+ env:
|
||||
+ COPR_CONFIG: "copr_fedora.conf"
|
||||
+ COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64"
|
||||
+ run: |
|
||||
+ cat << EOF > $COPR_CONFIG
|
||||
+ [copr-cli]
|
||||
+ login = ${{ secrets.FEDORA_COPR_LOGIN }}
|
||||
+ username = @oamg
|
||||
+ token = ${{ secrets.FEDORA_COPR_TOKEN }}
|
||||
+ copr_url = https://copr.fedorainfracloud.org
|
||||
+ # expiration date: 2030-07-04
|
||||
+ EOF
|
||||
+
|
||||
+ pip install copr-cli
|
||||
+ PR=${{ steps.pr_nr.outputs.pr_nr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log
|
||||
+
|
||||
+ COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log)
|
||||
+ echo "::set-output name=copr_url::${COPR_URL}"
|
||||
+ echo "::set-output name=copr_id::${COPR_URL##*/}"
|
||||
+
|
||||
+ - name: Add comment with copr build url
|
||||
+ # TODO: Create comment when copr build fails.
|
||||
+ id: link_copr
|
||||
+ uses: actions/github-script@v4
|
||||
+ with:
|
||||
+ script: |
|
||||
+ github.issues.createComment({
|
||||
+ issue_number: context.issue.number,
|
||||
+ owner: context.repo.owner,
|
||||
+ repo: context.repo.repo,
|
||||
+ body: 'Copr build succeeded: ${{ steps.copr_build.outputs.copr_url }}'
|
||||
+ })
|
||||
+
|
||||
+ - name: Get dependent leapp pr number from rerun comment
|
||||
+ uses: actions-ecosystem/action-regex-match@v2
|
||||
+ id: leapp_pr_regex_match
|
||||
+ with:
|
||||
+ text: ${{ github.event.comment.body }}
|
||||
+ regex: '^/rerun\s+([0-9]+)\s*$'
|
||||
+
|
||||
+ - name: If leapp_pr was specified in the comment - trigger copr build
|
||||
+ # TODO: XXX FIXME This should schedule copr build for leapp but for now it will be just setting an env var
|
||||
+ id: leapp_pr
|
||||
+ if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
+ run: |
|
||||
+ echo "::set-output name=leapp_pr::${{ steps.leapp_pr_regex_match.outputs.group1 }}"
|
||||
+
|
||||
+ - name: Checkout leapp
|
||||
+ id: checkout_leapp
|
||||
+ if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
+ uses: actions/checkout@v2
|
||||
+ with:
|
||||
+ repository: "oamg/leapp"
|
||||
+ ref: "refs/pull/${{ steps.leapp_pr.outputs.leapp_pr }}/head"
|
||||
+
|
||||
+ - name: Get ref and sha for leapp
|
||||
+ id: ref_sha_leapp
|
||||
+ if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
+ run: |
|
||||
+ echo "::set-output name=sha::$(git rev-parse --short HEAD)"
|
||||
+ echo "::set-output name=ref::refs/pull/${{ steps.leapp_pr.outputs.leapp_pr }}/head"
|
||||
+
|
||||
+ - name: Trigger copr build for leapp
|
||||
+ id: copr_build_leapp
|
||||
+ if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
+ env:
|
||||
+ COPR_CONFIG: "copr_fedora.conf"
|
||||
+ COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64"
|
||||
+ run: |
|
||||
+ cat << EOF > $COPR_CONFIG
|
||||
+ [copr-cli]
|
||||
+ login = ${{ secrets.FEDORA_COPR_LOGIN }}
|
||||
+ username = @oamg
|
||||
+ token = ${{ secrets.FEDORA_COPR_TOKEN }}
|
||||
+ copr_url = https://copr.fedorainfracloud.org
|
||||
+ # expiration date: 2030-07-04
|
||||
+ EOF
|
||||
+
|
||||
+ pip install copr-cli
|
||||
+ PR=${{ steps.leapp_pr.outputs.leapp_pr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log
|
||||
+
|
||||
+ COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log)
|
||||
+ echo "::set-output name=copr_url::${COPR_URL}"
|
||||
+ echo "::set-output name=copr_id::${COPR_URL##*/}"
|
||||
+
|
||||
+ - name: Add comment with copr build url for leapp
|
||||
+ # TODO: Create comment when copr build fails.
|
||||
+ id: link_copr_leapp
|
||||
+ if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
+ uses: actions/github-script@v4
|
||||
+ with:
|
||||
+ script: |
|
||||
+ github.issues.createComment({
|
||||
+ issue_number: context.issue.number,
|
||||
+ owner: context.repo.owner,
|
||||
+ repo: context.repo.repo,
|
||||
+ body: 'Copr build succeeded: ${{ steps.copr_build_leapp.outputs.copr_url }}'
|
||||
+ })
|
||||
+
|
||||
+ - name: Generate artifacts output
|
||||
+ id: gen_artifacts
|
||||
+ env:
|
||||
+ ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0};{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
+ run: |
|
||||
+ echo "::set-output name=artifacts::${{ env.ARTIFACTS }}"
|
||||
diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
|
||||
index 24334978..a069bd96 100644
|
||||
--- a/.github/workflows/tmt-tests.yml
|
||||
+++ b/.github/workflows/tmt-tests.yml
|
||||
@@ -6,193 +6,62 @@ on:
|
||||
- created
|
||||
|
||||
jobs:
|
||||
- pr_commented:
|
||||
- # This job only runs for '/rerun' pull request comments by owner, member, or collaborator of the repo/organization.
|
||||
- name: Run tmt tests on Testing Farm service
|
||||
+ call_workflow_copr_build:
|
||||
+ uses: ./.github/workflows/reuse-copr-build.yml
|
||||
+ secrets: inherit
|
||||
+
|
||||
+ call_workflow_tests_7to8_integration:
|
||||
+ needs: call_workflow_copr_build
|
||||
+ uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@master
|
||||
+ secrets: inherit
|
||||
+ with:
|
||||
+ copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
|
||||
+ tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)"
|
||||
+
|
||||
+ call_workflow_tests_7to8_sst:
|
||||
+ needs: call_workflow_copr_build
|
||||
+ uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@master
|
||||
+ secrets: inherit
|
||||
+ with:
|
||||
+ copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
|
||||
+ tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(.*morf)"
|
||||
+ pull_request_status_name: "7to8-sst"
|
||||
+ update_pull_request_status: 'false'
|
||||
if: |
|
||||
github.event.issue.pull_request
|
||||
- && startsWith(github.event.comment.body, '/rerun')
|
||||
+ && startsWith(github.event.comment.body, '/rerun-all')
|
||||
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
|
||||
- runs-on: ubuntu-20.04
|
||||
- steps:
|
||||
- - name: Install necessary deps
|
||||
- id: deps_install
|
||||
- run: sudo apt-get install -y libkrb5-dev
|
||||
|
||||
- - name: Get pull request number
|
||||
- id: pr_nr
|
||||
- run: |
|
||||
- PR_URL="${{ github.event.comment.issue_url }}"
|
||||
- echo "::set-output name=pr_nr::${PR_URL##*/}"
|
||||
-
|
||||
- - name: Checkout
|
||||
- # 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
|
||||
- with:
|
||||
- ref: "refs/pull/${{ steps.pr_nr.outputs.pr_nr }}/head"
|
||||
-
|
||||
- - name: Get ref and sha
|
||||
- id: ref_sha
|
||||
- run: |
|
||||
- echo "::set-output name=sha::$(git rev-parse --short HEAD)"
|
||||
- echo "::set-output name=ref::refs/pull/${{ steps.pr_nr.outputs.pr_nr }}/head"
|
||||
-
|
||||
- - name: Trigger copr build
|
||||
- id: copr_build
|
||||
- env:
|
||||
- COPR_CONFIG: "copr_fedora.conf"
|
||||
- COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64"
|
||||
- run: |
|
||||
- cat << EOF > $COPR_CONFIG
|
||||
- [copr-cli]
|
||||
- login = ${{ secrets.FEDORA_COPR_LOGIN }}
|
||||
- username = @oamg
|
||||
- token = ${{ secrets.FEDORA_COPR_TOKEN }}
|
||||
- copr_url = https://copr.fedorainfracloud.org
|
||||
- # expiration date: 2030-07-04
|
||||
- EOF
|
||||
-
|
||||
- pip install copr-cli
|
||||
- PR=${{ steps.pr_nr.outputs.pr_nr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log
|
||||
-
|
||||
- COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log)
|
||||
- echo "::set-output name=copr_url::${COPR_URL}"
|
||||
- echo "::set-output name=copr_id::${COPR_URL##*/}"
|
||||
-
|
||||
- - name: Add comment with copr build url
|
||||
- # TODO: Create comment when copr build fails.
|
||||
- id: link_copr
|
||||
- uses: actions/github-script@v4
|
||||
- with:
|
||||
- script: |
|
||||
- github.issues.createComment({
|
||||
- issue_number: context.issue.number,
|
||||
- owner: context.repo.owner,
|
||||
- repo: context.repo.repo,
|
||||
- body: 'Copr build succeeded: ${{ steps.copr_build.outputs.copr_url }}'
|
||||
- })
|
||||
-
|
||||
- - name: Get dependent leapp pr number from rerun comment
|
||||
- uses: actions-ecosystem/action-regex-match@v2
|
||||
- id: leapp_pr_regex_match
|
||||
- with:
|
||||
- text: ${{ github.event.comment.body }}
|
||||
- regex: '^/rerun\s+([0-9]+)\s*$'
|
||||
-
|
||||
- - name: If leapp_pr was specified in the comment - trigger copr build
|
||||
- # TODO: XXX FIXME This should schedule copr build for leapp but for now it will be just setting an env var
|
||||
- id: leapp_pr
|
||||
- if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
- run: |
|
||||
- echo "::set-output name=leapp_pr::${{ steps.leapp_pr_regex_match.outputs.group1 }}"
|
||||
-
|
||||
- - name: Checkout leapp
|
||||
- id: checkout_leapp
|
||||
- if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
- uses: actions/checkout@v2
|
||||
- with:
|
||||
- repository: "oamg/leapp"
|
||||
- ref: "refs/pull/${{ steps.leapp_pr.outputs.leapp_pr }}/head"
|
||||
-
|
||||
- - name: Get ref and sha for leapp
|
||||
- id: ref_sha_leapp
|
||||
- if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
- run: |
|
||||
- echo "::set-output name=sha::$(git rev-parse --short HEAD)"
|
||||
- echo "::set-output name=ref::refs/pull/${{ steps.leapp_pr.outputs.leapp_pr }}/head"
|
||||
-
|
||||
- - name: Trigger copr build for leapp
|
||||
- id: copr_build_leapp
|
||||
- if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
- env:
|
||||
- COPR_CONFIG: "copr_fedora.conf"
|
||||
- COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64"
|
||||
- run: |
|
||||
- cat << EOF > $COPR_CONFIG
|
||||
- [copr-cli]
|
||||
- login = ${{ secrets.FEDORA_COPR_LOGIN }}
|
||||
- username = @oamg
|
||||
- token = ${{ secrets.FEDORA_COPR_TOKEN }}
|
||||
- copr_url = https://copr.fedorainfracloud.org
|
||||
- # expiration date: 2030-07-04
|
||||
- EOF
|
||||
-
|
||||
- pip install copr-cli
|
||||
- PR=${{ steps.leapp_pr.outputs.leapp_pr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log
|
||||
-
|
||||
- COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log)
|
||||
- echo "::set-output name=copr_url::${COPR_URL}"
|
||||
- echo "::set-output name=copr_id::${COPR_URL##*/}"
|
||||
-
|
||||
- - name: Add comment with copr build url for leapp
|
||||
- # TODO: Create comment when copr build fails.
|
||||
- id: link_copr_leapp
|
||||
- if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
- uses: actions/github-script@v4
|
||||
- with:
|
||||
- script: |
|
||||
- github.issues.createComment({
|
||||
- issue_number: context.issue.number,
|
||||
- owner: context.repo.owner,
|
||||
- repo: context.repo.repo,
|
||||
- body: 'Copr build succeeded: ${{ steps.copr_build_leapp.outputs.copr_url }}'
|
||||
- })
|
||||
-
|
||||
- - name: Schedule regression testing for 7to8
|
||||
- id: run_test_7to8
|
||||
- env:
|
||||
- ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0};{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
- uses: sclorg/testing-farm-as-github-action@v1.2.10
|
||||
- with:
|
||||
- # required
|
||||
- api_url: ${{ secrets.TF_ENDPOINT }}
|
||||
- api_key: ${{ secrets.TF_API_KEY }}
|
||||
- git_url: 'https://gitlab.cee.redhat.com/oamg/tmt-plans'
|
||||
- github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- # optional
|
||||
- tf_scope: 'private'
|
||||
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)"
|
||||
- compose: ${{ secrets.COMPOSE_RHEL79 }}
|
||||
- arch: 'x86_64'
|
||||
- copr: 'epel-7-x86_64'
|
||||
- copr_artifacts: ${{ env.ARTIFACTS }}
|
||||
- debug: ${{ secrets.ACTIONS_STEP_DEBUG }}
|
||||
- tmt_context: 'distro=rhel-7'
|
||||
- pull_request_status_name: '7to8'
|
||||
- create_issue_comment: 'true'
|
||||
- # NOTE(ivasilev) In order to update pr status this workflow has to be massively refactored with artifacts
|
||||
- # preparation moved out to a different workflow and the rest split into 2 workflows - 7to8 and 8to9 that are
|
||||
- # triggered on a specific repository dispatch event.
|
||||
- update_pull_request_status: 'false'
|
||||
- environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
|
||||
-
|
||||
- - name: Schedule regression testing for 8to9
|
||||
- id: run_test_8to9
|
||||
- env:
|
||||
- ARTIFACTS: ${{ steps.leapp_pr_regex_match.outputs.match != '' && format('{0};{1}', steps.copr_build_leapp.outputs.copr_id, steps.copr_build.outputs.copr_id) || steps.copr_build.outputs.copr_id }}
|
||||
- uses: sclorg/testing-farm-as-github-action@v1.2.10
|
||||
- with:
|
||||
- # required
|
||||
- api_url: ${{ secrets.TF_ENDPOINT }}
|
||||
- api_key: ${{ secrets.TF_API_KEY }}
|
||||
- git_url: 'https://gitlab.cee.redhat.com/oamg/tmt-plans'
|
||||
- github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- # optional
|
||||
- tf_scope: 'private'
|
||||
- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)"
|
||||
- compose: ${{ secrets.COMPOSE_RHEL86 }}
|
||||
- arch: 'x86_64'
|
||||
- copr: 'epel-8-x86_64'
|
||||
- copr_artifacts: ${{ env.ARTIFACTS }}
|
||||
- debug: ${{ secrets.ACTIONS_STEP_DEBUG }}
|
||||
- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_SKU=RH00069;RHSM_REPOS=rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms;LEAPP_EXEC_ENV_VARS=LEAPP_DEVEL_TARGET_PRODUCT_TYPE=beta'
|
||||
- tmt_context: 'distro=rhel-8'
|
||||
- pull_request_status_name: '8to9'
|
||||
- create_issue_comment: 'true'
|
||||
- # NOTE(ivasilev) In order to update pr status this workflow has to be massively refactored with artifacts
|
||||
- # preparation moved out to a different workflow and the rest split into 2 workflows - 7to8 and 8to9 that are
|
||||
- # triggered on a specific repository dispatch event.
|
||||
- update_pull_request_status: 'false'
|
||||
- environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}'
|
||||
+ call_workflow_tests_7to8_aws:
|
||||
+ needs: call_workflow_copr_build
|
||||
+ uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@master
|
||||
+ secrets: inherit
|
||||
+ with:
|
||||
+ copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
|
||||
+ tmt_plan_regex: "^(?!.*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"
|
||||
+ variables: "RHUI=aws"
|
||||
+
|
||||
+ call_workflow_tests_8to9_integration:
|
||||
+ needs: call_workflow_copr_build
|
||||
+ uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@master
|
||||
+ secrets: inherit
|
||||
+ with:
|
||||
+ copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
|
||||
+ tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)"
|
||||
+
|
||||
+ call_workflow_tests_8to9_sst:
|
||||
+ needs: call_workflow_copr_build
|
||||
+ uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@master
|
||||
+ secrets: inherit
|
||||
+ with:
|
||||
+ copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
|
||||
+ tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(.*morf)"
|
||||
+ pull_request_status_name: "8to9-sst"
|
||||
+ update_pull_request_status: 'false'
|
||||
+ if: |
|
||||
+ github.event.issue.pull_request
|
||||
+ && startsWith(github.event.comment.body, '/rerun-all')
|
||||
+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,34 @@
|
||||
From 92ee19013e02f09ac03bb4f2979fcf4d3d3156cf Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Tue, 7 Jun 2022 16:24:29 +0200
|
||||
Subject: [PATCH 45/47] Allow running all tests with dependent leapp pr
|
||||
|
||||
/rerun-all 4242 now would correctly pick leapp pr 4242 instead of master.
|
||||
---
|
||||
.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 fd59b073..08d78024 100644
|
||||
--- a/.github/workflows/reuse-copr-build.yml
|
||||
+++ b/.github/workflows/reuse-copr-build.yml
|
||||
@@ -88,14 +88,14 @@ jobs:
|
||||
id: leapp_pr_regex_match
|
||||
with:
|
||||
text: ${{ github.event.comment.body }}
|
||||
- regex: '^/rerun\s+([0-9]+)\s*$'
|
||||
+ regex: '^/(rerun|rerun-all)\s+([0-9]+)\s*$'
|
||||
|
||||
- name: If leapp_pr was specified in the comment - trigger copr build
|
||||
# TODO: XXX FIXME This should schedule copr build for leapp but for now it will be just setting an env var
|
||||
id: leapp_pr
|
||||
if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }}
|
||||
run: |
|
||||
- echo "::set-output name=leapp_pr::${{ steps.leapp_pr_regex_match.outputs.group1 }}"
|
||||
+ echo "::set-output name=leapp_pr::${{ steps.leapp_pr_regex_match.outputs.group2 }}"
|
||||
|
||||
- name: Checkout leapp
|
||||
id: checkout_leapp
|
||||
--
|
||||
2.35.3
|
||||
|
32
SOURCES/0046-Update-pr-welcome-msg.patch
Normal file
32
SOURCES/0046-Update-pr-welcome-msg.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From bb4e242af283c58dc8d4d627cac38ff0474dfea9 Mon Sep 17 00:00:00 2001
|
||||
From: Inessa Vasilevskaya <ivasilev@redhat.com>
|
||||
Date: Tue, 7 Jun 2022 17:12:23 +0200
|
||||
Subject: [PATCH 46/47] Update pr-welcome-msg
|
||||
|
||||
Include information about /rerun-all command that will
|
||||
schedule all regression tests including sst ones.
|
||||
Also finally fix formatting issue with asterisks in markdown.
|
||||
---
|
||||
.github/workflows/pr-welcome-msg.yml | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml
|
||||
index a259dc55..c4435578 100644
|
||||
--- a/.github/workflows/pr-welcome-msg.yml
|
||||
+++ b/.github/workflows/pr-welcome-msg.yml
|
||||
@@ -25,8 +25,10 @@ jobs:
|
||||
- **/packit copr-build** to submit a public copr build using packit
|
||||
|
||||
To launch regression testing public members of oamg organization can leave the following comment:
|
||||
- - **/rerun** to schedule tests using this pr build and leapp*master* as artifacts
|
||||
- - **/rerun 42** to schedule tests using this pr build and leapp*PR42* as artifacts
|
||||
+ - **/rerun** to schedule basic regression tests using this pr build and leapp\*master\* as artifacts
|
||||
+ - **/rerun 42** to schedule basic regression tests using this pr build and leapp\*PR42\* as artifacts
|
||||
+ - **/rerun-all** to schedule all tests (including sst) using this pr build and leapp\*master\* as artifacts
|
||||
+ - **/rerun-all 42** to schedule all tests (including sst) using this pr build and leapp\*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)
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 7aa0ca5f3673257a6f955eebecc2de86eae2c117 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Fri, 10 Jun 2022 08:30:01 +0200
|
||||
Subject: [PATCH 47/47] Fix set of supported OS versions for IPU 8 -> 9
|
||||
|
||||
Previously we have updated the upgrade_paths.json file to create
|
||||
a mapping 8.7 -> 9.0. However, we have not enabled 8.7 for in-place
|
||||
upgrades. Also, RHEL for SAP HANA has not been enabled for
|
||||
IPU 8 -> 9.
|
||||
|
||||
Enable 8.7 for rhel and 8.6 for saphana for IPU 8 -> 9 via
|
||||
SUPPORT_VERSIONS in the leapp.libraries.common.config.version
|
||||
library.
|
||||
---
|
||||
repos/system_upgrade/common/libraries/config/version.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/config/version.py b/repos/system_upgrade/common/libraries/config/version.py
|
||||
index 03f3cd42..e148932a 100644
|
||||
--- a/repos/system_upgrade/common/libraries/config/version.py
|
||||
+++ b/repos/system_upgrade/common/libraries/config/version.py
|
||||
@@ -14,7 +14,7 @@ OP_MAP = {
|
||||
_SUPPORTED_VERSIONS = {
|
||||
# Note: 'rhel-alt' is detected when on 'rhel' with kernel 4.x
|
||||
'7': {'rhel': ['7.9'], 'rhel-alt': ['7.6'], 'rhel-saphana': ['7.9']},
|
||||
- '8': {'rhel': ['8.5', '8.6']},
|
||||
+ '8': {'rhel': ['8.6', '8.7'], 'rhel-saphana': ['8.6']},
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -42,7 +42,7 @@ py2_byte_compile "%1" "%2"}
|
||||
|
||||
Name: leapp-repository
|
||||
Version: 0.16.0
|
||||
Release: 6%{?dist}
|
||||
Release: 8%{?dist}
|
||||
Summary: Repositories for leapp
|
||||
|
||||
License: ASL 2.0
|
||||
@ -53,12 +53,54 @@ BuildArch: noarch
|
||||
|
||||
### PATCHES HERE
|
||||
# Patch0001: filename.patch
|
||||
Patch0001: 0001-pcidevicesscanner-Also-match-deprecation-data-agains.patch1
|
||||
Patch0002: 0002-pciscanner-Fix-2-issues-in-regards-to-pci-address-ha.patch
|
||||
Patch0003: 0003-Ensure-the-right-repositories-are-enabled-on-Satelli.patch
|
||||
Patch0004: 0004-Enforce-the-removal-of-rubygem-irb-do-not-install-it.patch
|
||||
Patch0005: 0005-IPU-8-9-Migrate-blacklisted-CAs-hotfix.patch
|
||||
Patch0006: 0006-Skip-comment-lines-when-parsing-grub-configuration-f.patch
|
||||
Patch0001: 0001-Update-welcome-message.patch
|
||||
Patch0002: 0002-Fix-linting-violations.patch
|
||||
Patch0003: 0003-Enable-building-leapp-repository-for-specific-chroot.patch
|
||||
Patch0004: 0004-Switch-to-the-official-composite-action-for-tft.patch
|
||||
Patch0005: 0005-Switch-to-semicolon-build-separator-in-tmt-tests-873.patch
|
||||
Patch0006: 0006-pcidevicesscanner-Also-match-deprecation-data-agains.patch
|
||||
Patch0007: 0007-Fix-krb5-config-not-found-error.patch
|
||||
Patch0008: 0008-pciscanner-Fix-2-issues-in-regards-to-pci-address-ha.patch
|
||||
Patch0009: 0009-Ensure-the-right-repositories-are-enabled-on-Satelli.patch
|
||||
Patch0010: 0010-IPU-8-9-Migrate-blacklisted-CAs-hotfix.patch
|
||||
Patch0011: 0011-Skip-comment-lines-when-parsing-grub-configuration-f.patch
|
||||
Patch0012: 0012-Add-actor-that-checks-for-obsolete-.NET-versions.patch
|
||||
Patch0013: 0013-Move-OpenSSH-server-config-Scanner-and-related-model.patch
|
||||
Patch0014: 0014-Add-actor-for-updating-OpenSSH-configuration-to-RHEL.patch
|
||||
Patch0015: 0015-Add-OpenSSH-Drop-in-directory-check-to-emit-info-rep.patch
|
||||
Patch0016: 0016-OpenSSH-Config-Scanner-Record-the-presence-of-subsys.patch
|
||||
Patch0017: 0017-Warn-if-the-SSHD-is-not-configured-to-use-SFTP-serve.patch
|
||||
Patch0018: 0018-Fix-actor-tracebacks-for-non-default-lang.patch
|
||||
Patch0019: 0019-Move-the-OpenSSH-PermitRootLogin-check-to-common-rep.patch
|
||||
Patch0020: 0020-PermitRootLogin-check-add-new-use-cases-for-8to9.patch
|
||||
Patch0021: 0021-If-the-config-is-not-modified-leave-it-up-to-RPM.patch
|
||||
Patch0022: 0022-Improve-remediation-do-not-trigger-second-inhibitor.patch
|
||||
Patch0023: 0023-Add-doc-strings-and-improve-code-readability.patch
|
||||
Patch0024: 0024-Pass-enable-root-auth-post-install-script.patch
|
||||
Patch0025: 0025-Pin-version-to-1.2.10.patch
|
||||
Patch0026: 0026-Drop-the-checkcpu-actor-from-the-el8toel9-repo.patch
|
||||
Patch0027: 0027-BZ-2087144-do-not-enable-Ansible-repository-when-upg.patch
|
||||
Patch0028: 0028-call-Satellite-installer-with-disable-system-checks-.patch
|
||||
Patch0029: 0029-Allow-specifying-report-schema-1.2.0.patch
|
||||
Patch0030: 0030-restrict-Satellite-upgrades-to-x86_64.patch
|
||||
Patch0031: 0031-Add-missing-documentation-link-to-the-SFTP-deprecati.patch
|
||||
Patch0032: 0032-Fix-satellite-actor-due-to-some-oversight-of-a-missi.patch
|
||||
Patch0033: 0033-Drop-the-obsoleted-copr-build-job.patch
|
||||
Patch0034: 0034-Add-prod-certs-for-8.7-9.1-Beta-GA.patch
|
||||
Patch0035: 0035-Add-upgrade-path-8.7-9.0.patch
|
||||
Patch0036: 0036-Handle-7-to-8-IPUs-on-Google-Cloud-897.patch
|
||||
Patch0037: 0037-CheckNFS-actor-should-respect-nfsd-filesystem.patch
|
||||
Patch0038: 0038-Remove-temporary-leapp-directory-in-root.patch
|
||||
Patch0039: 0039-Improve-Leapp-resume-service-cleanup-logging.patch
|
||||
Patch0040: 0040-Revert-Move-multipathconfread-into-common-repository.patch
|
||||
Patch0041: 0041-add-multipathconf-read-check-update-el8toel9-actors.patch
|
||||
Patch0042: 0042-el8toel9-Warn-about-the-NVIDIA-driver-before-upgrade.patch
|
||||
Patch0043: 0043-Fix-unnecessary-dunder-call-violation.patch
|
||||
Patch0044: 0044-Massive-workflow-refactor-split-into-reusable-parts.patch
|
||||
Patch0045: 0045-Allow-running-all-tests-with-dependent-leapp-pr.patch
|
||||
Patch0046: 0046-Update-pr-welcome-msg.patch
|
||||
Patch0047: 0047-Fix-set-of-supported-OS-versions-for-IPU-8-9.patch
|
||||
|
||||
|
||||
%description
|
||||
%{summary}
|
||||
@ -182,6 +224,48 @@ Requires: policycoreutils-python-utils
|
||||
%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
|
||||
%patch0024 -p1
|
||||
%patch0025 -p1
|
||||
%patch0026 -p1
|
||||
%patch0027 -p1
|
||||
%patch0028 -p1
|
||||
%patch0029 -p1
|
||||
%patch0030 -p1
|
||||
%patch0031 -p1
|
||||
%patch0032 -p1
|
||||
%patch0033 -p1
|
||||
%patch0034 -p1
|
||||
%patch0035 -p1
|
||||
%patch0036 -p1
|
||||
%patch0037 -p1
|
||||
%patch0038 -p1
|
||||
%patch0039 -p1
|
||||
%patch0040 -p1
|
||||
%patch0041 -p1
|
||||
%patch0042 -p1
|
||||
%patch0043 -p1
|
||||
%patch0044 -p1
|
||||
%patch0045 -p1
|
||||
%patch0046 -p1
|
||||
%patch0047 -p1
|
||||
|
||||
|
||||
# enforce removal of packages below during the upgrade
|
||||
|
||||
@ -257,6 +341,14 @@ done;
|
||||
# no files here
|
||||
|
||||
%changelog
|
||||
* Mon Jun 13 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-8
|
||||
- enable RHEL 8.7 for the upgrade
|
||||
- Resolves: rhbz#2090995
|
||||
|
||||
* Wed Apr 27 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-7
|
||||
- CTC 1 build
|
||||
- Resolves: rhbz#2090995
|
||||
|
||||
* Wed Apr 27 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-6
|
||||
- Skip comments in /etc/default/grub during the parsing
|
||||
- Resolves: #1997076
|
||||
|
Loading…
Reference in New Issue
Block a user