Fedora Account System
Red Hat Associate
Red Hat Customer
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"]}]
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.
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
Quote from Tower documents: In Ansible Tower 3.2 and later, vault credentials and machine credentials are separate entities.
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 ...
*** Bug 1534096 has been marked as a duplicate of this bug. ***
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.
*** Bug 1533535 has been marked as a duplicate of this bug. ***
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
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
This is specific to Embedded Ansible .
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