Bug 1253134 - (LoadError) cannot load such file -- workers/event_catcher_openstack on adding openstack provider
(LoadError) cannot load such file -- workers/event_catcher_openstack on addi...
Status: CLOSED ERRATA
Product: Red Hat CloudForms Management Engine
Classification: Red Hat
Component: Providers (Show other bugs)
5.5.0
Unspecified Unspecified
medium Severity medium
: GA
: 5.5.0
Assigned To: Greg Blomquist
Aziza Karol
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2015-08-13 01:09 EDT by Aziza Karol
Modified: 2015-12-08 08:26 EST (History)
6 users (show)

See Also:
Fixed In Version: 5.5.0.1
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-12-08 08:26:55 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:2551 normal SHIPPED_LIVE Moderate: CFME 5.5.0 bug fixes and enhancement update 2015-12-08 12:58:09 EST

  None (edit)
Description Aziza Karol 2015-08-13 01:09:34 EDT
Description of problem:


Version-Release number of selected component (if applicable):
master.20150706021142_4037e35 

How reproducible:
100%

Steps to Reproduce:
1.Navigate to infrastructure->provider
2.Add openstack provider
3.

Actual results:
cannot load such file -- workers/ems_refresh_worker_openstack (LoadError) displayed in Evm.log

Expected results:


Additional info:
evm.log:

