Bug #23212
closedChanging power state gives: NameError: uninitialized constant Fog::Compute::Ovirt
Description
Powering on or off a host linked to a VM in vCenter, by pressing the "power <on/off>" button on the host's page, results in the popup:
Failed to stop <hostname here>: uninitialized constant Fog::Compute::Ovirt
The Foreman log contains:
2018-04-11T10:30:40 d293c7e2 [app] [W] Failed to fetch power status | NameError: uninitialized constant Fog::Compute::Ovirt | /usr/share/foreman/app/services/power_manager/virt.rb:35:in `default_action' | /usr/share/foreman/app/services/power_manager/base.rb:25:in `block (2 levels) in <class:Base>' | /usr/share/foreman/app/models/concerns/hostext/power_interface.rb:22:in `supports_power_and_running?' | /usr/share/foreman/app/controllers/hosts_controller.rb:918:in `block in host_power_ping' | /usr/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout' | /usr/lib/ruby/2.3.0/timeout.rb:33:in `block in catch' | /usr/lib/ruby/2.3.0/timeout.rb:33:in `catch' | /usr/lib/ruby/2.3.0/timeout.rb:33:in `catch' | /usr/lib/ruby/2.3.0/timeout.rb:106:in `timeout' | /usr/share/foreman/app/controllers/hosts_controller.rb:917:in `host_power_ping' | /usr/share/foreman/app/controllers/hosts_controller.rb:276:in `get_power_state' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal/implicit_render.rb:4:in `send_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/abstract_controller/base.rb:198:in `process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal/rendering.rb:10:in `process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/abstract_controller/callbacks.rb:20:in `block in process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:117:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:505:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /usr/share/foreman/app/controllers/concerns/application_shared.rb:15:in `set_timezone' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:432:in `block in make_lambda' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:312:in `block in halting' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:497:in `block in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:505:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:432:in `block in make_lambda' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:312:in `block in halting' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:497:in `block in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:505:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:432:in `block in make_lambda' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:312:in `block in halting' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:497:in `block in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:505:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /usr/share/foreman/vendor/ruby/2.3.0/gems/audited-4.5.0/lib/audited/sweeper.rb:14:in `around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:455:in `public_send' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:455:in `block in make_lambda' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:312:in `block in halting' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:497:in `block in around' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:505:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:92:in `__run_callbacks__' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:81:in `run_callbacks' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/abstract_controller/callbacks.rb:19:in `process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal/rescue.rb:29:in `process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/notifications.rb:164:in `block in instrument' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/notifications/instrumenter.rb:20:in `instrument' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/notifications.rb:164:in `instrument' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal/instrumentation.rb:30:in `process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal/params_wrapper.rb:250:in `process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activerecord-4.2.9/lib/active_record/railties/controller_runtime.rb:18:in `process_action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/abstract_controller/base.rb:137:in `process' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionview-4.2.9/lib/action_view/rendering.rb:30:in `process' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal.rb:196:in `dispatch' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_controller/metal.rb:237:in `block in action' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/routing/route_set.rb:74:in `dispatch' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/routing/route_set.rb:43:in `serve' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/journey/router.rb:43:in `block in serve' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/journey/router.rb:30:in `each' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/journey/router.rb:30:in `serve' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/routing/route_set.rb:817:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.7/lib/apipie/static_dispatcher.rb:65:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.7/lib/apipie/extractor/recorder.rb:136:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.7/lib/apipie/middleware/checksum_in_headers.rb:27:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/etag.rb:24:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/conditionalget.rb:25:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/head.rb:13:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/params_parser.rb:27:in `call' | /usr/share/foreman/lib/middleware/catch_json_parse_errors.rb:8:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/flash.rb:260:in `call' | /usr/share/foreman/lib/middleware/session_safe_logging.rb:17:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/session/abstract/id.rb:225:in `context' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/session/abstract/id.rb:220:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/cookies.rb:560:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activerecord-4.2.9/lib/active_record/query_cache.rb:36:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activerecord-4.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:88:in `__run_callbacks__' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:778:in `_run_call_callbacks' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/callbacks.rb:81:in `run_callbacks' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/callbacks.rb:27:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/remote_ip.rb:78:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.9/lib/rails/rack/logger.rb:38:in `call_app' | /usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.9/lib/rails/rack/logger.rb:22:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call' | /usr/share/foreman/lib/middleware/tagged_logging.rb:18:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/request_id.rb:21:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/methodoverride.rb:22:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/runtime.rb:18:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.9/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.9/lib/action_dispatch/middleware/static.rb:120:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/sendfile.rb:113:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/secure_headers-3.7.3/lib/secure_headers/middleware.rb:12:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.9/lib/rails/engine.rb:518:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.9/lib/rails/application.rb:165:in `call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.9/lib/rails/railtie.rb:194:in `public_send' | /usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.9/lib/rails/railtie.rb:194:in `method_missing' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/urlmap.rb:66:in `block in call' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/urlmap.rb:50:in `each' | /usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.9/lib/rack/urlmap.rb:50:in `call' | /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:97:in `process_request' | /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:152:in `accept_and_process_next_request' | /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:113:in `main_loop' | /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:416:in `block (3 levels) in start_threads' | /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception' | /usr/share/foreman/vendor/ruby/2.3.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
This started happening after upgrading from 1.15.6 to 1.16.1. I do not have any Ovirt compute resources configured, only a VMware one.
Note that the requested power operation still goes through to vCenter, but the page fails to update the power status without refreshing the page (which works without error).
If any workarounds exist I would greatly appreciate knowing about them! (do I need to install foreman-ovirt? I only have the foreman-vmware provider installed)
Updated by Alexander Olofsson over 6 years ago
The issue seems to occur due to the fix for #22546 - https://github.com/theforeman/foreman/commit/a951f9bdbea54cdc2520bee8117cb122e24aca9e
Since we don't use Ovirt either, a quick fix was to just revert the changes from said patch.
A more proper solution would probably be to replace the check with something alike;
if Fog::Compute.const_defined?(:Ovirt) && action_status.is_a?(Fog::Compute::Ovirt::Server) return true end
Updated by The Foreman Bot over 6 years ago
- Status changed from New to Ready For Testing
- Pull request https://github.com/theforeman/foreman/pull/5442 added
Updated by J. A. over 6 years ago
Thanks for the quick response! As a temporary workaround I installed the `foreman-ovirt` package and restarted Foreman, and now the error message is gone.
Updated by Ondřej Pražák over 6 years ago
- Translation missing: en.field_release set to 297
Updated by Anonymous over 6 years ago
- Related to Bug #22546: CVE-2018-1097: curl api to change power state on ovirt compute_resource exposes credentials added
Updated by Anonymous over 6 years ago
- Status changed from Ready For Testing to Closed
- Translation missing: en.field_release changed from 297 to 332
cherry-picked into stable branches <1.18
Updated by Tomer Brisker over 6 years ago
- Translation missing: en.field_release changed from 332 to 359
Updated by Anonymous over 6 years ago
- Has duplicate Bug #23428: [1.17.0] VMWare: Hammer: Host creation error: uninitialized constant Fog::Compute::Ovirt added