Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to version 0.20.0 #119

Merged
merged 77 commits into from
Aug 13, 2024

Conversation

yuravk
Copy link

@yuravk yuravk commented Aug 9, 2024

Packaging

Upgrade handling

Fixes

Enhancements

Additional changes interesting for devels

fernflower and others added 30 commits August 7, 2024 11:56
- Get rid of the sad uefi_upgrade test for now;
- Reduce time consuming partitioning tests to 3.

in demand /rerun command-scheduled tests will still be running
the full destructive test set (no max_sst though).

(cherry picked from commit 0f4212f)
A fix for the issue that has been causing this test to fail
was merged, so let's bring back that test.

(cherry picked from commit 9890df4)
Also let's get rid of commented out max_sst tests, there
is no way packit let's us support customized runs in the
nearest future and keeping dead commented out code is not cool.

(cherry picked from commit ecffc19)
Default test set will have the fastest tests that run on cloud only.
On demand tests will contain the minimal beaker test set and will
be triggered via /packit test --labels minimal-beaker

Later we could add labels-based triggering that will remove the
need to manually leave a comment.

https://packit.dev/posts/manual-triggering#manual-only-triggering-of-jobs

OAMG-9458

(cherry picked from commit 6396320)
- On-demand minimal beaker tests will have a generic
  minimal-beaker label and minimal-beaker-XtoY label to
  enable micro control over test scheduling
- Aws tests will have aws label
- Tests triggered automatically will have default label.

OAMG-9458

(cherry picked from commit 78542a7)
Default test set will have the fastest tests that run on cloud only.
On demand tests will contain the minimal beaker test set and will
be triggered via /packit test --labels minimal-beaker

Later we could add labels-based triggering that will remove the
need to manually leave a comment.

https://packit.dev/posts/manual-triggering#manual-only-triggering-of-jobs

OAMG-9458

(cherry picked from commit 6396320)
- On-demand minimal beaker tests will have a generic
  minimal-beaker label and minimal-beaker-XtoY label to
  enable micro control over test scheduling
- Aws tests will have aws label
- Tests triggered automatically will have default label.

OAMG-9458

(cherry picked from commit 78542a7)
Let's remove duplication during similar test jobs definition
by using YAML anchors.

(cherry picked from commit 6bb0056)
Instead if a bulky regex sanity test plan will be used.
Also kernel-rt tests have been specified as a separate
test set with kernel-rt label.

(cherry picked from commit 622fa64)
- minimal-beaker label has been renamed to beaker-minimal to match
  with test job names;
- kernel-rt-XtoY labels have been added to each test to allow for
  separate test launch.

(cherry picked from commit 4932e5a)
List on-demand packit test launch possibilities.

(cherry picked from commit 0b6d2df)
- Rename default tests to sanity
- Add XtoY label to on-demand test sets for specific upgrade
  paths

(cherry picked from commit ab94d25)
- Use RHSM_REPOS_EUS='eus' instead of RHSM_REPOS for 8.6->9.0
- Remove beta repos from 8.8->9.2
- Change BusinessUnit tag value to sst_upgrades@leapp_upstream_test

(cherry picked from commit 93c6fd4)
For simplified manual testing add waking mode to parser script. Allows
direct test run displaying just chosen statements or blocks.

(cherry picked from commit f83702c)
Use python3 compatible print function

(cherry picked from commit fa0773d)
Add a target for testing individual actors with almost-instant
execution time. Testing individual actors currently involves
a process in which every actor is instantiated in a separate
process, the created instance reports actor information such as actor's
name and then exits. As many processes are created, this process is
time consuming (cca 7s) which disrupts developer's workflow and causes
attention shift.

A newly added target `dev_test_no_lint` uses an introduced script
`find_actors`. To achieve the similar level of framework protection
as spawning actors in a separate process, the `find_actors` script
does not execute actors at all, and instead works on their ASTs.
Specifically, the script looks for all files named `actor.py`, finds
all classes that (explicitely) subclass Actor, and reads its `name`
attribute.

Usage example:
    ACTOR=check_target_iso make dev_test_no_lint

(cherry picked from commit 6ae2d5a)
This problem can occur when attempting to parse an empty file.

