Bug 1583844 - Unable to access tower job .normalized_live_status because "wrong constant name ::Dev::Xvda"
Summary: Unable to access tower job .normalized_live_status because "wrong constant na...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat CloudForms Management Engine
Classification: Red Hat
Component: Automate
Version: 5.9.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: GA
: 5.10.0
Assignee: Bill Wei
QA Contact: Nandini Chandra
URL:
Whiteboard:
Depends On:
Blocks: 1599350
TreeView+ depends on / blocked
 
Reported: 2018-05-29 21:39 UTC by Jeff Warnica
Modified: 2019-02-12 18:02 UTC (History)
11 users (show)

Fixed In Version: 5.10.0.4
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1599350 (view as bug list)
Environment:
Last Closed: 2019-02-11 14:03:36 UTC
Category: ---
Cloudforms Team: CFME Core
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Jeff Warnica 2018-05-29 21:39:02 UTC
I have a simple ansible tower job which creates an AWS EC2 instance. From automate, this error is triggered from `job.normalized_live_status`. I can also trigger this from the rails console per below, with the single entry in evm.log 

[----] E, [2018-05-29T16:34:22.427519 #27095:eb710c] ERROR -- : MIQ(ManageIQ::Providers::AnsibleTower::AutomationManager::Job#refresh_ems) Refreshing job(AWS Create Instance, ems_ref=404), error: wrong constant name ::Dev::Xvda


irb(main):024:0> x = ManageIQ::Providers::AnsibleTower::AutomationManager::Job.where(ems_ref: 404).first
=> #<ManageIQ::Providers::AnsibleTower::AutomationManager::Job id: 99000000000091, name: "AWS Create Instance", type: "ManageIQ::Providers::AnsibleTower::AutomationManag...", description: nil, status: "pending", ems_ref: "404", ancestry: nil, ems_id: 99000000000004, orchestration_template_id: 99000000000015, created_at: "2018-05-29 19:26:04", updated_at: "2018-05-29 19:26:04", retired: nil, retires_on: nil, retirement_warn: nil, retirement_last_warn: nil, retirement_state: nil, retirement_requester: nil, status_reason: nil, cloud_tenant_id: nil, resource_group: nil, start_time: nil, finish_time: nil, configuration_script_base_id: nil, verbosity: 0, hosts: nil>
irb(main):025:0> x.refresh_ems
MiqException::MiqOrchestrationUpdateError: wrong constant name ::Dev::Xvda
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/base_model.rb:169:in `const_set'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/base_model.rb:169:in `hash_to_model'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:61:in `convert_value'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `block in initialize'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `each'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `collect'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `initialize'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/base_model.rb:41:in `initialize'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/base_model.rb:171:in `new'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/base_model.rb:171:in `hash_to_model'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:61:in `convert_value'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `block in initialize'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `each'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `collect'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/hash_model.rb:85:in `initialize'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/base_model.rb:41:in `initialize'
... 17 levels...
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/base_model.rb:41:in `initialize'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/collection.rb:70:in `new'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/collection.rb:70:in `build_object'
	from /opt/rh/cfme-gemset/gems/ansible_tower_client-0.13.0/lib/ansible_tower_client/collection.rb:31:in `find'
	from /opt/rh/cfme-gemset/bundler/gems/cfme-providers-ansible_tower-890dc706bd81/app/models/manageiq/providers/ansible_tower/shared/automation_manager/job.rb:76:in `block in refresh_ems'
	from /var/www/miq/vmdb/app/models/provider.rb:49:in `with_provider_connection'
	from /opt/rh/cfme-gemset/bundler/gems/cfme-providers-ansible_tower-890dc706bd81/app/models/manageiq/providers/ansible_tower/shared/automation_manager.rb:5:in `with_provider_connection'
	from /opt/rh/cfme-gemset/bundler/gems/cfme-providers-ansible_tower-890dc706bd81/app/models/manageiq/providers/ansible_tower/shared/automation_manager/job.rb:75:in `refresh_ems'
	from (irb):25
	from /opt/rh/cfme-gemset/gems/railties-5.0.6/lib/rails/commands/console.rb:65:in `start'
	from /opt/rh/cfme-gemset/gems/railties-5.0.6/lib/rails/commands/console_helper.rb:9:in `start'
	from /opt/rh/cfme-gemset/gems/railties-5.0.6/lib/rails/commands/commands_tasks.rb:78:in `console'
	from /opt/rh/cfme-gemset/gems/railties-5.0.6/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
	from /opt/rh/cfme-gemset/gems/railties-5.0.6/lib/rails/commands.rb:18:in `<top (required)>'
	from bin/rails:4:in `require'
	from bin/rails:4:in `<main>'


In tower, the job has finished fine.

I theorize the low level tower libraries are trying to do magic manipulation of the job results.

Note: The job outputs "stats", which may be the weirdness. (I can't believe I'm the first one to create an ec2 instance with a /dev/xvda in it.

Comment 2 Jeff Warnica 2018-05-30 13:41:58 UTC
Some quick testing this morning demonstrates to me that this problem does not occur if I remove the "set_stats" task in the referenced playbook.

Comment 6 CFME Bot 2018-07-06 18:17:39 UTC
New commit detected on ansible/ansible_tower_client_ruby/master:

https://github.com/ManageIQ/ansible_tower_client/commit/6993b251c28551e9af52ef38d406b4019a035245
commit 6993b251c28551e9af52ef38d406b4019a035245
Author:     Bill Wei <bilwei>
AuthorDate: Wed May 30 17:37:38 2018 -0400
Commit:     Bill Wei <bilwei>
CommitDate: Wed May 30 17:37:38 2018 -0400

    Replace all characters that cannot be used as method or class name

    fixes https://bugzilla.redhat.com/show_bug.cgi?id=1583844

 lib/ansible_tower_client/hash_model.rb | 3 +-
 spec/base_model_spec.rb | 4 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

Comment 8 CFME Bot 2018-07-27 22:33:17 UTC
New commit detected on ManageIQ/manageiq-providers-ansible_tower/master:

https://github.com/ManageIQ/manageiq-providers-ansible_tower/commit/12b7b48257f9a4e04051ab6fed06d0d8ae94287d
commit 12b7b48257f9a4e04051ab6fed06d0d8ae94287d
Author:     Bill Wei <bilwei>
AuthorDate: Thu Jul 12 15:16:22 2018 -0400
Commit:     Bill Wei <bilwei>
CommitDate: Thu Jul 12 15:16:22 2018 -0400

    ansible tower client gem dependency updated to 0.17

    fixes https://bugzilla.redhat.com/show_bug.cgi?id=1583844

 manageiq-providers-ansible_tower.gemspec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comment 11 Nandini Chandra 2019-01-25 21:50:37 UTC
1)Verified that Ansible Tower Client gem dependency has been updated to 0.19 on a 5.10.0.32 appliance.

Snippet from /var/www/miq/vmdb/Gemfile.lock

GIT
  remote: git.lab.eng.rdu2.redhat.com:cloudforms/cfme-providers-ansible_tower
  revision: 35fb111634e6bfb0b7d444b4a9cb220bb2746f33
  branch: 5.10.z
  specs:
    manageiq-providers-ansible_tower (0.1.0)
      ansible_tower_client (~> 0.19)

2)Unable to reproduce issue on an appliance without the fix.Marking BZ as VERIFIED.


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