Commit graph

9045 commits

Author SHA1 Message Date
Matt Clay
032bd3a030 Move the ansible-test output_dir.
This directory is currently a fixed location to make troubleshooting easier.
It is cleared before each test target runs, but is preserved when a test target finishes.
This allows the contents to be inspected when a test fails.

The previous location was `~/ansible_testing/`.
The new location is within the content root:

- `test/results/.tmp/output_dir` for Ansible
- `tests/output/.tmp/output_dir` for Ansible Collections

Moving the directory reduces the number of places on the filesystem where tests create output.
It also enables the results to be returned from delegated systems.
2019-08-29 02:32:31 -07:00
Matt Davis
d81ae27a4a
Collection role relative deps (#61517)
* default collection support

* playbooks run from inside a registered collection will set that collection as the first item in the search order (as will all non-collection roles)
* this allows easy migration of runme.sh style playbook/role integration tests to collections without the playbooks/roles needing to know the name of their enclosing collection

* disable default collection test under Windows

* enable collection search for role dependencies

* unqualified role deps in collection-hosted roles will first search the containing collection
* if the calling role has specified a collections search list in metadata, it will be appended to the search order for unqualified role deps

* disable cycle detection unit test

* failing on 3.7+, needs proper cycle detection
* see #61527
2019-08-29 02:25:44 -07:00
smile37773
7bb0556334 Rename Azure modules: facts -> info (#61505)
* rename

* add symlink

* rename

* rename

* rename

* rename

* rename

* rename

* rename

* rename

* rename

* rename

* rename

* rename
2019-08-29 17:00:45 +08:00
ndclt
649d612d64 keycloak: improve testability of authentification (#57611) 2019-08-29 10:15:47 +02:00
Sam Doran
48a67f4465 Fix race condition in test_sunos_get_uptime_facts
Mock time.time() to return consistent time value.
2019-08-29 00:22:48 -07:00
Sam Doran
e5b24a68cc Add additional group for sanity tests
Put validate-modules in its own group
2019-08-29 00:21:07 -07:00
Zim Kalinowski
35c76ae0d3
Rename dtl and db _facts --> _info (#61496)
* rename modules

* created links

* fixed sanity

* removed unnecessary ignore rules

* added depreciation warning

* update ignore.txt to match

* removed unnecessary ignore rules

* update ignore.txt to match

* make ignore.txt same as in devel

* cr

* additional sanity
2019-08-29 14:00:10 +08:00
Matt Clay
d92e2a6b0e
Simplify ansible-test target processing. (#61506)
* Clean up layout paths for integration tests.

* Remove "special" integration test target type.

* Remove unnecessary role detection logic.

* Remove support for non-sh runme scripts.

* Simplify reading of aliases.
2019-08-28 22:18:20 -07:00
Chris Archibald
799b0fac52 New module: cvs snapshots for aws (#61023)
* New module: cvs snapshots for aws

* fixeS
2019-08-29 00:24:38 -04:00
Chris Archibald
53b2a261de new module: Cloud Volumes for AWS, active Directory (#61342)
* new module

* fixes

* update
2019-08-29 00:21:45 -04:00
Chris Van Heuveln
f890c9692f nxos_bfd_interfaces: new module (#61407)
* bfd_interfaces: initial commit

* fix state methods, add more UT

* Add integration tests, support for N6K

* minor comment cleanups

* lint 1

* lint 2

* lint 3

* lint 4

* lint 5

* retrigger shippable

* retrigger shippable

* PR review updates: /bfd_echo/echo/, updated tests

* fix overridden logic and integration test
2019-08-29 09:36:10 +05:30
Chris Archibald
9f006dd8c7 new module netapp csv pools for aws (#61340)
* new module cvs pools

* fixes

* updates

* fixes

* fixes

* fixes
2019-08-28 23:30:45 -04:00
Matt Clay
ed46f83905 Fix paths in sanity tests. 2019-08-28 20:06:22 -07:00
Chris Archibald
4879cf8fff new module: Cloud Volume for AWS FileSystems (#61343)
* new module"

* fixes

* updates
2019-08-28 23:02:15 -04:00
Matt Clay
81ca44b7e5 Change location of collections tests.
The directories used for collections tests are changing as follows:

`test/` -> `tests/`
`test/results/` -> `tests/output/`

This is a breaking change for collections tests executed by ansible-test.
All collections will need to be updated to use the new directory.

The `tests/output/` directory should be added to the `.gitignore` or equivalent in each collection.

This change is being made before the first pre-release of Ansible 2.9 since ansible-test has not yet been shipped.
Using the `tests/` directory matches the other collections directories `plugins/` and `roles/`.

This resolves https://github.com/ansible/ansible/issues/60218
2019-08-28 19:15:36 -07:00
Matt Clay
460b583dff Improve ansible-test --venv error handling.
This allows it to fall back to virtualenv when venv is broken.
2019-08-28 16:50:42 -07:00
James Cammarata
51b33b79c0
T woerner max concurrent (#60702)
* play, block, task: New attribute forks

With this it is possible to limit the number of concurrent task runs.
forks can now be used in play, block and task. If forks is set in different
levels in the chain, then the smallest value will be used for the task.

The attribute has been added to the Base class as a list to easily provide
all the values that have been set in the different levels of the chain.

A warning has been added because of the conflict with run_once. forks will
be ignored in this case.

The forks limitation in StrategyBase._queue_task is not used for the free
strategy.

Signed-off-by: Thomas Woerner <twoerner@redhat.com>

* Handle forks in free strategy

The forks attribute for the free strategy is handled in run in the free
StrategyModule. This is dony by counting the amount of tasks where the uuid
is the same as the current task, that should be queued next. If this amount
is bigger or equal to the forks attribute from the chain (task, block,
play), then it will be skipped to the next host. Like it is also done with
blocked_hosts.

Signed-off-by: Thomas Woerner <twoerner@redhat.com>

* Test cases for forks with linear and free strategy

With ansible_python_interpreter defined in inventory file using
ansible_playbook_python.

Signed-off-by: Thomas Woerner <twoerner@redhat.com>

* Changing forks keyword to throttle and adding some more docs
2019-08-28 18:47:39 -05:00
Matt Davis
7d1a981b61
default collection support (#61415)
* default collection support

* playbooks run from inside a registered collection will set that collection as the first item in the search order (as will all non-collection roles)
* this allows easy migration of runme.sh style playbook/role integration tests to collections without the playbooks/roles needing to know the name of their enclosing collection

* ignore bogus sanity error

* filed #61460

* fixed task unit test failure

* don't append an empty collections list to the ds

* ignore leftover local_action in mod_args ds action parsing

* fix async_extra_data test to not require ssh and bogus locale

* disable default collection test under Windows

* ensure collection location FS code is always bytes

* add changelog
2019-08-28 16:31:40 -07:00
robertchung
caa5abdfc9 Fix TypeError in ec2_group.py for Python3 when sorting dictionary list (#59844)
* Fix TypeError in ec2_group.py for Python3 when sorting dictionary list

* Using json.loads() and dumps() to replace sorting

* Bug fixes for ec2_group.py

* Dictionaries cannot be compared/sorted in Python3

* Diff will occur when the IpPermissions have the same IpRanges but have different ordering

* 'before' will be sorted by 'Type' with high priority than 'IP', but 'boto3.describe_security_groups()' function cannot get 'Type' from Amazon

* Add some basic diff mode testing to exercise the rule-sorting code
2019-08-28 16:28:42 -07:00
Sam Doran
8dd79fbbd2 Show doc URL for sanity test failures 2019-08-28 15:32:31 -07:00
Matt Clay
4afe757f93
More ansible-test path handling updates. (#61484)
* Move test results vars into layout.

* Add test_path to layout.

* Add sanity_path to layout.

* Clean up layout.

* Update change classification.

* Improve classification layout.

* Relocate common classification code.

* Use is_subdir for relocated code.

* Relocate ansible test/units/compat/ hack.

* Fix variable shadowing.

* Remove unused code.

* Fix ordering of path tests.

* Clean up ansible classification.

* Fix hard-coded plugin paths in classification.

* Relocate more common classification.

* Fix logic.

* Fix pylint issue.

* Add missing licenses classification.
2019-08-28 15:13:00 -07:00
Milan Zink
7ff7ce0123 New storage/netapp module - na_ontap_kerberos_realm (#59923)
* New module na_ontap_kerberos_realm

* Copyright updated

* Unit test for modules + fixed required_if parameters issue

* reverting state=modify

* fixing test

* Fixing imports section
2019-08-28 18:03:45 -04:00
Matt Clay
8521474f06 Revert "maven_artifact.py - add support for version ranges by using spec (#54309)"
This reverts commit 145a6a8756.
2019-08-28 14:41:11 -07:00
Chris Trufan
44c18b544f Addition of ECS_Certificate Module (#60883)
* Addition of ecs_certificate module.

* Documentation and code fixes

* Updates per code review

* Doc fixes, rename of chain_path to full_chain_path, add regex for cert_Expiry check

* Fixes to pep8 check to make regexp string 'raw'.

* Mistakes with find/replace of caseing.

* Added integration tests and some doc cleanup

* Some additional assertions and test typo cleanup

* Update lib/ansible/modules/crypto/entrust/ecs_certificate.py

Co-Authored-By: Felix Fontein <felix@fontein.de>

* Responses to code review comments

* Remove fake passwords from aliases file.
2019-08-28 23:38:48 +02:00
Nathan Swartz
1d9b473e56 Add netapp_e_firmware module (#59529)
* Add na_santricity_firmware module.

Manages NetApp E-Series firmware upgrades.
Includes unit and integration tests.

* Add legacy support to na_santricity_firmware module.

* Rename na_santricity_firmware to netapp_e_firmware

* Improved netapp_e_firmware example documentation.
2019-08-28 17:17:35 -04:00
Nathan Swartz
f02a62db50 Add netapp_e_drive_firmware (#59528)
* Add na_santricity_drive_firmware module

Manage NetApp E-Series drive firmware downloads
Includes unit and integration tests

* Rename na_santricity_drive_firmware to netapp_e_drive_firmware
2019-08-28 17:15:19 -04:00
Sam Doran
73248bf27d validate-modules - Use error codes instead of numbers (#60711) 2019-08-28 14:12:56 -07:00
Adrian Likins
af01cb114c
Support galaxy v3/autohub API in ansible-galaxy (#60982)
* Add galaxy collections API v3 support

Issue: ansible/galaxy-dev#60

- Determine if server supports v3

Use 'available_versions' from `GET /api`
to determine if 'v3' api is available on
the server.

- Support v3 pagination style

ie, 'limit/offset style', with the paginated
responses based on https://jsonapi.org/format/#fetching-pagination

v2 galaxy uses pagination that is more or less
'django rest framework style' or 'page/page_size style',
based on the default drf pagination described
at https://www.django-rest-framework.org/api-guide/pagination/#pagenumberpagination

- Support galaxy v3 style error response

The error objects returned by the galaxy v3 api are based
on the JSONAPI response/errors format
(https://jsonapi.org/format/#errors).

This handles that style response. At least for publish_collection
for now. Needs extracting/generalizing.

Handle HTTPError in CollectionRequirement.from_name()
with _handle_http_error(). It will raise AnsibleError
based on the json in an error response.

- Update unit tests

update test/unit/galaxy/test_collection*
to paramaterize calls to test against
mocked v2 and v3 servers apis.

Update artifacts_versions_json() to tale an
api version paramater.

Add error_json() for generating v3/v3 style error
responses.

So now, the urls generated and the pagination schema
of the response will use the v3 version if
the passed in GalaxyAPI 'galaxy_api' instance
has 'v3' in it's available_api_versions

* Move checking of server avail versions to collections.py

collections.py needs to know the server api versions
supported before it makes collection related calls,
so the 'lazy' server version check in api.GalaxyAPI
is never called and isn't set, so 'v3' servers weren't
found.

Update unit tests to mock the return value of the
request instead of GalaxyAPI itself.
2019-08-28 16:59:34 -04:00
Felix Fontein
59ab4d9307
oVirt: rename _facts -> _info (#61299)
* Rename oVirt _facts -> _info

* Adjust PR #.

* Forgot update BOTMETA / ignore.txt for doc fragment.

* Compatibility for 3rd-party modules using module_utils or info doc fragment.

* Update note.

* Fix/improve docs.

* Update lib/ansible/modules/cloud/ovirt/ovirt_event_info.py

Co-Authored-By: Sloane Hertel <shertel@redhat.com>

* Fix variable.

* Fix return value documentation for ovirt_external_provider_info.
2019-08-28 21:01:46 +02:00
Ujwal Komarla
5e200f2d0a Resource Module for exos_lldp_global (#60988)
* Model->Role->Module.
Yet to import modules/exos_facts.py

* exos_facts refactor

* future-import and metaclass

* Fix unit tests

* Fix openconfig-lldp word and send_request API from Httpapi class

idempotent, json.dumps in base class, send_requests from base exos class

* action file for exos_lldp_global

* Add intergration tests for exos_lldp_global

* Test data field of the request
2019-08-28 13:58:45 -04:00
Nathaniel Case
841d204d0d
Fixes #61244 (#61432) 2019-08-28 13:53:33 -04:00
Sam Doran
58edfec145
Add listen_port_facts module (#61463)
Co-authored-by: Nathan Davison <ndavison85@gmail.com>
2019-08-28 13:16:13 -04:00
Nathaniel Case
a7a053defc
New module eos_lacp_interfaces (#61349)
* Prepare for lacp_interfaces.

* Import module from builder

* Implement facts

* Implement config

* Add tests
2019-08-28 13:06:45 -04:00
Diane Wang
d987dca2b1 VMware: vmware_guest_screenshot module fix get_parent_datacenter issue (#60626)
Fix get_parent_datacenter not found issue, and change "local_path" parameter to "path" type.

closes: #60565
2019-08-28 13:04:30 -04:00
Matt Clay
20d9c34862 Fix CI test result placement. 2019-08-28 09:58:00 -07:00
Matt Clay
1db78d4ba4 Attempt quick fix for CI failures. 2019-08-28 09:42:23 -07:00
chkp-orso
c3d37f39b7 Checkpoint Network module (#61309)
* network module

* delete cp_network, cp_network_facts, and change test_cp_network to match the new network module

* Update ignore.txt

* adding state: present

* update example

* list to dict

* Update test_cp_mgmt_network.py

* remove white-space
2019-08-28 21:46:05 +05:30
Matt Clay
830f995ed4
Add a --venv option to ansible-test. (#61422)
* Add --venv delegation to ansible-test.

* Update import sanity test venv creation.

* Fix import test when using --venv on Python 2.x.

* Improve virtualenv setup overhead.

* Hide pip noise for import sanity test.

* Raise verbosity on venv info messages.

* Get rid of base branch noise for collections.

* Add missing --requirements check.
2019-08-28 09:10:17 -07:00
Nathan Swartz
8ebed4002f Add tray/drawer loss protection preference and integration tests to netapp_e_storagepool module. (#60151) 2019-08-28 12:02:46 -04:00
Nathaniel Case
95ecf24b87
New module eos_lldp_interfaces (#61341)
* Prepare existing files for lldp_interfaces

* Initial commit of scaffolding

* Implement facts

* Implement config

* Add tests

* Appease Shippable
2019-08-28 11:56:43 -04:00
Chris Archibald
49cff3d4a6 New options to Interface (#60499)
* update to interface

* force ansibot to run again

* fixes
2019-08-28 11:45:15 -04:00
Chris Archibald
c6710ebf6b Auto support logs were not being created (#60901)
* Auto support logs were not being created

* fixes
2019-08-28 11:23:54 -04:00
Ruturaj Vyawahare
f872c61712 Added integration tests for the following modules: (#55523)
- exos_facts
- exos_command
- exos_config
2019-08-28 10:48:32 -04:00
Don Yao
7a1237781d Files from PR#60621, continue working on fortios_facts modules (#61405)
* Files from PR#60621, continue working on fortios_facts modules

* PR#61405 unit test module test_fortios_facts.py

* sanity fixed in test_fortios_facts unit test module
2019-08-28 19:58:41 +05:30
anas-shami
f4fa4e4e0e Feature/onyx wjh upstream (#61269)
* support wjh module config with testing file

* Fix version, fix enable/disable all groups

* refactor get current group status

* fix indentation and change command_generate function, add test cases and check them

* Update onyx_wjh.py

fix description

* Update onyx_wjh.py

remove extra spaces, add type to choices after run validate-modules

* fix format string - pytest use 2.6.6 format function

* Remove unused imports

* chenge onyx_wjh file permessions

* Fix version, fix enable/disable all groups

* fix indentation and change command_generate function, add test cases and check them

* support wjh module config with testing file

* Fix version, fix enable/disable all groups

* refactor get current group status

* fix indentation and change command_generate function, add test cases and check them

* Update onyx_wjh.py

fix description

* Update onyx_wjh.py

remove extra spaces, add type to choices after run validate-modules

* fix format string - pytest use 2.6.6 format function

* fix format string - pytest use 2.6.6 format function

* chenge onyx_wjh file permessions
2019-08-28 19:41:56 +05:30
sushma-alethea
73767778e0 icx: new module icx_lldp (#61310)
* new module

* icx_cliconf

* icx test units module

* icx units module

* added notes

* new changes

* new module

* new fix

* new changes

* new fixes

* new changes

* Rebase
2019-08-28 18:26:31 +05:30
smile37773
161c1ce17e Rename Azure modules: "facts"->"info" (#61417)
* rename

* add symlink

* add the log

* fix the ignore file

* fix

* fix
2019-08-28 19:01:10 +08:00
Andrey Klychkov
a6f6256a0a new module postgresql_publication (#59439)
* new module postgresql_publication: initial commit

* new module postgresql_publication: add seealso section

* new module postgresql_publication: fix RETURN section, fix typo

* new module postgresql_publication: add __exec_sql method

* new module postgresql_publication: fix typos

* new module postgresql_publication: fix typos

* new module postgresql_publication: fix typos
2019-08-28 10:24:59 +02:00
Miguel Angel Muñoz González
da762018e8 FortiOS modules for 2.9 - 11 (#61387) 2019-08-28 13:24:59 +05:30
Matt Clay
f5d829392a
Overhaul ansible-test test path handling. (#61416)
* Remove .keep files from test/results/ dirs.

* Remove classification of test/results/ dir.

* Add results_relative to data context.

* Use variables in delegation paths.

* Standardize file writing and results paths.

* Fix issues reported by PyCharm.

* Clean up invocation of coverage command.

It now runs through the injector.

* Hack to allow intercept_command in cover.py.

* Simplify git ignore for test results.

* Use test result tmp dir instead of cache dir.

* Remove old .pytest_cache reference.

* Fix unit test docker delegation.

* Show HTML report link.

* Clean up more results references.

* Move import sanity test output to .tmp dir.

* Exclude test results dir from coverage.

* Fix import sanity test lib paths.

* Fix hard-coded import test paths.

* Fix most hard-coded integration test paths.

* Fix PyCharm warnings.

* Fix import placement.

* Fix integration test dir path.

* Fix Shippable scripts.

* Fix Shippable matrix check.

* Overhaul key pair management.
2019-08-27 23:40:06 -07:00