Bug #28700
closeddnf prevent a successful upgrade
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1772596
Description of problem:
If user has installed on RHEL7 `dnf` - that is available from RH - and try to upgrade Satellite, the rpm upgrade phase fails with the following error:
- foreman-maintain upgrade run --target-version 6.5.z
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : === Scenario 'Migration scripts to Satellite 6.5.z' started ===I, [2019-11-08 10:54:52+0100 #6382] INFO -- : --- Execution step 'Setup repositories' [repositories-setup] started ---
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : --- Execution step 'Setup repositories' finished ---
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : --- Execution step 'Unlock packages' [packages-unlock-versions] started ---
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : --- Execution step 'Unlock packages' finished ---
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : --- Execution step 'Update package(s) ' [packages-update] started ---
E, [2019-11-08 10:54:52+0100 #6382] ERROR -- : undefined method `join' for "all":String (NoMethodError)
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/package_manager/dnf.rb:13:in `dnf_action'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/package_manager/dnf.rb:4:in `clean_cache'
/usr/share/gems/gems/foreman_maintain-0.4.9/definitions/procedures/packages/update.rb:13:in `run'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/executable.rb:139:in `__run__'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner/execution.rb:83:in `block (2 levels) in run'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner/execution.rb:107:in `capture_errors'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner/execution.rb:82:in `block in run'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner/execution.rb:101:in `with_metadata_calculation'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner/execution.rb:81:in `run'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner.rb:122:in `run_step'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner.rb:111:in `run_steps'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner.rb:104:in `execute_scenario_steps'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/runner.rb:51:in `run_scenario'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/upgrade_runner.rb:138:in `block in run_phase'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/upgrade_runner.rb:185:in `with_non_empty_scenario'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/upgrade_runner.rb:134:in `run_phase'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/upgrade_runner.rb:82:in `block in run'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/upgrade_runner.rb:77:in `each'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/upgrade_runner.rb:77:in `run'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/cli/upgrade_command.rb:80:in `execute'
/usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:63:in `run'
/usr/share/gems/gems/clamp-1.1.2/lib/clamp/subcommand/execution.rb:11:in `execute'
/usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:63:in `run'
/usr/share/gems/gems/clamp-1.1.2/lib/clamp/subcommand/execution.rb:11:in `execute'
/usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:63:in `run'
/usr/share/gems/gems/foreman_maintain-0.4.9/lib/foreman_maintain/cli.rb:32:in `run'
/usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:132:in `run'
/usr/share/gems/gems/foreman_maintain-0.4.9/bin/foreman-maintain:15:in `<top (required)>'
/usr/bin/foreman-maintain:23:in `load'
/usr/bin/foreman-maintain:23:in `<main>'
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : --- Execution step 'Update package(s) ' finished ---
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : === Scenario 'Migration scripts to Satellite 6.5.z' finished ===
I, [2019-11-08 10:54:52+0100 #6382] INFO -- : foreman-maintain command finished with
Version-Release number of selected component (if applicable):
rubygem-foreman_maintain-0.4.9-1.el7sat.noarch
How reproducible:
always
Steps to Reproduce:
1. yum install dnf
2. foreman-maintain upgrade run --target-version 6.5.z
Actual results:
Failure and bad ruby dump
Expected results:
1. during the `upgrade check` would be useful if the installer would check for the presence of any of the following packages:
dnf
dnf-data
dnf-plugins-core
libdnf
python2-dnf
python2-dnf-plugins-core
python2-libdnf
and raise an error.
Another option could be to make foreman-maintain at rpm level mutually exclusive with dnf.