AWX no longer includes Ansible on the control plane and there is no
"default" version of Ansible aside from what's configured at the
Execution Environment level
see: https://github.com/ansible/awx/issues/9472
add feature to UI and awxkit
restructure some details of create_unified_job
for workflows to allow use of char_prompts
hidden field
avoid conflict with sliced jobs in char_prompts copy logic
update developer docs
update migration reference
bump migration
Currently, users are allowed to define virtual environments in
`settings.BASE_VENV_PATH` only, because that's the only place
Tower looks for virtual environments. This feature allows users
to custom define the directory paths, using API or UI, to look
for virtual environments. Tower aggregates virtual environments
from all these paths, except environments with special name `awx`.
Signed-off-by: Vismay Golwala <vgolwala@redhat.com>
Bump keystone auth to resolve problem with openstack script
Clarify code path, routing to template vs. managed injector
behavior is also now reflected in test data files
Refactor test data layout for inventory injector logic
Add developer docs for inventory plugins transition
Memoize only get_ansible_version with no parameters
Make inventory plugin injector enablement a separate
concept from the initial_version
switch tests to look for plugin_name as well
Add plugin injectors for tower and foreman.
Add jinja2 native types compat feature
move tower source license compare logic to management command
introduce inventory source compat mode
pin jinja2 for native Ansible types
Add parent group keys, and additional translations
manual dash sanitization for un-region-like ec2 groups
nest zones under regions using Ansible core feature just merged
implement conditionally only with BOTH group_by options
Make compat mode default be true
in API models, UI add and edit controllers
Add several additional hostvars to translation
Add Azure tags null case translation
Make Azure group_by key off source_vars
to be consistent with the script
support top-level ec2 boto_profile setting
Initialize some inventory plugin test data files
Implement openstack inventory plugin
This may be removed later:
- port non-JSON line strip method from core
Dupliate effort with AWX mainline devel
- Produce ansible_version related to venv
Refactor some of injector management, moving more
of this overhead into tasks.py, when it comes to
managing injector kwargs
Upgrade and move openstack inventory script
sync up parameters
Add extremely detailed logic to inventory file creation
for ec2, Azure, and gce so that they are closer to a
genuine superset of what the contrib script used to give.
/etc/ssh is currently not bound when run into bwrap, this leads to error
like "Bad owner or permissions on /etc/ssh/ssh_config.d/05-redhat.conf"
since it cannot access this file.
This has a few benefits:
1. It makes adding new fields to built-in CredentialTypes _much_
simpler. In the past, we've had to write a migration every time we
want to modify an existing type (changing a label/help text,
changing options like the recent become_method changes) or
when adding a new field entirely
2. It paves the way for third party credential plugins support, where
importable libraries will define their own source code-based schema
run this command on _any_ node in an awx cluster:
$ awx-manage profile_sql --threshold=2.0 --minutes=1
...and for 1 minute, the timing for _every_ SQL query in _every_ awx
Python process that uses the Django ORM will be measured
queries that run longer than (in this example) 2 seconds will be
written to a per-process sqlite database in /var/lib/awx/profile, and
the file will contain an EXPLAIN VERBOSE for the query and the full
Python stack that led to that SQL query's execution (this includes not
just WSGI requests, but background processes like the runworker and
dispatcher)
$ awx-manage profile_sql --threshold=0
...can be used to disable profiling again (if you don't want to wait for
the minute to expire)
a recent change (65641c7) made it so that we call
ansible-playbook using its _absolute path_ (i.e.,
/usr/bin/ansible-playbook, /var/lib/venv/xyz/bin/ansible-playbook), so
this logic is no longer correct