. (called from block in tsort_each at /opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/tsort.rb:226)
[----] I, [2015-08-13T00:29:07.123761 #385:749988]  INFO -- : MIQ(Vmdb::Loggers.apply_config) Log level for vim.log has been changed to [WARN]
DEPRECATION WARNING: You did not specify a `log_level` in `production.rb`. Currently, the default value for `log_level` is `:info` for the production environment and `:debug` in all other environments. In Rails 5 the default value will be unified to `:debug` across all environments. To preserve the current setting, add the following line to your `production.rb`:

   config.log_level = :info

. (called from block in tsort_each at /opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/tsort.rb:226)
[----] I, [2015-08-13T00:29:07.987899 #366:98f990]  INFO -- : MIQ(Vmdb::Initializer.init) - Program Name: /var/www/miq/vmdb/bin/rails, PID: 366, ENV['MIQ_GUID']: d36c8f58-4173-11e5-9f3e-005056965976, ENV['EVMSERVER']: true
[----] I, [2015-08-13T00:29:08.560931 #385:749988]  INFO -- : MIQ(Vmdb::Initializer.init) - Program Name: /var/www/miq/vmdb/bin/rails, PID: 385, ENV['MIQ_GUID']: d3db1388-4173-11e5-9f3e-005056965976, ENV['EVMSERVER']: true
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require': cannot load such file -- workers/ems_refresh_worker_openstack (LoadError)
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `block in require'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require'
	from /var/www/miq/vmdb/lib/workers/bin/worker.rb:2:in `<top (required)>'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/runner.rb:60:in `load'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/runner.rb:60:in `<top (required)>'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:123:in `require'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:123:in `require_command!'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:90:in `runner'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands.rb:17:in `<top (required)>'
	from /var/www/miq/vmdb/bin/rails:4:in `require'
	from /var/www/miq/vmdb/bin/rails:4:in `<main>'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require': cannot load such file -- workers/event_catcher_openstack (LoadError)
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `block in require'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require'
	from /var/www/miq/vmdb/lib/workers/bin/worker.rb:2:in `<top (required)>'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/runner.rb:60:in `load'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/runner.rb:60:in `<top (required)>'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:123:in `require'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:123:in `require_command!'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:90:in `runner'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
	from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.3/lib/rails/commands.rb:17:in `<top (required)>'
	from /var/www/miq/vmdb/bin/rails:4:in `require'
	from /var/www/miq/vmdb/bin/rails:4:in `<main>'
Comment 4 Greg Blomquist 2015-08-26 14:30:38 EDT
https://github.com/ManageIQ/manageiq/pull/4052
Comment 5 CFME Bot 2015-09-02 12:10:50 EDT
New commit detected on ManageIQ/manageiq/master:
https://github.com/ManageIQ/manageiq/commit/d4ced59ee99063cee244dfe3e81af98c97acd9e8

commit d4ced59ee99063cee244dfe3e81af98c97acd9e8
Author:     Greg Blomquist <gblomqui@redhat.com>
AuthorDate: Tue Aug 25 16:11:13 2015 -0400
Commit:     Greg Blomquist <gblomqui@redhat.com>
CommitDate: Thu Aug 27 09:14:52 2015 -0400

    [Namespacing] Ensure that workers require runners
    
    If workers do not `require_dependency` their runners, the
    `const_defined?(:Runner, false)` call in `corresponding_runner` will fail to
    find the appropriate runner class when starting up the worker.
    
    This results in finding the "legacy" worker runner.  For instace, with the
    legacy MiqEventCatcherOpenstack, the corresponding runner used to be
    'workers/event_catcher_openstack'.  However, after the namespacing of OpenStack
    CloudManager, the worker is
    ManageIQ::Providers::Openstack::CloudManager::EventCatcher and the corresponding
    runner is ManageIQ::Providers::Openstack::CloudManager::EventCatcher::Runner.
    
    When `corresponding_runner` fails to find the appropriately namespaced runner
    class, it throws errors like:
    
    > (LoadError) cannot load such file -- workers/event_catcher_openstack on adding
    > openstack provider
    
    (Upstream only)
    https://bugzilla.redhat.com/show_bug.cgi?id=1253134

 .../configuration_manager/refresh_worker.rb        |  2 ++
 .../foreman/provisioning_manager/refresh_worker.rb |  2 ++
 .../openstack/cloud_manager/event_catcher.rb       |  2 ++
 .../cloud_manager/metrics_collector_worker.rb      |  2 ++
 .../openstack/cloud_manager/refresh_worker.rb      |  2 ++
 .../openstack/infra_manager/event_catcher.rb       |  2 ++
 .../infra_manager/event_catcher/runner.rb          |  2 +-
 .../infra_manager/metrics_collector_worker.rb      |  2 ++
 .../openstack/infra_manager/refresh_worker.rb      |  2 ++
 spec/models/miq_worker_spec.rb                     | 30 ++++++++++++++++++++++
 10 files changed, 47 insertions(+), 1 deletion(-)
Comment 6 CFME Bot 2015-09-02 12:10:54 EDT
New commit detected on ManageIQ/manageiq/master:
https://github.com/ManageIQ/manageiq/commit/25c6dd53564a0ea528dc0df04ebdd31c47758bbb

commit 25c6dd53564a0ea528dc0df04ebdd31c47758bbb
Author:     Greg Blomquist <gblomqui@redhat.com>
AuthorDate: Tue Aug 25 16:17:35 2015 -0400
Commit:     Greg Blomquist <gblomqui@redhat.com>
CommitDate: Thu Aug 27 09:14:52 2015 -0400

    [Namespacing] Fix namespaced EventCatcherMixin
    
    The EventCatcherMixin for Openstack was located at:
    
    `manageiq/providers/openstack/event_catcher_mixin.rb`
    
    But, the namespaced classname was:
    
    `ManageIQ::Providers::Openstack::CloudManager::EventCatcherMixin`
    
    I'm guessing that this may have been changed after the OpenStack Infra Manager
    was namespaced.
    
    (Upstream only)
    https://bugzilla.redhat.com/show_bug.cgi?id=1253134

 app/models/manageiq/providers/openstack/event_catcher_mixin.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 10 Aziza Karol 2015-11-19 05:46:20 EST
No error displayed on adding openstack infra provider.

Verified:
5.5.0.11-rc1.20151117182049_653c0d4
Comment 12 errata-xmlrpc 2015-12-08 08:26:55 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2015:2551

Note You need to log in before you can comment on or make changes to this bug.