(cherry picked from commit 4d8ad1c)
TUS (mispelled as TUV) is not suported channel for inplace upgrade,
removed from the code.

Jira: OAMG-7288
(cherry picked from commit 84d6ce3)
Sometimes after the upgrade some services end up disabled even if they
have been enabled on the source system.

There are already two separate actors that fix this for
`device_cio_free.service` and `rsyncd.service`.

A new actor `transition-systemd-services-states` handles this generally
for all services. A "desired" state is determined depending on state and
vendor preset of both source and target system and a
SystemdServicesTasks message is produced with each service that isn't
already in the "desired" state.

Jira ref.: OAMG-1745

(cherry picked from commit f50de2d)
The `transitionsystemdservicesstates` actor now handles all such
services generically, which makes this actor obsolete.

(cherry picked from commit bea0f89)
os.path has no mkdir, but os does.

traceback without the patch:

    Traceback (most recent call last):
      File "/bin/leapp", line 11, in <module>
        load_entry_point('leapp==0.16.0', 'console_scripts', 'leapp')()
      File "/usr/lib/python3.6/site-packages/leapp/cli/__init__.py", line 45, in main
        cli.command.execute('leapp version {}'.format(VERSION))
      File "/usr/lib/python3.6/site-packages/leapp/utils/clicmd.py", line 111, in execute
        args.func(args)
      File "/usr/lib/python3.6/site-packages/leapp/utils/clicmd.py", line 133, in called
        self.target(args)
      File "/usr/lib/python3.6/site-packages/leapp/cli/commands/upgrade/breadcrumbs.py", line 170, in wrapper
        breadcrumbs.save()
      File "/usr/lib/python3.6/site-packages/leapp/cli/commands/upgrade/breadcrumbs.py", line 116, in save
        self._save_rhsm_facts(doc['activities'])
      File "/usr/lib/python3.6/site-packages/leapp/cli/commands/upgrade/breadcrumbs.py", line 64, in _save_rhsm_facts
        os.path.mkdir('/etc/rhsm/facts')
    AttributeError: module 'posixpath' has no attribute 'mkdir'

While at it, also catch OSError with errno 17, to safeguard against race
conditions if anything has created the directory between us checking for
it and us trying to create it.

(cherry picked from commit 17c88d9)
On some distributions (like CentOS Stream and Oracle Linux), we need
more substitutions to be able to load repositories properly.

DNF has a helper for that: conf.substitutions.update_from_etc.

On pure DNF distributions, calling this should be sufficient.
On EL7, where the primary tool is YUM, DNF does not load vars from
/etc/yum, only from /etc/dnf, so we have to help it a bit and explicitly
try to load releasever from /etc/yum.
(DNF since 4.2.15 *does* also load substitutions from /etc/yum, but EL7
ships with 4.0.x)

(cherry picked from commit 5b0c1d9)
We only care for the major part of the version, so it's sufficient to
grep without the dot, which is not present on CentOS initrd.

CentOS Stream 8:

    VERSION="8 dracut-049-224.git20230330.el8"
    VERSION_ID=049-224.git20230330.el8

CentOS Stream 9:

    VERSION="9 dracut-057-38.git20230725.el9"
    VERSION_ID="9"

RHEL 8.8:

    VERSION="8.8 (Ootpa) dracut-049-223.git20230119.el8"
    VERSION_ID=049-223.git20230119.el8

RHEL 9.2:

    VERSION="9.2 (Plow) dracut-057-21.git20230214.el9"
    VERSION_ID="9.2"

Ideally, we would just use the major part of VERSION_ID, but this is set
to the underlying OS'es VERSION_ID only since dracut 050 [1] and EL8
ships with 049.

[1] dracutdevs/dracut@72ae1c4

(cherry picked from commit 64ec2ec)
In order to upgrade a RHUI system leapp uses custom `leapp-rhui-
X` packages providing leapp with necessary repository definitions as
well as certs and keys to access these repositories. The content of
the `leapp-rhui-X` packages is therefore almost identical to the RHUI
client(s) found on the target systems, implying that leapp's rhui
packages must actively mirror any changes to the target client packages.
This patch modifies leapp so that leapp uses the `leapp-rhui-X` package
only to provide a definion of the repository where a target RHUI client
can be found. The current RHUI client and target RHUI client is then
(bootstrapped) atomically swapped in the scratch container, allowing the
upgrade process to access target content. This change thus minimizes
the effort put into maintaining leapp-rhui-X.

