Commit Graph

48 Commits

Author SHA1 Message Date
AlanCoding
a6404bdd0d Move development PROJECTS_ROOT 2019-10-25 15:48:07 -04:00
Bill Nottingham
0fb7c859f4 Revert 9b95cc27c4.
We do not want to create a new setting for a on-Tower-host global
collection path at this time.
2019-09-04 11:43:33 -04:00
chris meyers
9b95cc27c4 map in a global collections path 2019-07-17 15:36:09 -04:00
AlanCoding
06be3a29b9 fix Django debug toolbar after its upgrade 2019-05-20 12:17:57 -04:00
Ryan Petrello
eed94b641e add a custom DB backend that provides system-level SQL profiling
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)
2019-02-14 15:04:46 -05:00
Ryan Petrello
f223df303f convert py2 -> py3 2019-01-15 14:09:01 -05:00
AlanCoding
cccc038600 Updates to logging, specifically for unit tests 2019-01-15 11:34:54 -05:00
AlanCoding
65e110cdbf catch python error when unable to find user 2018-12-13 11:47:54 -05:00
AlanCoding
482395eb6a reduce default verbosity of devel-specific callback logging 2018-10-26 10:03:46 -04:00
Ryan Petrello
ff1e8cc356 replace celery task decorators with a kombu-based publisher
this commit implements the bulk of `awx-manage run_dispatcher`, a new
command that binds to RabbitMQ via kombu and balances messages across
a pool of workers that are similar to celeryd workers in spirit.
Specifically, this includes:

- a new decorator, `awx.main.dispatch.task`, which can be used to
  decorate functions or classes so that they can be designated as
  "Tasks"
- support for fanout/broadcast tasks (at this point in time, only
  `conf.Setting` memcached flushes use this functionality)
- support for job reaping
- support for success/failure hooks for job runs (i.e.,
  `handle_work_success` and `handle_work_error`)
- support for auto scaling worker pool that scale processes up and down
  on demand
- minimal support for RPC, such as status checks and pool recycle/reload
2018-10-11 10:53:30 -04:00
Ryan Petrello
da74f1d01f refactor and test the callback receiver as a base for a task dispatcher 2018-10-11 10:53:26 -04:00
chris meyers
97ab6449b9 parallelize test running 2018-05-16 14:29:15 -04:00
AlanCoding
59744e421f send our oddball loggers to external logger too 2018-05-02 15:33:58 -04:00
Chris Meyers
d551566b4d Merge pull request #1372 from chrismeyersfsu/old-celery3
celery 4.x to 3.x roll back
2018-02-27 15:26:46 -05:00
chris meyers
fe05b4c0d5 use celery 3.x BROKER_URL
* Celery 4.x specifies the broker via CELERY_BROKER_URL. Since we are
now on 3.x, use 3.x way of specifying the broker via BROKER_URL
2018-02-27 11:36:55 -05:00
Bill Nottingham
e7a8ecc05a Fix another instance. 2018-02-26 14:57:24 -05:00
Bill Nottingham
9c722cba22 Remove some obsolete code. 2018-02-26 14:55:13 -05:00
Matthew Jones
6e9930a45f Use on_commit hook for triggering ig policy
* also Apply console handlers to loggers for dev environment
2018-02-01 16:56:43 -05:00
Wayne Witzel III
a858093db8 Update to asgi_amqp 1.0.1 2017-11-27 19:41:30 +00:00
Wayne Witzel III
f118e27047 Flake8 fixes and URL updates 2017-11-10 17:04:33 -05:00
Wayne Witzel III
8faf588775 Update package versions, settings, and tooling 2017-11-09 17:17:30 -05:00
Ryan Petrello
7d12427497 add a new configurable, PROXY_IP_WHITELIST
implement a whitelist setting that - if populated - will only allow
specific IPs/hostnames to provide custom REMOTE_HOST_HEADERS header
values (i.e., `HTTP_X_FORWARDED_FOR`)

