Project

General

Profile

Bug #23212

Changing power state gives: NameError: uninitialized constant Fog::Compute::Ovirt

Added by J. A. about 1 year ago. Updated 11 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Difficulty:
Triaged:
Bugzilla link:
Team Backlog:
Fixed in Releases:
Found in Releases:

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)


Related issues

Related to Foreman - Bug #22546: CVE-2018-1097: curl api to change power state on ovirt compute_resource exposes credentialsClosed2018-02-10
Has duplicate Foreman - Bug #23428: [1.17.0] VMWare: Hammer: Host creation error: uninitialized constant Fog::Compute::OvirtDuplicate2018-04-27

History

#1 Updated by Alexander Olofsson about 1 year 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

#2 Updated by The Foreman Bot about 1 year ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/5442 added

#3 Updated by J. A. about 1 year 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.

#4 Updated by Ondřej Pražák about 1 year ago

  • Legacy Backlogs Release (now unused) set to 297

#5 Updated by Michael Moll about 1 year ago

  • Related to Bug #22546: CVE-2018-1097: curl api to change power state on ovirt compute_resource exposes credentials added

#6 Updated by Michael Moll about 1 year ago

  • Legacy Backlogs Release (now unused) changed from 297 to 332
  • Status changed from Ready For Testing to Closed

cherry-picked into stable branches <1.18

#7 Updated by Tomer Brisker about 1 year ago

  • Legacy Backlogs Release (now unused) changed from 332 to 359

#8 Updated by Michael Moll about 1 year ago

  • Has duplicate Bug #23428: [1.17.0] VMWare: Hammer: Host creation error: uninitialized constant Fog::Compute::Ovirt added

Also available in: Atom PDF