Improve error message when media is not set properly
When media is not set or not available via taxonomy, we generate error trace:
2016-08-05 12:28:16 [app] [W] Fetch TFTP boot files for mac52540028624f.lab.eng.rdu2.redhat.com task failed with the following error: undefined method `path' for nil:NilClass | NoMethodError: undefined method `path' for nil:NilClass | /usr/share/foreman/app/models/operatingsystem.rb:121:in `medium_uri' | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-22.214.171.124/app/models/katello/concerns/redhat_extensions.rb:52:in `medium_uri_with_content_uri' | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-126.96.36.199/app/models/katello/concerns/redhat_extensions.rb:86:in `block in boot_files_uri_with_content' | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-188.8.131.52/app/models/katello/concerns/redhat_extensions.rb:85:in `collect' | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-184.108.40.206/app/models/katello/concerns/redhat_extensions.rb:85:in `boot_files_uri_with_content' | /usr/share/foreman/app/models/operatingsystem.rb:183:in `pxe_files' | /usr/share/foreman/app/models/concerns/orchestration/tftp.rb:78:in `setTFTPBootFiles' | /usr/share/foreman/app/models/concerns/orchestration.rb:162:in `execute' | /usr/share/foreman/app/models/concerns/orchestration.rb:107:in `block in process' | /usr/share/foreman/app/models/concerns/orchestration.rb:99:in `each' | /usr/share/foreman/app/models/concerns/orchestration.rb:99:in `process' | /usr/share/foreman/app/models/concerns/orchestration.rb:35:in `on_save'
We should catch for exceptions in the orchestration code and issue error.
#5 Updated by Dominic Cleal about 3 years ago
- Project changed from Foreman to Katello
- Category deleted (
This is already implemented in boot_files_uri in #15439, but the stack trace above looks like the issue is introduced by Katello which is not deferring to the original boot_files_uri method containing the safety checks.
I'd suggest whatever checks are in Foreman should be applied to Katello, or it should call, not override, the original method.
#6 Updated by Lukas Zapletal about 3 years ago
- Category set to Content Views
- Difficulty set to trivial
Oh right, I had this feeling I was fixing this already! Thanks. Over to Katello folks! Easy one.
For the record, the required change is to run through these checks when overriding the method: https://github.com/theforeman/foreman/pull/3597/files