Commit Graph

3521 Commits (c4f61a9db4448eae429bdb5bee2f9fd19f2ec50f)

Author SHA1 Message Date
Matt Clay c4f61a9db4 Add missing ansible-test --remote-terminate support. (#32918)
* Expand ansible-test --remote-terminate support:

- windows-integration
- network-integration

These commands previously accepted the option, but did not support it.

* Terminate windows and network instances when done.

(cherry picked from commit 6472723ba8)
8 years ago
Adrian Likins f68330acb2 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

(cherry picked from commit 86dc3c09ac)
8 years ago
Sam Doran 1379e77bf1 Add proper check mode support to the script module (#31852)
* Do not run script in check mode

Fixes #30676

* Reformat script integration test

* Add integration tests for check mode of script module

* Fix name on test

* Cleanup temp file

* win_script integration test syntaxt changes

* Add check mode tests for win_script

* Use proper variable in test

* Fail if source file does not exist

* Verify script is accessible and don't copy in check mode

Use shlex to properly split shell arguments, though a path with spaces in it still needs to be quoted in the playbook.
Add note to docs describing such.
Improve error message if file is not found indicating there may be a space in the path.

* Properly encode path now that path is split using shlex

* Allow for spaces in both path and script name

* Add unicode character test to Linux script tests

* Add Linux test for space in path to script

(cherry picked from commit ea3638b580)
8 years ago
Trishna Guha 545bd41927
multiple nxos fixes (#32905)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Trishna Guha 8b19c1c02d
change inventory_hostname to ansible_host to fix test (#32890) (#32891)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit 11de330372)
8 years ago
Ganesh Nalawade 363e605ac4
Change netconf port in testcase as per test enviornment (#32883) (#32889)
(cherry picked from commit c3636108bc)
8 years ago
Trishna Guha 4433544eb0
Fix snmp bugs on Nexus 3500 platform (#32773) (#32847)
* Add n35 platform support

* Fix regex bug and add snmp_location it tests

* Enable nxos_snmp_location tests

(cherry picked from commit de8d00b401)
8 years ago
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
Ganesh Nalawade 5944a447f7
Fix ios_config file prompt issue (#32744) (#32780)
Fixes #23263

Add a carriage return (\r) at end on copy config
command which results in prompt on cli terminal
(cherry picked from commit 37b0537279)

Update CHANGELOG.md
8 years ago
Ganesh Nalawade eb4c5936f3
Fix junos netconf port issue in integration test (#32610) (#32668)
(cherry picked from commit 6d1d06e0f7)
8 years ago
Chris Meyers f00f2466d4 tests for InventoryModule error conditions (#31381)
* tests for InventoryModule error conditions

* modified unicode in tests to ahear to Ansible best practices

* flake8 fixes

(cherry picked from commit cf938e9992)
8 years ago
Jordan Borean e771b64f1b win_service: quoted path fix (#32469)
* win_service: fix for path in quotes

* Added tests to verify behaviour doesn't regress

(cherry picked from commit 5b1db00b65)
8 years ago
Matt Davis 82c2da31be lock azure containerservice to below 2.0.0
* supersedes/fixes #32518
* only for 2.4.x - we'll make the necessary code changes for 2.5 to work with the updated version
8 years ago
Pilou 35d942d6a0 Fix include_role unit tests (#31920)
* Ensure include_role unit tests check something

This is not the case: get_tasks_vars doesn't yield

* Fix include_role unit tests

Since e609618274, include_role are not
static anymore.

(cherry picked from commit 43914b3837)
8 years ago
Jordan Borean 6a7333950a win_find: allow module to skip on files it fails to check (#32105)
* win_find: allow module to skip on files it fails to check

* fixed up test creation to work pre psv5

(cherry picked from commit 56a7278256)
8 years ago
Ganesh Nalawade bc01b5d981
eos_eapi: adding the desired state config to the new vrf fixes #32111 (#32112) (#32452)
* adding the desired state config to the new vrf fixes #32111

* fix default vrf initial configured

* add unit test

* Update CHANGELOG

(cherry picked from commit 2c99cbc874)
8 years ago
Ganesh Nalawade b8ee3bb24f
Fix wrong prompt issue for network modules (#32426) (#32442)
* Fix wrong prompt issue for network moodules

Fixes #31161
Fixes #32416

*  Store the device prompt in case of error
   from remote device
*  Check for prompt value in ios action plugin

*  Add integration test
*  Update Changelog

(cherry picked from commit 26583adb58)
8 years ago
Kedar K cc0a18e5bd Fixes ios_logging unit test (#32240)
(cherry picked from commit 2aae66fa07)
8 years ago
Paul Neumann ebd559c43a ios_system: Fix typo in unit test (#32284)
(cherry picked from commit 87f663b950)
8 years ago
Paul Neumann de60b9e1a8 ios_logging: Fix some smaller issues, add unit test (#32321)
* ios_logging: Fix typo in documentation

* ios_logging: Fix traceback when setting buffered destination without size

When the size parameter is not configured while configuring the buffered
destination, a traceback occurs due to the fact that validate_size expects the
parameter to be an int. Explicitely converting value to int makes the
check work for every case.

* ios_logging: Update size parameter documentation

Update the documentation of the size paramter to reflect the current behaviour
of setting a default of 4096 for the buffered dest.

* ios_logging: Add unit test

Add unit test for ios_logging testing the behaviour clarified in the previous
commits.

* ios_logging: Fix python 2.6 compliance

(cherry picked from commit 53fead7c96)
8 years ago
saichint 7967b75980 Integration Tests only: add static route, snmp_user, snapshot and hsrp it cases (#28933)
* add static route and hsrp it cases

* add snmp_user and snapshot it

* password strength correction

* fix typo

* add compare snapshot as it is fixed in the code now

* skip snapshot tests for titanium

* titanium and nxapi conditions added

(cherry picked from commit c822292347)
8 years ago
Trishna Guha 0711f41e3d
ios_interface testfix (#32381)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Trishna Guha 618b4999fb
fix CI failure yaml syntax (#32374)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Trishna Guha 8453398dd4
fix ios_interface test (#32372)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Matt Martz 071f86afc6 Fix patching to epel package
(cherry picked from commit be9cc70b74)
8 years ago
Trishna Guha 497c73d06e
iosxr integration testfix (#32344)
* Replace GigabitEthernet0/0/0/5 for GigabitEthernet0/0/0/2 in iosxr_interface intent tests (#32116)

There's no 5 interface present in CI nodes.
(cherry picked from commit f079a33563)

* Replace Gigabit0/0/0/2 for Gigabit0/0/0/1 on iosxr_interface.intent (#32120)

(cherry picked from commit a9d8157e81)

* Add ansible_ssh_port to iosxr_user auth tests (#32117)

The CI nodes listen on port 8022, we need to plumb that to avoid
test failures.
(cherry picked from commit 676d446cfc)
8 years ago
Trishna Guha 262d6b6dcc
ios_ping test fix (#32342)
* Introspect the management IP on ios_ping (#31571)

On our CI we don't have external connectivity, so let's ping to
the management interface IP.
Also, ignore errors on the expected failures tests.
(cherry picked from commit c75c4cbfc8)

* Remove duped authorize on ios_ping anchored tasks (#31572)

Otherwise, we get warnings.
(cherry picked from commit ac95ecaf13)

* Introspect platform before running ios tests

* Add authorize

* Fix quotes on ios_ping test (#32131)

(cherry picked from commit ca115b0a8e)

* Fix lookup source tests on ios_system (#32254)

In IOS-XE, you need to pass an interface to lookup-source, otherwise
it fails with bad syntax.
(cherry picked from commit 4b35793f62)

* Remove ip nameservers on ios_system/set_name_servers teardown (#32239)

Not sure why lookup source-interface, the only thing tested on that
file is adding/removing name servers, no lookup is set.
(cherry picked from commit 9752ce368d)

* fix conflict

* Update CHANGELOG

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Trishna Guha 2c4cb42337
ios_interface provider issue testfix (#32335)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Trishna Guha b6c117ebdd
eos_user testfix (#32264)
* Fix eos_user tests (#32261)

(cherry picked from commit be821845e2)

* Add eos_user testfix to CHANGELOG

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Trishna Guha e2065dc68c Remove provider from ios integration test (#31037) (#32230)
* Remove provider from  ios integration test (#31037)

*  Remove provider from each task as it is not required.
*  Add `authorize: yes` whereever required
(cherry picked from commit 65ab37cbd3)

* CHANGELOG entry for ios tests fix

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
8 years ago
Ryan Brown a0c123a86e [cloud] Bugfix for aws_s3 empty directory creation (#32198)
* [cloud] Bugfix for aws_s3 empty directory creation

Backport of #32169

* Only make DeleteObject call if there are objects to delete

* Remove pauses from integration tests
8 years ago
Matt Clay dc90280b8f Disable pylint rules for stable-2.4.
ci_complete
8 years ago
Matt Clay 8d91a6d72e Update ansible-test sanity command. (#31958)
* Use correct pip version in ansible-test.
* Add git fallback for validate-modules.
* Run sanity tests in a docker container.
* Use correct python version for sanity tests.
* Pin docker completion images and add default.
* Split pylint execution into multiple contexts.
* Only test .py files in use-argspec-type-path test.
* Accept identical python interpeter name or binary.
* Switch cloud tests to default container.
* Remove unused extras from pip install.
* Filter out empty pip commands.
* Don't force running of pip list.
* Support delegation for windows and network tests.
* Fix ansible-test python version usage.
* Fix ansible-test python version skipping.
* Use absolute path for log in ansible-test.
* Run vyos_command test on python 3.
* Fix windows/network instance persistence.
* Add `test/cache` dir to classification.
* Enable more python versions for network tests.
* Fix cs_router test.

(cherry picked from commit cf1337ca9a)
8 years ago
Matt Clay 29b50d99c7 Add missing packages to default docker image.
(cherry picked from commit 5663d11b94)
8 years ago
Matt Clay 4978fc633c Fix ansible-test default image. (#31966)
* Add openssh-client to default docker container.
* Include Azure requirements in default container.

To do so, handling of pip requirements was updated to install each
set of requirements separately and then run a verification pass to
make sure there are no conflicts between requirements.

* Add missing --docker-no-pull option.
* Add documentation for the azure-requirements test.

(cherry picked from commit 36b13e3e3d)
8 years ago
Matt Clay 0483401339 Add new default Docker container for ansible-test. (#31944)
* Add new default Docker container for ansible-test.
* Update ansible-test change classification.
* Update list of disabled pylint rules.
* Fix pylint issues with ansible-test.

(cherry picked from commit f76afab6e5)
8 years ago
Matt Clay dbe3a44a46 Improve python 2/3 ABC fallback for pylint. (#31848)
* Improve python 2/3 ABC fallback for pylint.
* Allow longer method names in ansible-test.

(cherry picked from commit 6c3339402a)
8 years ago
Dave Thelen 2340c7ac6e eos_user: sends user secret first on user creation fixes #31680 (#32162)
* fix command order

* add integration test

* test cleanup

* remove redudant commands

(cherry picked from commit 602a618e60)
8 years ago
rahushen 541d5db97a NXOS: Integration tests to Ansible (part 3) (#29030)
* Add nxos_file_copy IT

* Restructure nxos_igmp tests

* add nxos_igmp_interface IT

* add nxos_igmp_snooping IT

* add nxos_ntp_auth IT

* Add nxos_ntp_options IT

* update nxos.yaml with new tests

* update nxos_ntp_options test

* update nxos_ntp_auth IT

(cherry picked from commit ab84718a01)
8 years ago
Kedar K 70c3aefdaf - Fix to return error message back to the module. (#31035)
(cherry picked from commit 916e6be888)
8 years ago
Ganesh Nalawade bc12de27dd Remove provider from prepare_ios_tests integration test (#31038)
(cherry picked from commit b86eea9a52)
8 years ago
rahushen 0aa015de5e change ports to non well known ports and drop time_range for N1 (#31261)
(cherry picked from commit c976ac7ed6)
8 years ago
Brian Coca b61bfc87b8 better cleanup on task results display (#27175)
* better cleanup on task results display

callbacks get 'clean' copy of result objects
moved cleanup into result object itself
removed now redundant callback cleanup
moved no_log tests

* moved import as per feedback

(cherry picked from commit 01b6c7c9c6)
8 years ago
Matt Clay 3f4005038d Fix docker_secret integration test dependencies.
(cherry picked from commit eb899c9bcd)
8 years ago
Abhijeet Kasurde 7e6554b9ff Correct usage for shutil.rmtree (#31541)
* Correct usage for shutil.rmtree

Fix adds correct usage of shutil.rmtree in git module

Fixes: #31225

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>

* Include archive tests so they get run

* Use new include syntax

* Cleanup syntax on git tests

- use multi-line YAML
- remove unneeded {{ }} around vars in conditionals
- remove unneeded quotes
- add task file name to task names for easier troubleshooting when things fail

* Make archive tests work for RHEL/CentOS 6

The older versions of Jinja2 in RHEL/CentOS 6 required assertion tasks using the map filter to be skipped.

The older version of git required gzip compression to be skipped on RHEL/CentOS 6.

* Account for ansible_distribution_major_version missing

(cherry picked from commit a047fe0e4c)
8 years ago
Jordan Borean 466baba040 win_regedit: fix extra info coming into stdout (#31813)
(cherry picked from commit 888de842b3)
8 years ago
Matt Clay 5d2f07aebb Multiple Parallels host support for ansible-test. (#31552)
(cherry picked from commit 05ec376197)
8 years ago
Matt Clay e8d4667b87 Remove cryptography install from CI other test.
(cherry picked from commit 03e18aa52e)
8 years ago
Matt Clay 78cb32ccb7 Update Azure tests to limit cryptography version. (#31616)
(cherry picked from commit 8acb901bf2)
8 years ago
Ganesh Nalawade e001fb7c14 Fix rollback in junos_config (#31424) (#31563)
* Fix rollback in junos_config (#31424)

* Fix rollback in junos_config

Fixes #30778

*  Call `load_configuration` with rollback id in case
   the id is given as input
*  Pass rollback id to `get_diff()` to fetch diff from device

* Fix unit test

(cherry picked from commit 88da95bb77)

* Update changelog
8 years ago