* Build a list of playbooks and store it in the database at sync time
* Fix an issue running playbook sync on jobs for scan jobs
* Remove a TODO that was unneeded
* Instead of using a fanout for project updates initial project
updates will sync the latest commit hash
* Prior to a node running a job it will ensure that the latest project
is synced
* Add a local node queue to execute targeted jobs
* Add a setting for active cluster node id (per-node)
* Base the heartbeat time on the `modified` time on the Instance table
* Add periodic task that calls save() on the instance to update the
heartbeat time if services are up
* Purge/update any ha/instance management commands
* Fix up CELERY_ROUTES settings data structure
TODO:
* Need a distributed lock (leverage postgres)
* Less memory-intensive graph representation
* Maybe serializer/deserializer graph to database
* Iterative graph building instead of full rebuild.
* First pass, adapt singleton task manager to process messages and run
jobs based on events instead of a busy loop.
* Still need to make message handing run in celery, not in a consumption
loop
* Add separate Django app for configuration: awx.conf.
* Migrate from existing main.TowerSettings model to conf.Setting.
* Add settings wrapper to allow get/set/del via django.conf.settings.
* Update existing references to tower_settings to use django.conf.settings.
* Add a settings registry to allow for each Django app to register configurable settings.
* Support setting validation and conversion using Django REST Framework fields.
* Add /api/v1/settings/ to display a list of setting categories.
* Add /api/v1/settings/<slug>/ to display all settings in a category as a single object.
* Allow PUT/PATCH to update setting singleton, DELETE to reset to defaults.
* Add "all" category to display all settings across categories.
* Add "changed" category to display only settings configured in the database.
* Support per-user settings via "user" category (/api/v1/settings/user/).
* Support defaults for user settings via "user-defaults" category (/api/v1/settings/user-defaults/).
* Update serializer metadata to support category, category_slug and placeholder on OPTIONS responses.
* Update serializer metadata to handle child fields of a list/dict.
* Hide raw data form in browsable API for OPTIONS and DELETE.
* Combine existing licensing code into single "TaskEnhancer" class.
* Move license helper functions from awx.api.license into awx.conf.license.
* Update /api/v1/config/ to read/verify/update license using TaskEnhancer and settings wrapper.
* Add support for caching settings accessed via settings wrapper.
* Invalidate cached settings when Setting model changes or is deleted.
* Preload all database settings into cache on first access via settings wrapper.
* Add support for read-only settings than can update their value depending on other settings.
* Use setting_changed signal whenever a setting changes.
* Register configurable authentication, jobs, system and ui settings.
* Register configurable LDAP, RADIUS and social auth settings.
* Add custom fields and validators for URL, LDAP, RADIUS and social auth settings.
* Rewrite existing validator for Credential ssh_private_key to support validating private keys, certs or combinations of both.
* Get all unit/functional tests working with above changes.
* Add "migrate_to_database_settings" command to determine settings to be migrated into the database and comment them out when set in Python settings files.
* Add support for migrating license key from file to database.
* Remove database-configuable settings from local_settings.py example files.
* Update setup role to no longer install files for database-configurable settings.
f 94ff6ee More settings work.
f af4c4e0 Even more db settings stuff.
f 96ea9c0 More settings, attempt at singleton serializer for settings.
f 937c760 More work on singleton/category views in API, add code to comment out settings in Python files, work on command to migrate settings to database.
f 425b0d3 Minor fixes for sprint demo.
f ea402a4 Add support for read-only settings, cleanup license engine, get license support working with DB settings.
f ec289e4 Rename migration, minor fixmes, update setup role.
f 603640b Rewrite key/cert validator, finish adding social auth fields, hook up signals for setting_changed, use None to imply a setting is not set.
f 67d1b5a Get functional/unit tests passing.
f 2919b62 Flake8 fixes.
f e62f421 Add redbaron to requirements, get file to database migration working (except for license).
f c564508 Add support for migrating license file.
f 982f767 Add support for regex in social map fields.
* ramparts_and_ha: (21 commits)
Rename database migrations for devel integration
Integrate callback receiver refactoring
Fix an issue running jobs in the cluster
Implement a more dynamic celery queue system
Purge old munin monitors and tools
Refactor Tower HA Instance logic and models
Docker compose improvements
Initial Docker Compose workflow for Tower cluster
Add memcached role for setup playbook
Removing qpid from deb packaging
Refactor rabbitmq role
Integrate memcached into setup playbook
Remove mongodb shutdown task
Remove dependency on erlang_sd_notify
Add initial rabbitmq role
Initial rabbitmq setup playbook integration
Update development environment for rabbit
Replace qpid with rabbitmq
Remove redis role from setup playbook
Update qpid packaging, remove migrations
...
* Drop ZMQ as the communication mechanism between job_event_callback and
callback_receiver
* Setup queue and exchange for callback broker communication
* Refactor event plugin and callback receiver to efficiently handle
message submission and processing
* Integrate django caching for parent processing
* Meant to be a starting point to more efficiently manage work routing
and to balance work across all tower nodes
* Integrate flower as a dev tool that starts alongside other nodes.
Helpful for observing and monitoring the queues/exchanges
* For the moment, force the task manager to only run on one node (not
sure if this is needed)
* Define queues and routes for all task work
* Bump celery version to 3.1.23
* Expose flower through haproxy
* stable: (24 commits)
Updating changelogs for 3.0.2 release
fixing deprecated_team.organization credential migration
Fix issue when installing bundled ansible on el6
fixed localed date stuff
update test to check org_auditor access
ensure team organizations are assigned to credentials
temporarily pin the pytest version until the ldap error can be fixed
fixed locale
fix date locale angular scheduler
Make sure org admins can see credential after migration, comment updates on related tests add clause in test to verify automatic setting of org of new team credential
Update team admin credential migration test to current state-of-knowledge
fix ng-toast rel, resolves#3197 (#3316)
allow users to edit their first and last name
Revert "Prevent ignored task from being displayed as failing."
Revert "Modify job event save behavior"
fixing old tests for new user creation permissions
Clean venv on 'make clean'
Resolve KeyError by coercing instance_id to a str
Update cloudforms dynamic inventory
Update foreman inventory script
...
Sometimes the job host summaries can land a little later after the job
has finished so sometimes events are still filtering in when the
notifications are triggered
Various fixes to get sat-6 integration working.
* inventory_import.py - the inventory script is called foreman.py
* tasks.py - be sure to call `add_section()` before using it
* defaults.py - Add various SATELLITE6_* enablement variables
Relates #3119