Bug 1533630 - ERROR -- : AnsibleTowerClient::Middleware::RaiseTowerError Response Body: {"detail"=>["'username' is not a valid field for Vault"]}
Summary: ERROR -- : AnsibleTowerClient::Middleware::RaiseTowerError Response Body: {"d...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat CloudForms Management Engine
Classification: Red Hat
Component: Providers
Version: 5.9.0
Hardware: All
OS: All
high
medium
Target Milestone: GA
: 5.10.0
Assignee: James Wong
QA Contact: Satyajit Bulage
URL:
Whiteboard:
: 1533535 1534096 (view as bug list)
Depends On:
Blocks: 1561107
TreeView+ depends on / blocked
 
Reported: 2018-01-11 19:46 UTC by Kevin Morey
Modified: 2019-02-11 14:06 UTC (History)
15 users (show)

Fixed In Version: 5.10.0.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1561107 (view as bug list)
Environment:
Last Closed: 2019-02-11 14:06:28 UTC
Category: ---
Cloudforms Team: Ansible
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
screenshot (40.47 KB, image/png)
2018-01-11 19:46 UTC, Kevin Morey
no flags Details

Description Kevin Morey 2018-01-11 19:46:22 UTC
Created attachment 1380213 [details]
screenshot

Description of problem:
as of 5.9.0.16 i am unable to create a machine credential with a vault password. This is a show stopper.

Version-Release number of selected component (if applicable):
5.9.0.16

How reproducible:
100%

Steps to Reproduce:
1. enable the embedded ansible role
2. create a machine credential with a vault password
3.

Actual results:


Expected results:


evm.log:
[----] E, [2018-01-11T11:38:17.767690 #2640:70312c] ERROR -- : AnsibleTowerClient::Middleware::RaiseTowerError Response Body:
{"detail"=>["'username' is not a valid field for Vault"]}

[----] I, [2018-01-11T11:38:17.768127 #2640:70312c]  INFO -- : MIQ(ManageIQ::Providers::EmbeddedAnsible::AutomationManager::MachineCredential.notify) ManageIQ::Providers::EmbeddedAnsible::AutomationManager::MachineCredential in_provider update with parameters: name=root-machine failed
[----] E, [2018-01-11T11:38:17.777784 #2640:70312c] ERROR -- : MIQ(MiqQueue#deliver) Message id: [26478], Error: [{"detail":["'username' is not a valid field for Vault"]}]
[----] E, [2018-01-11T11:38:17.777930 #2640:70312c] ERROR -- : [AnsibleTowerClient::ClientError]: {"detail":["'username' is not a valid field for Vault"]}  Method:[block in method_missing]
[----] E, [2018-01-11T11:38:17.778016 #2640:70312c] ERROR -- : /opt/rh/cfme-gemset/gems/ansible_tower_client-0.12.2/lib/ansible_tower_client/middleware/raise_tower_error.rb:23:in `on_complete'
/opt/rh/cfme-gemset/gems/faraday-0.9.2/lib/faraday/response.rb:9:in `block in call'
/opt/rh/cfme-gemset/gems/faraday-0.9.2/lib/faraday/response.rb:57:in `on_complete'
/opt/rh/cfme-gemset/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
/opt/rh/cfme-gemset/gems/faraday-0.9.2/lib/faraday/request/url_encoded.rb:15:in `call'
/opt/rh/cfme-gemset/gems/faraday_middleware-0.10.1/lib/faraday_middleware/response/follow_redirects.rb:76:in `perform_with_redirection'
/opt/rh/cfme-gemset/gems/faraday_middleware-0.10.1/lib/faraday_middleware/response/follow_redirects.rb:64:in `call'
/opt/rh/cfme-gemset/gems/faraday_middleware-0.10.1/lib/faraday_middleware/request/encode_json.rb:23:in `call'
/opt/rh/cfme-gemset/gems/faraday-0.9.2/lib/faraday/rack_builder.rb:139:in `build_response'
/opt/rh/cfme-gemset/gems/faraday-0.9.2/lib/faraday/connection.rb:377:in `run_request'
/opt/rh/cfme-gemset/gems/faraday-0.9.2/lib/faraday/connection.rb:177:in `patch'
/opt/rh/cfme-gemset/gems/ansible_tower_client-0.12.2/lib/ansible_tower_client/api.rb:91:in `method_missing'
/opt/rh/cfme-gemset/gems/ansible_tower_client-0.12.2/lib/ansible_tower_client/base_model.rb:83:in `update_attributes!'
/opt/rh/cfme-gemset/bundler/gems/manageiq-providers-ansible_tower-bb92de8247db/app/models/manageiq/providers/ansible_tower/shared/automation_manager/tower_api.rb:77:in `block in update_in_provider'
/var/www/miq/vmdb/app/models/mixins/provider_object_mixin.rb:15:in `block in with_provider_object'
/var/www/miq/vmdb/app/models/provider.rb:49:in `with_provider_connection'
/opt/rh/cfme-gemset/bundler/gems/manageiq-providers-ansible_tower-bb92de8247db/app/models/manageiq/providers/ansible_tower/shared/automation_manager.rb:5:in `with_provider_connection'
/var/www/miq/vmdb/app/models/mixins/provider_object_mixin.rb:12:in `with_provider_object'
/opt/rh/cfme-gemset/bundler/gems/manageiq-providers-ansible_tower-bb92de8247db/app/models/manageiq/providers/ansible_tower/shared/automation_manager/tower_api.rb:76:in `update_in_provider'
/var/www/miq/vmdb/app/models/miq_queue.rb:449:in `block in dispatch_method'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:91:in `block in timeout'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:33:in `block in catch'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:33:in `catch'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:33:in `catch'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:106:in `timeout'
/var/www/miq/vmdb/app/models/miq_queue.rb:448:in `dispatch_method'
/var/www/miq/vmdb/app/models/miq_queue.rb:425:in `block in deliver'
/var/www/miq/vmdb/app/models/user.rb:253:in `with_user_group'
/var/www/miq/vmdb/app/models/miq_queue.rb:425:in `deliver'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:104:in `deliver_queue_message'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:134:in `deliver_message'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:152:in `block in do_work'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:146:in `loop'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:146:in `do_work'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:329:in `block in do_work_loop'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:326:in `loop'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:326:in `do_work_loop'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:153:in `run'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:127:in `start'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:22:in `start_worker'
/var/www/miq/vmdb/app/models/miq_worker.rb:357:in `block in start_runner_via_fork'
/opt/rh/cfme-gemset/gems/nakayoshi_fork-0.0.3/lib/nakayoshi_fork.rb:24:in `fork'
/opt/rh/cfme-gemset/gems/nakayoshi_fork-0.0.3/lib/nakayoshi_fork.rb:24:in `fork'
/var/www/miq/vmdb/app/models/miq_worker.rb:355:in `start_runner_via_fork'
/var/www/miq/vmdb/app/models/miq_worker.rb:349:in `start_runner'
/var/www/miq/vmdb/app/models/miq_worker.rb:396:in `start'
/var/www/miq/vmdb/app/models/miq_worker.rb:266:in `start_worker'
/var/www/miq/vmdb/app/models/miq_worker.rb:153:in `block in sync_workers'
/var/www/miq/vmdb/app/models/miq_worker.rb:153:in `times'
/var/www/miq/vmdb/app/models/miq_worker.rb:153:in `sync_workers'
/var/www/miq/vmdb/app/models/miq_server/worker_management/monitor.rb:53:in `block in sync_workers'
/var/www/miq/vmdb/app/models/miq_server/worker_management/monitor.rb:50:in `each'
/var/www/miq/vmdb/app/models/miq_server/worker_management/monitor.rb:50:in `sync_workers'
/var/www/miq/vmdb/app/models/miq_server.rb:141:in `start'
/var/www/miq/vmdb/app/models/miq_server.rb:233:in `start'
/var/www/miq/vmdb/lib/workers/evm_server.rb:27:in `start'
/var/www/miq/vmdb/lib/workers/evm_server.rb:48:in `start'
/var/www/miq/vmdb/lib/workers/bin/evm_server.rb:4:in `<main>'
[----] I, [2018-01-11T11:38:17.778124 #2640:70312c]  INFO -- : MIQ(MiqQueue#delivered) Message id: [26478], State: [error], Delivered in [0.177994691] seconds
[----] I, [2018-01-11T11:38:17.779056 #2640:70312c]  INFO -- : MIQ(MiqQueue#m_callback) Message id: [26478], Invoking Callback with args: ["Finished", "error", "{\"detail\":[\"'username' is not a valid field for Vault\"]}", "nil"]
[----] I, [2018-01-11T11:38:17.779195 #2640:70312c]  INFO -- : MIQ(MiqTask#update_status) Task: [68] [Finished] [Error] [{"detail":["'username' is not a valid field for Vault"]}]

Comment 3 Greg McCullough 2018-01-12 15:22:15 UTC
Assigning to James on the provider team to review.

Note: The Jan 10th build of the appliance upgraded embedded ansible from 3.1.5 to 3.2.2.  This may be a contributing factor.

Comment 4 Drew Bomhof 2018-01-12 16:07:00 UTC
The error in the description seems to be a result of a change on the Tower / Ansible side.  There were no changes to our AnsibleTowerClient gem that would explain a parameter suddenly changing names and thereby now being incorrect.

Note: The Jan 10th build of the appliance upgraded embedded ansible from 3.1.5 to 3.2.2.  This may be a contributing factor. Also see

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

Comment 5 James Wong 2018-01-12 17:44:34 UTC
Quote from Tower documents:

 In Ansible Tower 3.2 and later, vault credentials and machine credentials are separate entities.

Comment 6 James Wong 2018-01-12 18:06:23 UTC
The release notes of 3.2.0 http://docs.ansible.com/ansible-tower/3.2.0/html/release-notes/relnotes.html

Among other changes, this one seems a big one

Updated the Ansible Tower Rest API to version 2 ...

Comment 10 Greg McCullough 2018-01-13 13:54:56 UTC
*** Bug 1534096 has been marked as a duplicate of this bug. ***

Comment 11 James Wong 2018-01-16 19:13:30 UTC
An update:

I have these 2 WIPs that will fix the problem.

https://github.com/ManageIQ/manageiq/pull/16825
https://github.com/ManageIQ/manageiq-providers-ansible_tower/pull/54

They are WIPs because there're other impacts we are considering. e.g. in external Tower case that we may be dealing with multiple versions of Towers.

Will update again when we have decisions.

Comment 13 Drew Bomhof 2018-02-19 18:57:14 UTC
*** Bug 1533535 has been marked as a duplicate of this bug. ***

Comment 14 CFME Bot 2018-02-21 18:22:35 UTC
New commit detected on ManageIQ/manageiq-providers-ansible_tower/master:
https://github.com/ManageIQ/manageiq-providers-ansible_tower/commit/782edd45e5847bae27ce3122d0ef2e2afa1c5aaa

commit 782edd45e5847bae27ce3122d0ef2e2afa1c5aaa
Author:     James Wong <webpotent>
AuthorDate: Mon Jan 15 15:01:36 2018 -0500
Commit:     James Wong <webpotent>
CommitDate: Mon Feb 19 09:48:36 2018 -0500

    Tower 3.2.2 vault credential
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1533630

 .../providers/ansible_tower/automation_manager.rb   |  1 +
 .../automation_manager/vault_credential.rb          |  3 +++
 .../shared/automation_manager/machine_credential.rb |  6 ------
 .../shared/automation_manager/vault_credential.rb   | 21 +++++++++++++++++++++
 .../shared/inventory/parser/automation_manager.rb   |  3 +++
 .../ansible_shared/automation_manager/refresher.rb  |  9 +++++++--
 6 files changed, 35 insertions(+), 8 deletions(-)
 create mode 100644 app/models/manageiq/providers/ansible_tower/automation_manager/vault_credential.rb
 create mode 100644 app/models/manageiq/providers/ansible_tower/shared/automation_manager/vault_credential.rb

Comment 15 CFME Bot 2018-02-21 18:26:54 UTC
New commit detected on ManageIQ/manageiq/master:
https://github.com/ManageIQ/manageiq/commit/bfe1ff4e9ea94e12eed15f953b85e93350dbf9f1

commit bfe1ff4e9ea94e12eed15f953b85e93350dbf9f1
Author:     James Wong <jwong>
AuthorDate: Mon Jan 15 16:37:07 2018 -0500
Commit:     James Wong <jwong>
CommitDate: Mon Feb 19 09:48:52 2018 -0500

    Tower 3.2.2 vault credential type
    
    Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1533630

 app/models/manageiq/providers/embedded_ansible/automation_manager.rb   | 1 +
 .../providers/embedded_ansible/automation_manager/vault_credential.rb  | 3 +++
 2 files changed, 4 insertions(+)
 create mode 100644 app/models/manageiq/providers/embedded_ansible/automation_manager/vault_credential.rb

Comment 17 Nandini Chandra 2018-11-15 15:31:44 UTC
This is specific to Embedded Ansible .

Comment 18 Nandini Chandra 2018-11-15 15:31:54 UTC
This is specific to Embedded Ansible .

Comment 19 Satyajit Bulage 2018-11-16 07:15:02 UTC
I have created vault credentials and used it in the playbook, Ordered it using service by providing vault password. Vault playbook is successfully ran without any error.

Verified Version: 5.10.0.23.20181106165157_92dd189


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