community.general/lib/ansible
Adrian Likins 86dc3c09ac
Fix vault --ask-vault-pass with no tty (#31493)
* Fix vault --ask-vault-pass with no tty

2.4.0 added a check for isatty() that would skip setting up interactive
vault password prompts if not running on a tty.

But... getpass.getpass() will fallback to reading from stdin if
it gets that far without a tty. Since 2.4.0 skipped the interactive
prompts / getpass.getpass() in that case, it would never get a chance
to fall back to stdin.

So if 'echo $VAULT_PASSWORD| ansible-playbook --ask-vault-pass site.yml'
was ran without a tty (ie, from a jenkins job or via the vagrant
ansible provisioner) the 2.4 behavior was different than 2.3. 2.4
would never read the password from stdin, resulting in a vault password
error like:

        ERROR! Attempting to decrypt but no vault secrets found

Fix is just to always call the interactive password prompts based
on getpass.getpass() on --ask-vault-pass or --vault-id @prompt and
let getpass sort it out.

* up test_prompt_no_tty to expect prompt with no tty

We do call the PromptSecret class if there is no tty, but
we are back to expecting it to read from stdin in that case.

* Fix logic for when to auto-prompt vault pass

If --ask-vault-pass is used, then pretty much always
prompt.

If it is not used, then prompt if there are no other
vault ids provided and 'auto_prompt==True'.

Fixes vagrant bug https://github.com/hashicorp/vagrant/issues/9033

Fixes #30993
2017-11-15 14:01:32 -05:00
..
cli Fix vault --ask-vault-pass with no tty (#31493) 2017-11-15 14:01:32 -05:00
compat Create a short license for PSF and MIT. (#32212) 2017-11-06 10:25:30 -08:00
config Enable autoloading of inventory plugins (#32709) 2017-11-09 19:38:34 -05:00
errors Remove uses of assert in production code (#32079) 2017-11-13 11:51:18 -05:00
executor Connection plugins network_cli and netconf (#32521) 2017-11-09 15:04:40 -05:00
galaxy Fix IndexError raised on galaxy-install 2017-11-14 09:54:52 -05:00
inventory Avoid re.split as it's a bit less efficient and a bit harder to read. 2017-11-10 17:27:05 -08:00
module_utils module_utils: vmware.py. Incorrect chain of attributes to obtain snapshots from virtual machine (#32669) 2017-11-15 16:00:22 +00:00
modules Add new module manageiq_policies (#32892) 2017-11-15 19:33:00 +01:00
parsing Remove uses of assert in production code (#32079) 2017-11-13 11:51:18 -05:00
playbook undeprecated with_ (#32805) 2017-11-14 10:36:41 -05:00
plugins Back to 'prompt' for authorize prompt (#32932) 2017-11-15 12:22:14 -05:00
template Remove uses of assert in production code (#32079) 2017-11-13 11:51:18 -05:00
utils Fix idempotency issue for network modules. (#32838) 2017-11-14 11:58:33 +01:00
vars Remove uses of assert in production code (#32079) 2017-11-13 11:51:18 -05:00
__init__.py Fix ziploader for the cornercase of ansible invoking ansible. 2016-04-29 08:47:49 -07:00
constants.py updated chlog, moved missed comment 2017-11-09 09:59:43 -05:00
release.py Bump the versions now that devel is 2.5 2017-09-06 13:13:57 -07:00