Revision a7f4dad2
Added by Daniel Lobato Garcia over 7 years ago
app/controllers/application_controller.rb | ||
---|---|---|
end
|
||
|
||
def smart_proxy_exception(exception = nil)
|
||
process_error(:redirect => :back, :error_msg => exception.message)
|
||
Foreman::Logging.exception("ProxyAPI operation FAILED", exception)
|
||
if request.headers.include? 'HTTP_REFERER'
|
||
process_error(:redirect => :back, :error_msg => exception.message)
|
||
else
|
||
process_error(:render => { :text => exception.message },
|
||
:error_msg => exception.message)
|
||
end
|
||
end
|
||
|
||
# this method sets the Current user to be the Admin
|
Also available in: Unified diff
Fixes #17864 - Show smart proxy errors on unattended fail
If your proxy is has some error (like misconfigured sudoers, puppet not
available, etc...) and you try to boot a host through unattended
mode [1], the exception will not show up when you try to fetch the
kickstart template. Instead, it will show something like No HTTP_REFERER
was set in the request to this action, so redirect_to :back could not be
called successfully.
The application controller should be aware of this situation and don't
try to redirect to back in it, instead just render the error.
[1] an example of such error - ProxyAPI::ProxyException: ERF12-0104
[ProxyAPI::ProxyException]: Unable to set PuppetCA autosign for
tonia-rippeon.lobatolan.home ([RestClient::NotAcceptable]: 406 Not
Acceptable) for proxy
https://centos7-devel.lobatolan.home:9090/puppet/ca