Bug #36920
closedkatello:reimport fails with "TypeError: no implicit conversion of String into Integer" when there are product contents to move
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=2225534
Description of problem:
foreman-rake katello:reimport would fail while importing "Katello::Content" and the failure is only observed when there are product contents to move and https://github.com/Katello/katello/blob/KATELLO-4.8/app/services/katello/product_content_importer.rb#L37-L44 code is triggered.
Version-Release number of selected component (if applicable):
Satellite 6.13.1
How reproducible:
Only on Customer's environment
Steps to Reproduce:
NA
Actual results:
- foreman-rake katello:reimport --trace
- Invoke katello:reimport (first_time)
- Invoke dynflow:client (first_time)
- Invoke environment (first_time)
- Execute environment
- Execute dynflow:client
- Invoke katello:check_ping (first_time)
- Invoke environment
- Invoke dynflow:client
- Execute katello:check_ping
- Execute katello:reimport
Importing Katello::Subscription
Importing Katello::Pool
Importing Katello::Content
rake aborted!
TypeError: no implicit conversion of String into Integer
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:39:in `[]'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:39:in `block in find_product_for_content'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:38:in `each'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:38:in `find'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:38:in `find_product_for_content'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:66:in `block in handle_product_moves'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:63:in `each'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:63:in `handle_product_moves'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:84:in `block in import'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:83:in `each'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:83:in `import'
/usr/share/gems/gems/katello-4.7.0.25/app/models/katello/content.rb:55:in `block in import_all'
Expected results:
No such errors
Additional info:
For this specific user, following change fixed the issue:
diff --git a/app/services/katello/product_content_importer.rb b/app/services/katello/product_content_importer.rb
index b5e345e..6757768 100644
--- a/app/services/katello/product_content_importer.rb
+++ b/app/services/katello/product_content_importer.rb@ -36,7 +36,7
@ module Katello
def find_product_for_content(content_id)
prod = @cp_products.find do |prod_json|
- prod_json['productContent'].any? do |product_content_json|
+ prod_json.first&.[]('productContent')&.any? do |product_content_json|
product_content_json["content"]["id"] == content_id
end
end
See next comments for more information.
Updated by The Foreman Bot about 1 year ago
- Status changed from New to Ready For Testing
- Assignee set to Samir Jha
- Pull request https://github.com/Katello/katello/pull/10798 added
Updated by Quinn James about 1 year ago
- Subject changed from katello:reimport fails with "TypeError: no implicit conversion of String into Integer" when there are product contents to move to katello:reimport fails with "TypeError: no implicit conversion of String into Integer" when there are product contents to move
- Target version set to Katello 4.11.0
- Triaged changed from No to Yes
Updated by The Foreman Bot about 1 year ago
- Fixed in Releases Katello 4.11.0 added
Updated by Samir Jha about 1 year ago
- Status changed from Ready For Testing to Closed
Applied in changeset katello|12c3f778b327dbaca310fb22153297e228b8e0be.
Updated by The Foreman Bot 12 months ago
- Pull request https://github.com/Katello/katello/pull/10822 added