Bump migrations and delete some files Resolve remaining conflicts Fix requirements Flake8 fixes Prefer devel changes for schema Use correct versions Remove sso connected stuff Update to modern actions and collection fixes Remove unwated alias Version problems in actions Fix more versioning problems Update warning string Messed it up again Shorten exception More removals Remove pbr license Remove tests deleted in devel Remove unexpected files Remove some content missed in the rebase Use sleep_task from devel Restore devel live conftest file Add in settings that got missed Prefer devel version of collection test Finish repairing .github path Remove unintended test file duplication Undo more unintended file additions
Collection tools
Tools used for building, maintaining, and testing the collection.
Template Galaxy
The template_galaxy.yml playbook ran as a pre-requisite for building the collection.
make awx_collection_build
Generate
This will template resource modules (like group, for groups in inventory) from a boilerplate template.
It is intended as a tool for writing new modules or enforcing consistency.
Integration Testing
These instructions assume you have ansible-core and the collection installed.
To install the collection in-place (to pick up any local changes to source)
the make symlink_collection will symlink the awx_collection/ folder to
the appropriate place under ~/.ansible/collections.
This is a shortcut for quick validation of tests that bypasses ansible-test.
To use this, you need the ~/.tower_cli.cfg config file populated,
which can be done via the deprecated tower-cli login <username> or manually
writing it, where the format looks like:
[general]
host = https://localhost:8043/
verify_ssl = false
username = admin
password = password
TODO: adjust playbook to allow using environment variables as well.
To run some sample modules:
ansible-playbook -i localhost, awx_collection/tools/integration_testing.yml
To run just one module (the most common use case), use the -e test=<name>.
ansible-playbook -i localhost, awx_collection/tools/integration_testing.yml -e test=host
If you want to run all the tests, then you need to pass in the whole list. This will take significant time and is not ideal from an error-handling perspective, but this is a way to do it:
ansible-playbook -i localhost, awx_collection/tools/integration_testing.yml -e test=$(ls -1Am awx_collection/tests/integration/targets/ | tr -d '[:space:]')
Depending on the module, you may need special dependencies.
For instance, the rrule lookup plugins need pytz.
These will be satisfied if you install requirements in awx_collection/requirements.txt.