-
Bug
-
Resolution: Done
-
Normal
-
6.13.1
-
False
-
-
False
-
CLOSED
-
950
-
Phoenix
-
-
-
Sprint 119, Sprint 120, Sprint 121, Sprint 122, Sprint 123, Sprint 124, Sprint 125, Sprint 126, Sprint 127, Sprint 128, Sprint 129, Sprint 130, Sprint 131, Sprint 132
-
Moderate
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.