You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration
Adrian Likins 29bdd0b326 Better handling of malformed vault data envelope (#32515)
If an embedded vaulted variable ('!vault' in yaml)
had an invalid format, it would eventually cause
an error for seemingly unrelated reasons.
"Invalid" meaning not valid hexlify (extra chars,
non-hex chars, etc).

For ex, if a host_vars file had invalid vault format
variables, on py2, it would cause an error like:

  'ansible.vars.hostvars.HostVars object' has no
  attribute u'broken.example.com'

Depending on where the invalid vault is, it could
also cause "VARIABLE IS NOT DEFINED!". The behavior
can also change if ansible-playbook is py2 or py3.

Root cause is errors from binascii.unhexlify() not
being handled consistently.

Fix is to add a AnsibleVaultFormatError exception and
raise it on any unhexlify() errors and to handle it
properly elsewhere.

Add a _unhexlify() that try/excepts around a binascii.unhexlify()
and raises an AnsibleVaultFormatError on invalid vault data.
This is so the same exception type is always raised for this
case. Previous it was different between py2 and py3.

binascii.unhexlify() raises a binascii.Error if the hexlified
blobs in a vault data blob are invalid.

On py2, binascii.Error is a subclass of Exception.
On py3, binascii.Error is a subclass of TypeError

When decrypting content of vault encrypted variables,
if a binascii.Error is raised it propagates up to
playbook.base.Base.post_validate(). post_validate()
handles exceptions for TypeErrors but not for
base Exception subclasses (like py2 binascii.Error).

* Add a display.warning on vault format errors
* Unit tests for _unhexlify, parse_vaulttext*
* Add intg test cases for invalid vault formats

Fixes #28038

(cherry picked from commit 9c58827410)
8 years ago
..
group_vars Move networking provider options to subspec (#28894) 8 years ago
host_vars breaks testing in non virtual envs, since env var can be used in those 10 years ago
roles Add a code-smell test for smart quotes and remove smart quotes from all files 8 years ago
targets Better handling of malformed vault data envelope (#32515) 8 years ago
vars Split integration tests out from Makefile. (#17976) 9 years ago
Makefile remove unused ssh pipelining setters 8 years ago
amazon.yml Adding support for Amazon ECR (#19306) 9 years ago
asa.yaml Fix trailing space in ec2_vol example, fix 'the the' typos (#28440) 9 years ago
azure.yml
cleanup_azure.py test/: PEP8 compliancy (#24803) 9 years ago
cleanup_ec2.py Fix undefined variables, basestring usage, and some associated python3 issues 9 years ago
cleanup_gce.py Fix undefined variables, basestring usage, and some associated python3 issues 9 years ago
cleanup_rax.py Fix undefined variables, basestring usage, and some associated python3 issues 9 years ago
cloud-config-aws.yml.template Add support for cloud tests to ansible-test. (#24315) 9 years ago
cloud-config-azure.yml.template Fix Azure config template. 9 years ago
cloud-config-cs.ini.template Add support for cloud tests to ansible-test. (#24315) 9 years ago
cloudflare.yml Fix cosmetic problems in YAML source 9 years ago
cloudscale.yml new module cloudscale_server (#20175) 9 years ago
cnos.yaml New module: cnos_vlan and various utility files (#21107) 9 years ago
connection-buildah.yaml add connection plugin for buildah (#26170) 9 years ago
consul.yml Adds support for all Consul 0.8 ACL rule scopes (#25800) 9 years ago
consul_inventory.yml
consul_running.py Support print() function in test/ 11 years ago
credentials.template Update git test to not rm ~/.ssh/known_hosts. 9 years ago
dellos6.yaml Migrate Network Tests into ansible/ansible (#18233) 9 years ago
dellos9.yaml Migrate Network Tests into ansible/ansible (#18233) 9 years ago
dellos10.yaml Migrate Network Tests into ansible/ansible (#18233) 9 years ago
eos.yaml Fix trailing space in ec2_vol example, fix 'the the' typos (#28440) 9 years ago
exoscale.yml exo_dns: new module utils and integration tests for exoscale DNS (#17230) 10 years ago
galaxy_playbook.yml
galaxy_playbook_git.yml [hotfix] add missed playbook file 10 years ago
galaxy_roles.yml Fix cosmetic problems in YAML source 9 years ago
galaxy_rolesfile Add tests for #10620 10 years ago
gce.yml [google] adding a GCE labels module 9 years ago
gce_credentials.py test/: PEP8 compliancy (#24803) 9 years ago
integration.cfg Fix ansible-test config management. 8 years ago
integration_config.yml Fix cosmetic problems in YAML source 9 years ago
inventory Fix fact failures cause by ordering of collectors (#30777) 8 years ago
inventory.network Add VyOS integration tests for net_linkagg (#26478) 9 years ago
inventory.networking.template Increase python version coverage for tests. (#24762) 9 years ago
inventory.remote.template Add support for OS X CI on Shippable. (#17160) 10 years ago
inventory.winrm.template Increase python version coverage for tests. (#24762) 9 years ago
inventory.yaml add new yaml inventory for testing 9 years ago
ios.yaml IOS Ping: Add new module to support ping tests from IOS devices (#28557) 8 years ago
iosxr.yaml Fix trailing space in ec2_vol example, fix 'the the' typos (#28440) 9 years ago
jenkins.yml jenkins_job: add integration tests (#17499) 9 years ago
junos.yaml Fix trailing space in ec2_vol example, fix 'the the' typos (#28440) 9 years ago
netscaler.yaml Lowercase enabled, disabled option values (#27764) 9 years ago
network-all.yaml New module: management of the Nuage Networks VSP SDN solution (network/nuage/nuage_vspk) (#24895) 9 years ago
network-integration.cfg Increase socket connect retry timeout for integration test (#30681) (#30683) 8 years ago
nuage.yaml New module: management of the Nuage Networks VSP SDN solution (network/nuage/nuage_vspk) (#24895) 9 years ago
nxos.yaml Integration Tests only: add static route, snmp_user, snapshot and hsrp it cases (#28933) 8 years ago
ops.yaml Fix trailing space in ec2_vol example, fix 'the the' typos (#28440) 9 years ago
ovs.yaml Fix trailing space in ec2_vol example, fix 'the the' typos (#28440) 9 years ago
platform_agnostic.yaml remove net_command (#28525) 9 years ago
rackspace.yml
setup_gce.py test/: PEP8 compliancy (#24803) 9 years ago
target-prefixes.network openvswitch targets via network-integration (#27295) 9 years ago
vyos.yaml Fix trailing space in ec2_vol example, fix 'the the' typos (#28440) 9 years ago
windows-integration.cfg Fix ansible-test config management. 8 years ago