This patch also does redesigns the "cloud map" to contain declarative
descriptions of setups, allowing to produce different the client
bootstrap steps if desired (not implemented). The new map also contains
information about content channel used on known rhui systems, laying the
necessary foundation for better error messages when the user forgets to
run leapp with --channel.

Finally, the RHUI-handling logic has been mostly isolated into a fully
unit-tested actor, whereas the implemented userspacegen modifications
have the nature of somehow blindly following the instructions produced
by the RHUI actor.

Jira: OAMG-8599
(cherry picked from commit bbed72d)
Systemd mounts contain only *block* devices. Therefore, the list can
never contain NFS shares at all and the check is redundant. This is
apparent if one reads storagescanner/libraries/storagescanner.py:L251.
This patch, therefore, removes the check for systemd mount alltogether.

(cherry picked from commit bf866cb)
Necessary work to adapt upstream tests to big refactoring
changes brought by MR303.

(cherry picked from commit 88e1e14)
After MR303 is merged to master there is no need
to point to my fork anymore.

(cherry picked from commit 60190ff)
pirat89 and others added 28 commits August 8, 2024 17:15
We have decided to refactor the code in the actor (coming history
time ago) to make it more readable.

Also it's fixing an old issue with gpg-pubkey detection as unsigned
rpm. gpg-pubkey is not a real package and it's just an entry in RPM DB
about the imported RPM GPG keys. Originally it has been checked whether
the packager is vendor/authority of the installed distribution and if
not, such a package (key) has been mared as unsigned.

This led to false positive reports, that we do not know what will
happen with gpg-pubkey packages (reported even multiple times..)
and that they might be removed or do another problems with the upgrade
transaction - which has not been true.

So I dropped the check for the packager and mark gpg-pubkey always
as signed. It's a question whether we should not ignore this package
always and do not put it to any signed/unsigned list. Handling it
in this way for now.

(cherry picked from commit 4968bec)
* rpms.get_leapp_packages() library function returns the leapp packages which ship the leapp
  components.
* rpms.get_leapp_deps_packages() library function returns the leapp deps meta packages which list
  the requirements of the associated leapp packages.

This function can be used as leapp-installation-packages-getter.
Refactoring of other actors using it will be done later.

(cherry picked from commit 118133a)
As default branch in tmt tests repo has been changed
from master to main, we have to address this in
packit configuration.

(cherry picked from commit c627a0b)
To be able to format our OVL disk images with XFS or Ext4, we need
the required tools present on the system. However, on systems with
XFS file systems only, it's not needed to have tools for ext4,
and vice versa. So on such systems, users can remove these packages
manually. In that cases, we get into a problems, especially when
XFS is the default FS in our case.

To resolve that, we add dependencies for xfsprogs and e2fsprogs rpms
into the spec file, so we are sure these are always present on the
system.

In case of Ext4 it is a little bit "redundant" - as use of Ext4 is
optional. However we expect actually that many people will do it
(many == not a small amount of people -> not uncommon use..).
So keeping this the least effort, let's add the requirement for both
as the actual installation stack is not big.

Packaging:
    * Requires xfsprogs, e2fsprogs
    * Bump leapp-repository-dependencies to 10

jira: RHEL-10847
(cherry picked from commit 7a819fb)
* Allow arbitrary user supplied arguments for pytest, pylint, and flake8.  This can be used, for
  instance, to select specific tests in pytest (PYTEST_ARGS="-k 'perform_ok'"), or to "disable" a
  single linter: (PYLINT_ARGS='--version').
* Better document how to determine the proper value for ACTOR=<actor>.

(cherry picked from commit 50b4fc0)
When PES events are added for all the Leapp related packages, we need to
make sure to ignore them in `pes_events_scanner` to make sure they are
*not* taken into account during the RPM upgrade transaction as we don't
want to upgrade them or want to handle their upgrade in a different way.