see: #6538
2017-07-10 10:31:45 -04:00
Bill Nottingham
efe0f86705 Set TIME_ZONE to None.
This causes Tower to use the system timezone.
2017-01-10 10:51:23 -05:00
Matthew Jones
06dd5bb5d2 Fix an invalid database backend in unit test settings 2016-11-03 16:09:17 -04:00
AlanCoding
83e31b8618 remove timeout settings example, attach minimum timeout values 2016-11-02 14:59:51 -04:00
AlanCoding
de66318381 move timeout settings into 3 different settings vars 2016-11-02 14:59:51 -04:00
Chris Meyers
250a71907d update for commit hook 2016-11-02 08:25:51 -05:00
Aaron Tan
21feae7c11 Rename default timeout and remove runtime_flag. 2016-10-17 16:56:39 -04:00
Aaron Tan
96e3228c9d Change global settings structure and fix potential celery issue. 2016-10-17 16:56:39 -04:00
Wayne Witzel III
1a9843d5d1 adding initial channels integration 2016-10-04 14:04:52 -07:00
Wayne Witzel III
530a5c0c88 merging devel 2016-10-03 10:35:50 -04:00
Wayne Witzel III
258ddba333 add channels to reqs and defaults 2016-09-27 18:39:19 -04:00
Chris Church
6ebe45b1bd Configure Tower in Tower:
* 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.
2016-09-26 22:14:47 -04:00
Matthew Jones
ebf103f345 Initial Docker Compose workflow for Tower cluster
The goal is to share a common pattern with the existing development work
2016-09-08 10:18:14 -04:00
Matthew Jones
f3b7fe18ce Integrate memcached into setup playbook 2016-09-01 11:41:20 -04:00
Matthew Jones
f0b7622672 Update development environment for rabbit 2016-08-31 14:47:20 -04:00
Matthew Jones
dcb4959443 Initial qpid development work
* Switch base tower devel image from u14.04 to c7
* Switch container image to build python dependencies into itself
  instead of forcing it to be built on startup
* Upgrade venv pip to 8.1.2
* Neuter queue.py which was heavily tied to redis and was basically
  orphaned code
* Alter local_settings to override default cache settings and use
  memcached
* Alter local settings to refer to qpid instead of redis for celery
  broker
* Purge redis python dependencies and add qpid and memcached
* Update docker-compose to purge redis and add qpid and memcached
2016-08-24 16:23:47 -04:00
AlanCoding
06c37d39ef Make development environment use ATOMIC_REQUESTS 2016-07-14 14:43:25 -04:00
Matthew Jones
e5bebf7b51 Change docker project default directory 2016-05-05 11:04:53 -04:00
AlanCoding
ca682fb362 remove connection error in fresh install, mongo setting in dev environment 2016-04-20 10:15:06 -04:00
Chris Church
60224cdbe4 Update Django to 1.8 and DRF to 3.3, add new Django migrations, update serializers/pagination/metadata, update browsable API styling. 2016-02-02 17:48:04 -05:00
Wayne Witzel III
3d4580611e added pytest to requirements_dev
reworking test strucutre

reworked pytest.ini, removed functional imports, updated req_dev

remove unneeded __init__ files

add testing checker to local_settings examples

adding testing packages to system Python for docker
2016-02-01 18:37:56 -05:00
Chris Church
8552ea91a8 Add sample config for LDAP connection options, disable referrals by default, prefetch user groups to reduce LDAP queries when checking group memberships. 2015-12-11 15:00:20 -05:00
Chris Church
dde71a3b28 Remove social auth user fields settings that don't have any effect. 2015-11-17 15:18:40 -05:00
Chris Church
cd447bed96 Social auth and SSO updates:
* Move auth backends into sso app.
* Add support for mapping social auth users into organizations and teams.
* Return social auth backends in a consistent order in the API.
* Remove custom SAML attribute mapping and use options provided by PSA.
* Add pipeline function to raise an exception if no user has been found or created; added comments on how to disable new user creation.
* Add comments for defining a custom social auth pipeline function.
2015-11-13 11:30:55 -05:00
Matthew Jones
aa9357fb14 Include new social auth settings in compose 2015-10-09 11:58:48 -04:00
Matthew Jones
ad95548d48 Fix up docker compose local settings 2015-10-09 11:58:48 -04:00
Matthew Jones
acc974289f Unit test for AWS STS token support 2015-09-30 13:42:16 -04:00