Katello upgrade errors when trying to install tfm-rubygem-foreman_inventory_upload

Problem:
Trying to upgrade Katello from 3.15.0 to 3.15.3-1. Running into an error when trying to run
foreman-installer --scenario katello --upgrade

Upgrade Step: Running installer...
 Execution of '/usr/bin/yum -d 0 -e 0 -y install tfm-rubygem-foreman_inventory_upload' returned 1: Error: Nothing to do

Expected outcome:
Installer should run without issue

Foreman and Proxy versions:
Katello from 3.15.0 to 3.15.3-1.

Other relevant data:

[ERROR 2020-07-21T05:44:17 main] Errors encountered during run:
[ERROR 2020-07-21T05:44:17 main] Execution of ‘/usr/bin/yum -d 0 -e 0 -y install tfm-rubygem-foreman_inventory_upload’ returned 1: Error: Nothing to do
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/execution.rb:297:in execute' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider.rb:101:in execute’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package/yum.rb:303:in install' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/package.rb:98:in block (3 levels) in module:Puppet
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:490:in set' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:570:in sync’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:241:in sync' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:136:in sync_if_needed’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:82:in perform_changes' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:21:in evaluate’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:267:in apply' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:287:in eval_resource’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:191:in call' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:191:in block (2 levels) in evaluate’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:545:in block in thinmark' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in realtime’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:544:in thinmark' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:191:in block in evaluate’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:122:in traverse' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:178:in evaluate’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:240:in block (2 levels) in apply' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:545:in block in thinmark’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in realtime' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:544:in thinmark’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:239:in block in apply' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:161:in with_destination’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:146:in as_logging_destination' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:238:in apply’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:185:in block (2 levels) in apply_catalog' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:545:in block in thinmark’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in realtime' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:544:in thinmark’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:184:in block in apply_catalog' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:232:in block in benchmark’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in realtime' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:231:in benchmark’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:183:in apply_catalog' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:399:in run_internal’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:227:in block in run' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:62:in override’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:314:in override' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:210:in run’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:343:in apply_catalog' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:260:in block (2 levels) in main’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:62:in override' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:314:in override’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:243:in block in main' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:62:in override’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:314:in override' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:207:in main’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:177:in run_command' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:382:in block in run’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:734:in exit_on_fail' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:382:in run’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:143:in run' [ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:77:in execute’
[ERROR 2020-07-21T05:44:17 main] /opt/puppetlabs/puppet/bin/puppet:5:in `’
[ERROR 2020-07-21T05:44:17 main] /Stage[main]/Foreman::Plugin::Inventory_upload/Foreman::Plugin[inventory_upload]/Package[tfm-rubygem-foreman_inventory_upload]/ensure: change from ‘purged’ to ‘present’ failed: Execution of ‘/usr/bin/yum -d 0 -e 0 -y install tfm-rubygem-foreman_inventory_upload’ returned 1: Error: Nothing to do

I cannot find any package or rpm with name tfm-rubygem-foreman_inventory_upload in any repo. It looks like this plugin has been renamed to tfm-rubygem-foreman_rh_cloud ? How can I remove this check from the installer?

Hey, yes the plugin has been renamed to tfm-rubygem-foreman_rh_cloud,

@Shimon_Shtein do you know how can he skip it or switch to the right gem in the installer?

I suppose your RPM is missing the Obsoletes statement, like it is set for develop branch.

@ekohl, I suppose I need to add those statements to one of the stable rpm branches?

Yes, that sounds like the right approach.

@Shimon_Shtein which RPM? Currently I have tfm-rubygem-foreman_rh_cloud-2.0.7-1.fm2_0.el7.noarch.rpm installed, and had no issues installing it.

If look at the rpm with

rpmrebuild -e -p tfm-rubygem-foreman_rh_cloud-2.0.7-1.fm2_0.el7.noarch.rpm

I can see the spec file, and I see the same Obsoletes statements there.

I think this is a problem with the 2.0 foreman-installer (which is expecting a plugin named inventory_upload), or the old inventory_upload rpm not being present in the katello 3.15 repo.

I tried comparing the 2.1 foreman-installer with 2.0 and adding some of the changes for rh_cloud, but I was still running into an error that said

No Puppet module parser is installed and no cache of the file /usr/share/foreman-installer/modules/foreman/manifests/plugin/rh_cloud.pp is available.

Even though I created that file and it existed.

I figured upgrading the foreman-installer to 2.1 would fix the issue, but wasn’t sure if it was ok to use on katello 3.15, so I just went ahead and also upgraded to 3.16 RC4, ran foreman-installer and it was able to complete without issue.