Jira: OAMG-5645
(cherry picked from commit e414f7c)
Instead of harcoded list of leapp packages let's rely on
native leapp library functions that were introduced a few
commits ago.

OAMG-5645

(cherry picked from commit 14667ee)
We hit already several times a situation that an actor needed an
information about specific file (whether exists, has been changed,...).
And for that purpose extra scanner actor needed to be created, with
an associated message and Model.

To cover such cases, we are introducing new model
TrackedFilesInfoSource and actor scansourcefiles. So in future, when
any actor needs such a piece of information and do something based
on it, developer can just update lists in the introduced actor's
library, so the information about particular file will be provided.

Another benefit is saving a time on writting new unit tests and code
for the scan, as updating a list of files to be tracked does not
affect the algorithm.

(cherry picked from commit 1afd0fb)
* The openssl-ibmca needs to be reconfigured manually after the upgrade.
  Report it to the user if the package is installed.

* The openssl configuration file (/etc/pki/tls/openssl.cnf) is not
  100% compatible between major verions of RHEL due to different
  versions of OpenSSL. Also the configuration is supposed to be
  done via system wide crypto policies instead, so it's expected
  to not modify this file anymore. If the content of the file has
  been modified, report to user what will happen during the upgrade
  and what they should do after it.

* If the openssl config file is modified (rpm -Vf <file>) and
  *.rpmnew file exists, back up the file with .leappsave suffix
  and replace it by the *.rpmsave one.

(cherry picked from commit c8321a9)
This commit introduces two actors:
* the scanner that that scans leapp files and
  produces messages with actor name/filepath mapping in case
  any unexpected custom files or modified files were discovered.
* the checker that processes CustomModification messages and
  produces report entries.

* uses rpms.get_leapp_packages function
* pstodulk: Updated report messages to provide more information to users

The purpose of this change is to help with the investigation
of reported issues as people harm themselves from time to time
and as this is not usually expected, it prolongs the solution
of the problem (people investigating such issues do not check
this possibility as the first thing, which is understandable).
This should help to identify possible root causes faster as
report msg should be always visible.

Jira: RHEL-1774

Co-authored-by: Petr Stodulka <[email protected]>
(cherry picked from commit 7c6e0d8)
…ectories.

* The previous code handled absolute symlinks fine but when there were relative symlinks it would
  traceback.  Additionally, it did not handle symlinks to directories that occurred outside of
  /etc/pki.  This should fix both of those cases.

  In order to handle symlinks to the /etc/pki directory, we need to introduce the concept of the
  canonical path.  The canonical path is an absolute path that has had all symlinks dereferenced and
  doesn't contain any parent directories ("..") or self directories (".").  We have to use the
  canonical path for most file path comparisons since symlinks allow multiple paths that will point
  to a file but there is only one canonical path.  The logic is somewhat tricky since we need to use
  the canonical path for comparisons but we have to use srcdir when constructing the paths that we
  will put into links we create (since we want to use /etc/pki in the container context even if
  /etc/pki is a symlink on the host system.)

* Add some unittests that test symlink handling of copy_decouple with relative symlinks.
* Enhance the temporary_directory fixture to handle creation of relative symlinks too.
* Add better error messages to asserts in assert_firectory_structure_matches
* Modify _copy_decouple() unittest to raise CalledProcessError() if run() encounters an error.
  If the command line executable that run() executes has a non-zero exit code, the real code will
  raise CalledProcessError() but the mock in the unittest would not.  Change the unittest to match
  the actual code's behaviour.
* Move explanation of the parametrize structure to traverse_structure's docstring.
* Use pytest.param() and id for the parametrize on test_copy_decouple.  The ids
  help to determine which tests have failed and allow us to select a specific test
  to rerun (with PYLINT_ARGS="-k '<ID>'"
* If decouple_copy fails, then print out the entire directory structure that was
  created.  That will help to debug the failed assertions.

(cherry picked from commit af50cfc)
`happy_path` performs similar steps as `e2e` does and is used in the rest of tiers.

(cherry picked from commit 946f8c6)
Note the repomap.json file does not cover yet mapping of repositories
between RHEL 8 and RHEL 9 for aarch64 (ARM). This will be covered
by further update of the file.

(cherry picked from commit f0ff886)
As the leapp upgrade data files are nowadays part of the install rpm,
there is no need to download them anymore. Also, we do not have any
plans to provide the updated data files anywhere out of the rpm.

From that point, do not try to download provided data files anymore.

(cherry picked from commit a9e48f8)
Updated number of error messages and reports to be sure that users
know what files are actually problematic. Original errors and reports
usually didn't contain the full path to an upgrade data file due to
possibility to download the file from a server. However, the posibility
to download fresh data files from a requested server is not expected
to support in the current state as the data files are part of provided
packages.

I've been thinking quite long time whether to actually drop
or deprecate bigger part of the code to simplify the whole solution,
as currently it's not planned to have a possibility to download
some data files from servers in future. However, thinking about
upcoming challenges, I am not totally persuaded that we will not
revive that functionality in future, or that we will not want to
use it for something little bit different. From that POV (and late
phase of development prior the planned release) I think it will be
better to preserve it for now and raise a discussion about it later.

Other changes in this PR:
 * drop hardcoded name of the leapp-upgrade-elXtoelY rpm and use
   the leapp.libraries.common.rpms.get_leapp_packages() function
 * replace REPOSITORY group by SANITY; it was originally a mixture
   of both and SANITY fits better to me from this point
 * the check of consumed data sets could produce report with empty
   links, as the original article(s) we referred to have been obsoleted;
   so added filter for missing URLs

Co-authored-by: Toshio Kuratomi <[email protected]>
(cherry picked from commit 353cd03)
* Symlinks to a directory inside of /etc/pki were being created as empty directories.
* Note: unittests being added for both this problem and a second problem:
  two links to the same external file will be copied as two separate files but ideally we want one
  to be a copy and the other to link to the copy.  The unittests for the second problem are
  commented out.

Fixes: https://issues.redhat.com/browse/RHEL-3284
(cherry picked from commit bec6615)
In case of malformed device_driver_deprecation_data.json user could
originally see raw traceback without having too much information
what it actually means or how to fix it. That usually happens only
when the file is manually modified on the machine. So in this case
we inform user what file is problematic and how to restore the original
file installed by our package.

In case of upstream development, this msg could be seen also when
new data is provided if:
 * data file is malformed
 * data file has a new format of data (still json expected)
 * etc.
These issues however will be discovered prior the merge as the
running tests will fail, so such a problematic file should never
get part of the upstream. From that point, we will be expect that
user has malformed / customized data file. So no need to handle
all possible errors differently in this case.

Jira: OAMG-7549

Co-authored-by: Toshio Kuratomi <[email protected]>
(cherry picked from commit 98a1057)
https://issues.redhat.com/browse/RHEL-3295

The bug can be triggered with customizations such as:
  semanage port -m -t ssh_port_t -p tcp 8021
  semanage port -m -t ssh_port_t -p tcp 2888
  semanage user -m user_u -R user_r -R staff_r
  semanage user -m staff_u -R user_r
  semanage login -m -s guest_u __default__ -r s0
  semanage fcontext -m -t httpd_sys_content_t "/vmlinuz.*" -f l
  semanage fcontext -m -t httpd_sys_content_t "/xen(/.*)?"

Signed-off-by: Vit Mojzis <[email protected]>
(cherry picked from commit ec1b07c)
…ices on 8->9+

Beginning with RHEL8 there are two possible configurations (monolithic
and modular) for the libvirt and virt* (virtqemud, virtlockd,
virtproxyd, ...) services. The generic strategy implemented in the
transitionsystemdservicesstates actor cannot handle such setup
and leaves the upgraded system with a an incorrect combination of these
configurations. Therefore these services are ignored by the actor and
their state transition will be done by the services (and other related
units) themselves.

Jira: RHEL-22597
(cherry picked from commit 5518ae0)
This is followup on announced changed from commit 5a3bded.
The support for noted RHEL releases ends on May 2024, hence the
upgrade paths related to these releases are dropped.

Jira: OAMG-10452
(cherry picked from commit 63c33d4)
I've already realized I missed couple of breakpoints over time inside
the initramfs and cannot remember expected cmdline params for each
of them. So let's try to make it more consistent. Keeping the original
cmdline arguments as some people are used to them already, but
introducing new ones.

New introduced breakpoints:
* rd.upgrade.break=leapp-initram
  * breaks right after getting to leapp dracut modules
  * orig
    * rd.break=upgrade
    * rd.upgrade.break=upgrade
* rd.upgrade.break=leapp-pre-upgrade
  * breaks just right before running leapp in initramfs
* rd.upgrade.break=leapp-post-upgrade
  * running just right after leapp upgrade (dnf transaction done),
    before the start of post-upgrade phases
  * orig:
    * rd.break=leapp-upgrade
    * rd.upgrade.break=leapp-upgrade
* rd.upgrade.break=leapp-finish
  * the last breakpoint, after logs are saved, before the upcoming
    reboot (leaving the upgrade environment)
  * orig:
    * rd.break=leapp-logs

Note: we could possibly drop old ones already, but as this is
going to be one of last changes for IPU 7 -> 8, I decided to leave
such a decision for future. Also, it's possible that we will need
to redesign this part of the upgrade process, so that's another reason
why to just add something, but do not drop anything.

(cherry picked from commit 64c34b5)
## Packaging
- Requires xfsprogs and e2fsprogs (oamg#1154)
- Bump leapp-repository-dependencies to 10 (oamg#1154)

## Upgrade handling
### Fixes
- Detect changes in openssl default configuration file and restore it to the default to the target default during the upgrade to reduce risk of potential issues (oamg#1131)
- Do not try to download data files anymore when missing as the service is obsoleted since the data is part of installed packages (oamg#1120)
- Drop the invalid `tuv` target channel (oamg#1130)
- Fix handling of symlinks under /etc/pki when managing certificates (oamg#1135, oamg#1160, oamg#1166)
- Fix semanage import issue (oamg#1164)
- Fix the issue of going out of bounds in the isccfg parser (oamg#1124)
- Fix traceback when saving the rhsm facts results and the /etc/rhsm/facts directory doesn’t exist yet (oamg#1132)
- Handle the upgrade better when a proxy is configured in YUM/DNF configutations (oamg#1143)
- Load all rpm repository substitutions that dnf knows about, not just releasever since repofiles may use the other substitutions too (oamg#1134)
- Minor updates of generated reports (oamg#1151)
- Print nice error msg when device and driver deprecation data is malformed (oamg#1168)
- Report information about required manual steps after the upgrade when openssl-ibmca is installed (oamg#1131)
- Update error messages and reports when installed upgrade data files are malformed or missing (oamg#1120)
- [IPU 7 -> 8] Fix the upgrade of the RH Satellite server when tomcat is installed (oamg#1150)
- [IPU 8 -> 9] Fix the upgrade from RHEL 8.9+ when the release is locked by subscription-manager (oamg#1136, oamg#1138)

### Enhancements
- Update upgrade paths: (oamg#1146, oamg#1147, oamg#1175)
  - RHEL 7.9  -> 8.10, 8.8 (default: 8.10)
  - RHEL with SAPAHA 7.9  -> 8.10, 8.8 (default: 8.8)
  - RHEL w/o SAP HANA 8.8  -> 9.2
  - RHEL w/o SAP HANA 8.10 -> 9.4
- Added possibility to define DNF configuration for the target system (oamg#1143)
- Code cleaning: drop redundant and invalid NFS checks (oamg#1127)
- Default to NO_RHSM mode when subscription-manager is not found (oamg#1133)
- Detect customized configuration of dynamic linker (oamg#1118)
- Detect possible unexpected RPM GPG keys has been installed during RPM transaction (oamg#1101)
- Drop obsoleted upgrade paths that relates to releases: 8.6, 8.9, 9.0, 9.3 (oamg#1175)
- Ignore Leapp related PES events (oamg#1153)
- Introduce generic transition of systemd services states during the IPU (oamg#1060, oamg#1174)
- Introduce possibility to upgrade with local repositories (oamg#1099)
- Introduced some changes getting us closer to possibility of IPU for Centos (Stream) systems (oamg#1140)
- Report the upgrade customisations and modifications of the upgrade tooling (oamg#1148)
- Simplify handling of upgrades on systems using RHUI, reducing the maintenance burden for cloud providers (oamg#1057)
- Update the leapp upgrade data files - bump data stream to "3.0" (oamg#1163, oamg#1165, oamg#1170)
- [IPU 8 -> 9] Enable upgrades RHEL 8 -> 9 using RHUI on Alibaba cloud (oamg#1137, oamg#1165, oamg#1172)
- Unify breakpoints inside the upgrade initramfs for the easier troubleshooting (oamg#1157)

## Additional changes interesting for devels
- Introduced new functions returning a list of packages related to upgrade - see the rpms library (oamg#1156)
- Make detection of installed signed packages distribution agnostic - covers RHEL & CentOS (oamg#876)
- Model InstalledRedHatSignedRPM is deprecated, replaced by DistributionSignedRPM (oamg#876)

(cherry picked from commit 6421225)
There will be another update of data duing the next week(s), so keeping
expected provided_data_stream set on 2.0. However the data are already
marked to provide 2.0 & 3.0.

(cherry picked from commit 0e51aeb)
* Added RHEL 9 repos for Alibaba RHUI with mapping for IPU 8 -> 9
* Actors require "3.0" in the list of provided_data_streams
* All data files updated to provide onls "3.0" data stream
* Add NL at the end of the device_driver_deprecation_data.json file
  to be POSIX compatible as expected.

(cherry picked from commit 8552bbf)
Includes fixed idm-tomcatjss related events for upgrades IPU 8 -> 9.

Jira: RHEL-21779
(cherry picked from commit b75dc49)
```
The following repos have been added:
 - Repo(pesid='rhel8-CRB', major_version='8', repoid='rhui-codeready-builder-for-rhel-8-aarch64-rhui-rpms', repo_type='rpm', channel='ga', arch='aarch64', rhui='alibaba')
 - Repo(pesid='rhel8-rhui-custom-client-at-alibaba', major_version='8', repoid='rhui-custom-rhui_client_at_alibaba-rhel-8', repo_type='rpm', channel='ga', arch='aarch64', rhui='alibaba')
 - Repo(pesid='rhel8-BaseOS', major_version='8', repoid='rhui-rhel-8-for-aarch64-baseos-rhui-rpms', repo_type='rpm', channel='ga', arch='aarch64', rhui='alibaba')
 - Repo(pesid='rhel8-Supplementary', major_version='8', repoid='rhui-rhel-8-for-aarch64-supplementary-rhui-rpms', repo_type='rpm', channel='ga', arch='aarch64', rhui='alibaba')
 - Repo(pesid='rhel8-AppStream', major_version='8', repoid='rhui-rhel-8-for-aarch64-appstream-rhui-rpms', repo_type='rpm', channel='ga', arch='aarch64', rhui='alibaba')
 ```

Related PR: oamg#1137

(cherry picked from commit c63ccbb)
Copy link

github-actions bot commented Aug 9, 2024

Thank you for contributing to the Leapp project!

Please note that every PR needs to comply with the Leapp Guidelines and must pass all tests in order to be mergeable.
If you want to request a review or rebuild a package in copr, you can use following commands as a comment:

  • review please @oamg/developers to notify leapp developers of the review request
  • /packit copr-build to submit a public copr build using packit

Packit will automatically schedule regression tests for this PR's build and latest upstream leapp build. If you need a different version of leapp from PR#42, use /packit test oamg/leapp#42

To launch regression testing public members of oamg organization can leave the following comment:

  • /rerun to schedule basic regression tests using this pr build and latest upstream leapp build as artifacts
  • /rerun 42 to schedule basic regression tests using this pr build and leapp*PR42* as artifacts
  • /rerun-sst to schedule sst tests using this pr build and latest upstream leapp build as artifacts
  • /rerun-sst 42 to schedule sst tests using this pr build and leapp*PR42* as artifacts

Please open ticket in case you experience technical problem with the CI. (RH internal only)

Note: In case there are problems with tests not being triggered automatically on new PR/commit or pending for a long time, please contact leapp-infra.

@andrewlukoshko andrewlukoshko merged commit e2f73d5 into AlmaLinux:almalinux-ng Aug 13, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.