1
0
mirror of https://github.com/ansible/awx.git synced 2024-10-30 05:25:29 +03:00
Commit Graph

642 Commits

Author SHA1 Message Date
chris meyers
a56771c8f0 send all tower work to a user-hidden queue
* Before, we had a special group, tower, that ran any async work that
tower needed done. This allowed users fine grain control over which
nodes did background work. However, this granularity was too complicated
for users. So now, all tower system work goes to a special non-user
exposed celery queue. Tower remains the fallback instance group to
execute jobs on. The tower group will be created upon install and
protected from deletion.
2018-04-20 13:04:36 -04:00
AlanCoding
5eaffb3520
run ansible tests separately 2018-04-16 10:32:51 -04:00
Ben Thomasson
43601be8a7 Removes --fake-initial from awx-manage migrate.
The --fake-initial option is no longer needed and can cause
application with an initial migration to fail as was seen
in the network_ui application.
2018-04-02 15:34:39 -04:00
Ryan Petrello
13672cc88c
fix busted shippable builds 2018-03-05 14:16:42 -05: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
e4470aa4cf remove uneeded celery configs
* Celery routes and queues are set and defined at runtime. Thus, a
static definition of routes and queues is not needed.
2018-02-27 11:36:55 -05:00
Ryan Petrello
d743b77353 replace our rdb tooling w/ the sdb PyPI package 2018-02-26 19:05:50 -05:00
Ryan Petrello
605c5e3276
fix celery pid restart issues 2018-02-09 11:03:00 -05:00
Ryan Petrello
8b976031cb
use VERSION_TARGET for Swagger doc generation 2018-02-06 10:48:51 -05:00
Ryan Petrello
7ff9f0b7d1
build example Swagger request and response bodies from our API tests 2018-02-06 10:36:25 -05:00
Ryan Petrello
57c22c20b2
add support for building swagger/OpenAPI JSON
to build, run `make swagger`; a file named `swagger.json` will be
written to the current working directory
2018-02-06 10:12:57 -05:00
Matthew Jones
6163cc6b5c
Merge pull request #1058 from ansible/scalable_clustering
Implement Container Cluster-based dynamic scaling
2018-02-02 09:22:06 -05:00
Ryan Petrello
35230eded1
run the celery reload in a shell so the uwsgi hook isn't fatal on fail 2018-02-01 22:32:08 -05:00
Matthew Jones
d9e774c4b6
Updates for automatic triggering of policies
* Switch policy router queue to not be "tower" so that we don't
  fall into a chicken/egg scenario
* Show fixed policy list in serializer so a user can determine if
  an instance is manually managed
* Change IG membership mixin to not directly handle applying topology
  changes. Instead it just makes sure the policy instance list is
  accurate
* Add create/delete hooks for instances and groups to trigger policy
  re-evaluation
* Update policy algorithm for fairer distribution
* Fix an issue where CELERY_ROUTES wasn't renamed after celery/django
  upgrade
* Update unit tests to be more explicit
* Update count calculations used by algorithm to only consider
  non-manual instances
* Adding unit tests and fixture
* Don't propagate logging messages from awx.main.tasks and
  awx.main.scheduler
* Use advisory lock to prevent policy eval conflicts
* Allow updating instance groups from view
2018-02-01 16:56:16 -05:00
Chris Meyers
0e97dc4b84
Beat and celery clustering fixes
* use embedded beat rather than standalone
* dynamically set celeryd hostname at runtime
* add embeded beat flag to celery startup
* Embedded beat mode routes will piggyback off of celery worker setup
signal
2018-02-01 16:47:33 -05:00
Chris Meyers
c9ff3e99b8
celeryd attach to queues dynamically
* Based on the tower topology (Instance and InstanceGroup
relationships), have celery dyamically listen to queues on boot
* Add celery task capable of "refreshing" what queues each celeryd
worker listens to. This will be used to support changes in the topology.
* Cleaned up some celery task definitions.
* Converged wrongly targeted job launch/finish messages to 'tower'
queue, rather than a 1-off queue.
* Dynamically route celery tasks destined for the local node
* separate beat process

add support for separate beat process
2018-02-01 16:37:33 -05:00
Ryan Petrello
e7ed4811c1
reload the entire celery worker pool when uwsgi reloads the Python app
this is for the development environment only; when uwsgi notices a code
change, it automatically reloads the uwsgi workers; this patch includes
a hook that sends `SIGHUP` to the celery process, causing it to spawn
a new set of workers as well
2018-01-25 14:59:40 -05:00
Shane McDonald
52e531625c Use first parent commit when determining version from tags
We were having issues where an older tag was being outputed from `git describe`.

From the man page:

Follow only the first parent commit upon seeing a merge commit. This is useful when you wish to not match tags on branches merged in the history of the target commit.
2018-01-15 11:01:47 -05:00
Matthew Jones
9dbcc5934e
Merge remote-tracking branch 'tower/release_3.2.2' into devel 2017-12-13 12:25:47 -05:00
Matthew Jones
34c206fab0
Bump psql-container pg version to 9.6 2017-12-11 12:01:28 -05:00
Matthew Jones
da0b686369
Adding jupyter notebook support to the AWX development environment
* Jupyter starts alongside the other awx services and is available on
  0.0.0.0:8888
* make target: make jupyter
* default settings in settings/development.py
* Added jupyter, matplotlib, numpy to dev dependencies
2017-12-05 23:46:18 -05:00
Wayne Witzel III
8faf588775
Update package versions, settings, and tooling 2017-11-09 17:17:30 -05:00
Jake McDermott
77e11fe8fe
collect unit test results for shippable
Signed-off-by: Jake McDermott <jmcdermott@ansible.com>
2017-11-02 01:22:07 -04:00
Jake McDermott
4883876dc5
run both unit test suites and linting tasks 2017-11-01 13:36:34 -04:00
Ryan Petrello
5bb06fdb50
stop hard-coding the awx version in the isolated development environment
see: #296
2017-10-13 12:17:04 -04:00
Matthew Jones
523734a6af
omit old unit tests from "test" make target 2017-09-21 21:33:34 -04:00
Jake McDermott
2a9c97f96d
remove unused config 2017-09-15 17:22:23 -04:00
Wayne Witzel III
f1c9d5a8f4
Add PR template and tweak make VERSION output to be pastable 2017-09-12 09:56:35 -04:00
Matthew Jones
6e4d886ea4
Reduce the size of the production container image 2017-08-22 13:21:53 -04:00
Alan Rominger
dcfcfb6c7b Merge pull request #245 from AlanCoding/fix_supervisor
specify all group queues, get supervisor working
2017-08-14 11:31:00 -04:00
Matthew Jones
dd44f7a640 Merge pull request #236 from matburt/contributing_and_other_docs
CONTRIBUTING.md and other docs
2017-08-11 10:30:55 -04:00
AlanCoding
2385f62311 specify all group queues, get supervisor working 2017-08-10 14:57:25 -04:00
Matthew Jones
67474c8de1 Updating development tooling to be more generic
* Not assuming GCR is being used for image hosting
* Breaking out the dev environment bootstrapping from service starting
2017-08-09 15:53:25 -04:00
AlanCoding
afb267cee9 update awx-manage command to new name 2017-08-08 15:18:07 -04:00
Shane McDonald
f4aacebb86 Fix OpenShift container image builds 2017-08-07 17:31:18 -04:00
Shane McDonald
9c56a18ced Remove PACKAGE_BUILD logic from Makefile
Also fix some whitespace
2017-08-03 16:22:59 -04:00
Matthew Jones
af3652bb2f Updates to production container builds for new repository 2017-08-03 10:39:04 -04:00
Shane McDonald
ac9fcdb63e Bump setuptools version
This addresses a bug I was seeing when running `pip download setuptools --no-binary=:all:`.
2017-08-01 10:13:04 -04:00
Shane McDonald
97b7321920 Cleaning up Makefile
Removing references to and definitions of unused targets
2017-07-27 16:46:40 -04:00
Shane McDonald
1b8b6e1159 Remove default goal from makefile
There is no build target anymore
2017-07-27 16:32:09 -04:00
Shane McDonald
f3130e06c9 Add i18n flag file back to makefile
This was accidentally deleted during the repo split
2017-07-27 16:30:29 -04:00
Shane McDonald
9979513e24 Remove unused variable from setup.py invocations 2017-07-25 11:10:18 -04:00
Shane McDonald
3f3b02dbea Fix whitespace 2017-07-25 11:10:18 -04:00
Shane McDonald
7695cb6419 Fix version when installing from sdist
When installing an sdist, setup.py is invoked on the machine you're installing on. We extract the version from a git tag, but the repo is not included in the sdist. The git describe --long command will silently fail and cause the installed package to report version 0.0.0.0.
2017-07-25 11:09:51 -04:00
Matthew Jones
1a706b6154 Commands to generate a python wheel for packaging 2017-07-24 12:36:52 -04:00
Shane McDonald
17db724932 Make packaging work with our internal build systems 2017-07-21 21:27:02 -04:00
Matthew Jones
3892e4e389 Tower -> AWX Tooling Migration
* Switching version number scheme and mechanism
* Refactor development tooling towards 'awx' paths and names
* Purging packaging details from Makefile
2017-07-21 17:06:45 -04:00
Shane McDonald
4a175222b5 Cache i18n make targets 2017-07-17 09:41:47 -04:00
Shane McDonald
3450937329 Install tower-license in debs 2017-07-14 11:35:24 -04:00
Shane McDonald
d273272d9a Add tower-license as a source to the RPM 2017-07-14 11:35:24 -04:00
AlanCoding
592df0c8e2 new target to make the UI 2017-07-07 11:37:51 -04:00
Matthew Jones
d443f5cf48 Merge branch 'containerization' into devel
* containerization:
  Updating make targets for fixes to bringing cluster up and svcs
  Adding Makefile targets for local builds/deployments
  Moving Openshift work to installer directory to reduce conflicts
  Support deploying Tower into OpenShift
  Implementing containerized tower packaging
2017-06-30 16:21:03 -04:00
Matthew Jones
d82c69680b Updating make targets for fixes to bringing cluster up and svcs 2017-06-30 16:06:57 -04:00
Matthew Jones
0ee3ad8c14 Adding Makefile targets for local builds/deployments
Updating paths
2017-06-30 15:25:42 -04:00
Matthew Jones
d1ec8f93c0 Support deploying Tower into OpenShift 2017-06-29 16:31:07 -04:00
Ryan Petrello
611c42f741 fix the make rdb debugging tool 2017-06-29 15:40:09 -04:00
Michael Foord
f93919a8af Remove deprecated and unneeded -e flag to docker login 2017-06-29 12:40:09 +01:00
Shane McDonald
4a8e8d4fbf ansible-tower-isolated RPM 2017-06-28 15:02:34 -04:00
Shane McDonald
4e24a77370 Clean up rpm-sign 2017-06-28 15:02:34 -04:00
Ryan Petrello
3000f52a92 install a randomized RSA key for controller -> isolated rampart auth
see: #6507
2017-06-27 10:53:44 -04:00
AlanCoding
3cedcf22a9 add instance groups and queues to cluster tooling 2017-06-22 10:40:58 -04:00
Chris Meyers
fee16fe391 Merge pull request #6588 from chrismeyersfsu/feature-fact_cache
initial tower fact cache implementation
2017-06-22 09:58:28 -04:00
Ryan Petrello
45bdd9f747 improve readability of the honcho console logs in the dev environment
* colorize uwsgi and celery logs; DEBUG lines are green, WARN lines
  are yellow, ERROR lines (and tracebacks) are red
* pretty-print fact callback receiver JSON
* simplify the uwsgi log format so it's more legible
2017-06-22 09:19:32 -04:00
Chris Meyers
ec2e537f63 remove fache cache receiver 2017-06-21 13:45:27 -04:00
Alan Rominger
2c92f623d8 Merge pull request #6617 from ansible/isolated_setup
setup playbook and heartbeat for isolated deployments
2017-06-20 17:20:53 -04:00
Ryan Petrello
2ba9e56033 Include the Tower venv in the isolated bubblewrapped arguments.
This moves the container-based code location and venvs.
The goal here is that the paths of Tower source for isolated
vs normal nodes matches (both in prod and local development) so that we
don't have to add a bunch of additional bwrap argument logic for
<location-of-isolated-tower-venv>.
2017-06-19 15:52:54 -04:00
AlanCoding
dd1a261bc3 setup playbook and heartbeat for isolated deployments
* Allow isolated_group_ use in setup playbook
* Tweaks to host/queue registration commands complementing setup
* Create isolated heartbeat task and check capacity
* Add content about isolated instances to acceptance docs
2017-06-19 12:13:36 -04:00
Ryan Petrello
422950f45d Support for executing job and adhoc commands on isolated Tower nodes (#6524) 2017-06-14 11:47:30 -04:00
Matthew Jones
0d047ef694 Implementing containerized tower packaging 2017-06-14 09:28:39 -04:00
Matthew Jones
a539a820a7 Updating celery autoscale and prefetch behavior
* Increase total number of celery jobs to match what we are currently
  supporting in production with very large instances
* Make sure celery in the development environment also uses fair
  scheduling without prefetching
2017-05-17 14:33:22 -04:00
Matthew Jones
575a7dd165 Use proper print syntax for Makefile in-line python statements 2017-05-16 10:58:28 -04:00
Shane McDonald
066d2e87e3 Fix DEB builds
I was upgrading virtualenv for good measure in 4545fc1da1488bb1623de82ad19f78702bd6df62, but didnt foresee it causing problems. I was wrong. Worked for everything except Trusty builds.
2017-05-15 11:02:04 -04:00
Shane McDonald
81d10dd7f3 Add awx/ui/client/languages/ to ui-clean target
These json files are generated at build time.
2017-05-15 11:01:07 -04:00
Matthew Jones
1a4a6273a4 Merge branch 'rampart_groups_setup_playbook' into devel
* rampart_groups_setup_playbook:
  Updating changelog for Instance Groups
  Fix an incorrect reference on instance group jobs list
  Purge remaining references to rampart groups
  Simplify can_access for instance groups on job templates
  Adding Instance Group permissions and tests
  Increase test coverage for task scheduler inventory updates
  Exit logic fixes for instance group tools
  View Fixes for instance groups
  new view to allow associations but no creations
  Updating acceptance documentation and system docs
  Updating unit tests for task manager refactoring
  Update views and serializers to support instance group (ramparts)
  Implementing models for instance groups, updating task manager
  Updating the setup playbook to support instance group installation
  Add nginx to server start and switch back to first tmux win
  Fix an issue where the local queue wouldn't use the rabbitmq name
2017-05-12 13:40:30 -04:00
Michael Abashian
070de2fe67 Fixed make docker-compose-test 2017-05-11 17:11:23 -04:00
Shane McDonald
dfdf59bcf5 Fix RPM builds
The version of setuptools bundled with virtualenv is broken. This fixes things for both online and offline pip installs.
2017-05-11 14:26:52 -04:00
Ryan Petrello
2a59e91d4c Merge pull request #6221 from ryanpetrello/rdb-tooling
add tooling to aid in remote debugging sessions
2017-05-10 15:27:30 -04:00
Matthew Jones
705f8af440 Update views and serializers to support instance group (ramparts)
* includes top level views for instances and instance groups and
  extending those views to be able to view running jobs
* Associative endpoints on Organizations, Inventories, and Job
  Templates
* Related and summary field entries where appropriate
* Adding job model references to executing instance group
* Fix up default queue properties for clustering from the settings file
* Update production and default settings for instance queues in settings
2017-05-10 12:33:03 -04:00
Matthew Jones
4ced911c00 Implementing models for instance groups, updating task manager
* New InstanceGroup model and associative relationship with Instances
* Associative instances between Organizations, Inventory, and Job
  Templates and InstanceGroups
* Migrations for adding fields and tables for Instance Groups
* Adding activity stream reference for instance groups
* Task Manager Refactoring:
** Simplifying task manager relationships and move away from the
   interstitial hash tables
** Simplify dependency determination logic
** Reduce task manager runtime complexity by removing the partial
   references and moving the logic into the task manager directly or
   relying on Job model logic for determinism
2017-05-10 12:32:54 -04:00
Matthew Jones
8db7e15ad0 Add nginx to server start and switch back to first tmux win 2017-05-10 10:57:42 -04:00
Aaron Tan
3099fd7a01 Merge pull request #6117 from jangsutsr/dynamic_inv_src_dependency_update
Dependency updates
2017-05-10 09:57:58 -04:00
Ryan Petrello
3126bfa1a2 add tooling to aid in remote debugging sessions 2017-05-09 15:36:13 -04:00
Shane McDonald
55c2f5a2d6 Install Twilio package from source.
Someone uploaded a broken wheel to pypi...
2017-05-09 08:41:57 -04:00
Aaron Tan
cfb633e8a6 Dependency Updates
* Dynamic Inventory Source
Template against ansible 2.3 dynamic inventory sources.
The major change is removal of `rax.py`. Most upstream scripts except
`foreman.py` has quite trivial coding style changes, or minor functional
extensions  that does not affect Tower inventory update runs.
`foreman.py`, on the other hand, went through quite a major refactoring,
but functionalities stay the same.

Major python dependency updates include apache-libcloud (1.3.0 -->
2.0.0), boto (2.45.0 --> 2.46.1) and shade (1.19.0 --> 1.20.0). Minor
python dependency updates include indirect updates via `pip-compile`,
which are determined by base dependencies.

Some minor `task.py` extensions:
 - `.ini` file for ec2 has one more field `stack_filter=False`, which
   reveals changes in `ec2.py`.
 - `.ini` file for cloudforms will catch these four options from
   `source_vars_dict` of inventory update: `'version', 'purge_actions',
   'clean_group_keys', 'nest_tags'`. These four options have always been
   available in `cloudforms.py` but `cloudforms.ini.example` has not
   mentioned them until the latest version. For consistency with upstream
   docs, we should make these fields available for tower user to customize.
 - YAML file of openstack will catch ansible options `use_hostnames`,
   `expand_hostvars` and `fail_on_errors` from `source_vars_dict` of
   inventory update as a response to issue #6075.

* Remove Rackspace support
Supports of Rackspace as both a dynamic inventory source and a cloud
credential are fully removed. Data migrations have been added to support
arbitrary credential types feature and delete rackspace inventory
sources.

Note also requirement `jsonschema` has been moved from
`requirements.txt` to `requirements.in` as a primary dependency to
reflect it's usage in `/main/fields.py`.

Connected issue: #6080.

* `pexpect` major update
`pexpect` stands at the very core of our task system and underwent a
major update from 3.1 to 4.2.1. Although verified during devel, please
still be mindful of any suspicious issues on celery side even after this
PR gets merged.

* Miscellaneous
 - requests now explicitly declared in `requirements.in` at version 2.11.1
   in response to upstream issue
 - celery: 3.1.17 -> 3.1.25
 - django-extensions: 1.7.4 -> 1.7.8
 - django-polymorphic: 0.7.2 -> 1.2
 - django-split-settings: 0.2.2 -> 0.2.5
 - django-taggit: 0.21.3 -> 0.22.1
 - irc: 15.0.4 -> 15.1.1
 - pygerduty: 0.35.1 -> 0.35.2
 - pyOpenSSL: 16.2.0 -> 17.0.0
 - python-saml: 2.2.0 -> 2.2.1
 - redbaron: 0.6.2 -> 0.6.3
 - slackclient: 1.0.2 -> 1.0.5
 - tacacs_plus: 0.1 -> 0.2
 - xmltodict: 0.10.2 -> 0.11.0
 - pip: 8.1.2 -> 9.0.1
 - setuptools: 23.0.0 -> 35.0.2
 - (requirements_ansible.in only)kombu: 3.0.35 -> 3.0.37
2017-05-08 12:03:02 -04:00
Matthew Jones
e1e83598e9 Merge branch 'release_3.1.3' into devel
* release_3.1.3: (52 commits)
  ack fact scan messages
  making ldap user/group search fields into codemirror instances
  removing UI parsing for LDAP User and Group Search fields
  Allow exception view to accept all valid HTTP methods.
  Restore ability of parsing extra_vars string for provisioning callback.
  Fix up backup/restore role broken in f7a8e45809758322d9ee41c5305850dd70ed5faf
  Stop / start ansible-tower-service during restores
  value_to_python should encode lookup fields as ascii
  fix brace interpolation on standard out pane
  Adjust some hardcoded usages of 'awx' to use 'aw_user' and 'aw_group'.
  Pull Spanish updates from Zanata
  Temporarily grant awx user createdb role
  Stop giving ownership of backups to postgres
  don't display chunked lines'
  Add dropdown li truncation with ellipsis
  CTiT -> adhoc modules should allow the user to add new modules
  Remove task that was replacing the supervisor systemd tmp file
  Fix failing supervisorctl commands on RH-based distros
  Give ownership of the supervisor socket to awx
  Setting for external log emissions cert verification
  ...
2017-04-28 13:57:04 -04:00
Shane McDonald
896460d32e Build psycopg2 from source
Fixes Ubuntu build errors where dh_strip was choking on a shared object file.
2017-04-20 11:15:21 -04:00
Chris Meyers
8c8ccba5a5 add mock to ansible dev env requirements 2017-04-18 12:31:05 -04:00
Matthew Jones
645c2dbbc6 Switch uwsgi to only listen on local interface
Previously it would listen systemwide on 0.0.0.0:8050
2017-04-11 10:55:20 -04:00
Shane McDonald
d600706150 Use jinja template for populating version and release in spec file
These macros were intended to pull the version and release from a python file if they werent passed in with --define, but /usr/bin/python is not available at this point in the build process. I'm not sure when or if this ever worked. Perhaps before we were using mock.

This approach also works for our Brew builds, as we cannot specify a macro value at build time.
2017-04-03 10:32:46 -04:00
Shane McDonald
f087dd40e2 Sign all rpms
:shame:
2017-03-31 15:57:16 -04:00
Shane McDonald
5d8e4d0419 Add back SRC_ONLY_PKGS
Ooops.
2017-03-30 13:08:48 -04:00
Shane McDonald
8c7947b1a8 Remove requirements/vendor on make clean. 2017-03-29 14:30:58 -04:00
Shane McDonald
d9e65823ad Update brew-srpm target to generate local requirements files
This looks pretty hairy, but essentially it's just re-invoking `pip download` with `--no-deps` so that I can record the name of the local archives that are created.
2017-03-29 14:30:58 -04:00
Shane McDonald
93dda555f1 Get offline pip installs working
I had to pull the git urls out of the main requirements files because in order to install offline (--no-index), we need pip to install from local package archives rather than cloning repo.

The weird `cat` thing going on in the Makefile is because we need to install everything as part of a single `pip install` transaction. Without this, installing only requirements_git.txt will result in dependencies getting unintentionally updated.
2017-03-29 14:30:58 -04:00
Shane McDonald
83919682ea Add clean-dist target 2017-03-29 14:30:58 -04:00
Shane McDonald
0e2a2d61e2 Create a setup subpackage 2017-03-23 16:46:25 -04:00
Shane McDonald
d76d55adaf Add brew-srpm target 2017-03-15 11:06:34 -04:00
Shane McDonald
7e1eeb994b Add make targets for vendoring python requirements 2017-03-15 11:04:54 -04:00
Shane McDonald
c94f294d06 Use --ignore-installed when creating virtualenvs 2017-03-15 11:04:54 -04:00
Shane McDonald
fbb6650ad0 Add PIP_OPTIONS
This will allow us to conditionally pass in things like --no-index and --find-links, which will be necessary for building in Brew.
2017-03-15 11:04:54 -04:00
Shane McDonald
092c0b739e Simplify requirements targets
AFAIK, there is never a situation where VENV is going to be unset.
2017-03-15 11:04:54 -04:00
Ryan Petrello
ba9ce56c35 add callback plugin tests to CI 2017-03-14 14:07:56 -04:00
Ryan Petrello
1005782ee9 add tests for our custom ansible callback plugin 2017-03-14 12:56:40 -04:00
Shane McDonald
90e30d348f Revert "Dont ignore installed packages when installing requirements"
This reverts commit 4ffc1a41f454d511fc523aaf8d3ab65dbe45c80e.
2017-03-13 16:21:27 -04:00
Shane McDonald
4875d60b97 Dont ignore installed packages when installing requirements
This was causing some packages to get unexpectedly upgraded... probably not what we want.
2017-03-13 16:00:47 -04:00
Shane McDonald
388b0fdf04 Force reinstall of setuptools and pip
For some reason -I wasn't cutting it. Even though we were trying to install pip 8.1.2, this was happening:

Collecting pip==8.1.2
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-9.0.1

¯\_(ツ)_/¯
2017-03-11 19:06:28 -05:00
Shane McDonald
053ecd1093 Make sure ui deps are built for jshint 2017-03-09 19:15:46 -05:00
Shane McDonald
323e8ad8f0 Add awx/ui/coverage to clean target 2017-03-09 18:54:24 -05:00
Graham Mainwaring
a33b5567e8 Fixes for Vagrant build 2017-03-08 16:01:29 -05:00
AlanCoding
d1a71fb7be add supervisor option to development environment 2017-02-13 17:36:34 -05:00
Ryan Petrello
f4d55659f0 enforce a sane default OPT_NETWORK_TIMEOUT for LDAP connections
see: #5208
2017-02-07 12:37:05 -05:00
Matthew Jones
5eff937f5c Fix location of the uwsgi fifo for dev environment 2017-02-06 16:22:38 -05:00
Matthew Jones
a544e322fd Merge pull request #5080 from ansible/generate_stdout_files
Generate stdout files from job events
2017-01-31 14:46:30 -05:00
Matthew Jones
4a015da982 Purge old mongo Makefile targets, update psql target for new docker 2017-01-31 14:28:48 -05:00
Bill Nottingham
b57f96d172 Merge pull request #4904 from wenottingham/lets-touch-selinux-what-could-go-wrong
Remove most SELinux policy.
2017-01-31 13:00:38 -05:00
Jake McDermott
374453391d update tower build url 2017-01-31 10:43:20 -05:00
Ryan Petrello
73cbcc2de0 add awx.conf tests to our various test run environments 2017-01-30 12:37:17 -05:00
Ryan Petrello
2568c86b71 Merge pull request #4955 from ryanpetrello/fix-4900
move the uwsgi master FIFO from /tmp/awxfifo to /var/lib/awx/awxfifo
2017-01-26 10:11:21 -05:00
Shane McDonald
35deb0be37 Simplify UI / Docker targets
- Renamed npm scripts to reflect what they are actually doing. Nothing is being built here!
- Not sure why the default django_host was 0.0.0.0…
- Removed unnecessary logic from build-docker-cid
2017-01-25 18:45:48 -05:00
Shane McDonald
790f30b3cd Prevent npm install from running every time make ui-docker* is invoked
awx/ui/package.json is a normal file in the repo, not created by Make.
2017-01-25 18:45:47 -05:00
Ryan Petrello
f061505895 move the uwsgi master FIFO from /tmp/awxfifo to /var/lib/awx/awxfifo
Resolves #4900
2017-01-25 16:37:11 -05:00
Bill Nottingham
c01eccca7e Remove most SELinux policy.
Add file contexts to policy instead of using semanage.
2017-01-24 01:50:34 -05:00
Shane McDonald
b60b4b2bc1 Generate .mo files without django, enable API l10n at build time. 2017-01-23 12:25:56 -05:00
Shane McDonald
cbf0c2704d Separate API and UI l10n make targets.
A couple reasons for this:

- The command for generating the API l10n files is currently broken, and I want to get the translation folks looking at the UI ASAP.
- These things require different environments:
  - Generating the UI files requires Grunt, which is only available *before* packaging. We generate the static files before invoking mock or pbuilder.
  - Generating the API files requires Django, which is only available inside the virtual environment. This will likely need to be invoked somewhere inside of the install playbooks.
2017-01-12 21:09:18 -05:00
AlanCoding
cc4aa49556 pool restart with thread-based external log config
for CTiT enablement of celery task Tower logs
2017-01-04 14:53:49 -05:00
AlanCoding
67686f640b finish implementation of data generator presets, fix flake8 2017-01-03 09:23:27 -05:00
AlanCoding
c3aaccc0d4 make it so that repeated runs do not cause problems 2016-12-22 13:53:19 -05:00
AlanCoding
1346f7b580 fixing some of most annoying problems with bulk data generator 2016-12-22 12:03:56 -05:00
Chris Meyers
b533a9eb7b purge make requirements_jenkins 2016-12-14 10:30:28 -05:00
Chris Meyers
6348ed97dd uninstall certifi if installed in venv's 2016-12-14 09:53:24 -05:00
Shane McDonald
3597c34593 Rename .te filename to reflect selinux policy name
https://patchwork.kernel.org/patch/8784071/

While renaming the policy would have been a “cleaner” solution, this would create a scenario where our setup playbooks would need to check for the policy by it’s old name before installing the new one. Updating the filename to reflect the policy name is the least invasive and risky change.
2016-12-12 15:55:49 -05:00
Wayne Witzel III
c6e1598b9c explicitly set long harakiri time to deal with very large inventory deletes 2016-12-12 12:44:05 -05:00
AlanCoding
431dcc6490 switch to smoother chain reloading 2016-12-09 15:38:38 -05:00
AlanCoding
5ff62c97b6 uwsgi auto-reload on logging change 2016-12-09 15:21:03 -05:00
Matthew Jones
cd11a9c1c2 peg compose tag to active branch 2016-12-06 13:32:33 -05:00
AlanCoding
7848198b9f New awx.main.utils directory, distributed task to invalidate settings 2016-12-02 14:36:04 -05:00
AlanCoding
f3427d1359 Logging Integration, ELK docker-compose as update file 2016-11-29 13:09:47 -05:00
Shane McDonald
7342210ca6 Remove awx/job_output in clean target 2016-11-23 08:55:55 -05:00
Shane McDonald
c80a750457 Merge pull request #4012 from shanemcd/activate-venv-flake8
Activate venv in flake8 target
2016-11-15 10:11:45 -05:00
Shane McDonald
4330eb7907 Activate venv in flake8 target 2016-11-15 09:54:42 -05:00
Chris Meyers
1883485724 towards virtualenv being exactly requirements.txt
* Ignore already installed (usually global) packages when installing
requirements.txt into the virtualenv.
2016-11-15 09:19:29 -05:00
Shane McDonald
5657671fb9 Add unit test artifacts to clean target 2016-11-11 14:39:23 -05:00
Leigh Johnson
0d3eb67bd0 Fixes namespace collision & allows command-line options to be passed to UI build system (#3876)
* Fixes BrowserSync window.name namespace collision #3872

* Allow command-line arguments to be passed to development UI builds.
Add support for --ng-debug and --router-debug flags to turn on Angular's
$log service and ui-router's trace utility.
Cleans up development debug settings & defunct websocket configuration.

Resolves lingering issues raised by trying read asynchronously-loaded config file during AngularJS config phase. #3872

* shrinkwrap updated minimist

* update CONTRIBUTING.md to include UI build options

* feedback/review
2016-11-09 12:49:18 -05:00
Leigh Johnson
38e40c7eba Hook up npm script target for jshint (#3916)
* Hook up npm script target for jshint

* Shrinkwrap ui dependencies
2016-11-09 09:53:58 -05:00
Shane McDonald
fdfce0bc73 Print flake8 results to stdout and output to file
I think?
2016-11-08 11:06:48 -05:00
Matthew Jones
88a8810815 Merge pull request #3729 from sundeep-co-in/STAGE
enable django i18n
2016-11-04 15:52:33 -04:00
Matthew Jones
fa0780b9d0 Optimize uwsgi launching in dev container and prod
* Set --master flag so we have a preforking master process to manage
  subprocs
* Set max-requests to 1000 so uwsgi will recycle processes after 1000
  requests
* Set --no-orphans so uwsgi will track child processes and clean them up
  in order to respawn children
* Turn stats on in the container and install uwsgitop in dev
  requirements so we can track uwsgi stats
2016-11-04 13:38:23 -04:00
Shane McDonald
c99f240c89 Add node_modules bins to Makefile PATH 2016-11-02 14:30:07 -04:00
Graham Mainwaring
f3cb5816d5 Merge pull request #3843 from ghjm/devel
Can't use bash syntax since make uses /bin/sh
2016-11-02 14:01:12 -04:00
Graham Mainwaring
b05cd9e5c6 Can't use bash syntax since make uses /bin/sh 2016-11-02 13:46:49 -04:00
Shane McDonald
d42ec44010 Use grunt variable in Makefile 2016-11-02 13:35:26 -04:00
sundeep-co-in
2ddcffc184 zanata config loc 2016-10-27 22:26:39 +05:30
sundeep-co-in
e908bc34e6 Merge branch 'devel' of https://github.com/sundeep-co-in/ansible-tower into STAGE 2016-10-27 22:23:39 +05:30
Shane McDonald
bbf185cd0b Add awx/public to clean target 2016-10-27 10:17:37 -04:00
sundeep-co-in
c1a5fb3312 resolve conflict 2016-10-27 08:13:02 +05:30
Leigh Johnson
2c8d295132 UI Build System - new interface
Use `make ui-devel` to build a development/debug version of the  UI, with source maps,
without raising any additional browser-sync or filesystem polling.
2016-10-26 16:53:36 -04:00
sundeep-co-in
3bf72f1dba add manage_translations 2016-10-26 16:47:49 +05:30
sundeep-co-in
475d6ed110 Merge branch 'devel' of https://github.com/sundeep-co-in/ansible-tower into STAGE 2016-10-26 10:23:57 +05:30
Leigh Johnson
4b34c6987a Remove make languages target pending delivery of .po files 2016-10-25 15:26:45 -07:00
Takao Fujiwara
40b94a38a8 Enable message i18n with angular-gettext
Signed-off-by: Takao Fujiwara <tfujiwar@redhat.com>
2016-10-25 15:26:45 -07:00
sundeep-co-in
576db5120f resolve conflict 2016-10-25 16:18:14 +05:30
Matthew Jones
e8669b0cbf Support celeryd autoreloading for dev environment 2016-10-20 13:27:36 -04:00
Alan Rominger
532ee059ea Merge pull request #3746 from AlanCoding/uwsgi_reload
Hopefully get uwsgi to auto reload
2016-10-20 09:08:34 -04:00
James Laska
ff8966dd48 Update unittest container to build ui-deps 2016-10-19 12:35:59 -04:00
AlanCoding
e7f16620bb Attempt to get uwsgi to auto reload 2016-10-19 10:39:17 -04:00
Wayne Witzel III
a27c708127 let nginx serve static files 2016-10-18 14:52:10 -04:00
Chris Meyers
4f6d966bab put nginx into honcho flow
* allows for make docker-compose-test then make honcho flow
2016-10-18 14:19:18 -04:00
Wayne Witzel III
e716f6e259 make static directory before collecting 2016-10-18 12:58:11 -04:00
Wayne Witzel III
f5e10bc57c fix static files for API browser 2016-10-18 12:15:01 -04:00
Wayne Witzel III
e9be93cd70 Update tower_tools image to run nginx 2016-10-18 11:16:38 -04:00
sundeep-co-in
78a8ce9479 django i18n 2016-10-18 18:10:39 +05:30
Wayne Witzel III
3a323e1b39 change static path to match what ui-release produces 2016-10-17 09:58:15 -04:00
Wayne Witzel III
0666e40be8 fix make server to run other services 2016-10-14 12:04:30 -04:00
Wayne Witzel III
eb3ec0b083 daphne should listen on 0.0.0.0 2016-10-14 02:00:56 -04:00
Wayne Witzel III
4220246400 use uwsgi/daphne/nginx for dev 2016-10-14 01:45:08 -04:00
Shane McDonald
c80a8a9c14 Exclude test directory from setup bundle tarballs
Also using the rsync strategy in the tar-build target. This doesn’t leave behind the empty setup/test directory.
2016-10-12 16:07:25 -04:00
Wayne Witzel III
5d8e7c17c2 Merge branch 'devel' into jtabor-sockets 2016-10-07 09:50:03 -04:00
Matthew Jones
babe29ebfa Implement cluster health checks
* 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
2016-10-06 16:05:39 -04:00
Wayne Witzel III
9049fb208f Merge branch 'devel' of https://github.com/ansible/ansible-tower into jtabor-sockets 2016-10-06 10:06:30 -04:00
Jim Ladd
89ae7ebe76 Clean docker images by name 2016-10-05 10:31:45 -04:00
Leigh Johnson
bdfed9c87f Escape $ in docker-clean target
Before: https://gist.github.com/leigh-johnson/98331b280b1679bd4c0e4b02f7c59b00
After: Yay!
2016-10-04 00:47:03 -04:00
Wayne Witzel III
530a5c0c88 merging devel 2016-10-03 10:35:50 -04:00
Shane McDonald
15eaac049c Add pycparser to SRC_ONLY_PKGS
Fixes stuff due to https://github.com/pyca/cryptography/issues/3187
2016-10-03 09:37:06 -04:00
Chris Meyers
dd3c3c9f29 Merge branch 'feature-ha_task_manager' into devel 2016-09-29 10:27:17 -04:00
Graham Mainwaring
f6c50cc63a Update Makefile so that ui-release does not get rebuilt over and over when troubleshooting build/release processes 2016-09-28 12:38:37 -04:00
Wayne Witzel III
42aab8ab83 removing websocket notification and service 2016-09-27 18:39:05 -04:00
Chris Meyers
cdb65ccac9 replace task manager with event driven scheduler 2016-09-27 14:16:18 -04:00
Shane McDonald
049d8a7bd6 Support GPG signing in the containerized RPM jobs.
- Added a script that allows for piping signing keys into the container’s stdin stream.
- Got sign.exp working
- I ended up getting mock to run as root, which means both RPM and DEB jobs both use —unsafe-perm now, so I added that back to the Makefile.
2016-09-22 14:19:47 -04:00
James Laska
dcf127ac6d Don't install csslint during requirements_jenkins 2016-09-21 15:27:44 -04:00
Shane McDonald
e958a12dab Remove --unsafe-perm
This breaks RPM builds… Will specify in DEB jobs only.
2016-09-21 11:45:54 -04:00
James Laska
94b440e7f5 Allow unittests from containers to work
Don't `sudo` for me, I'll `sudo` when I need it, yo.  This appears to
only affect the non-container based development workflow.  For folks
that still need to `make develop` outside of a container, please use
`sudo make develop`
2016-09-19 11:09:22 -04:00
Matthew Jones
f5d2c5c18a Merge branch 'ramparts_and_ha' into devel
* 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
  ...
2016-09-15 10:19:57 -04:00
Shane McDonald
05add1a751 Add --unsafe-perm to ui-deps-built
Node thinks we’re stupid. https://github.com/nodejs/node-gyp/issues/454
2016-09-13 15:35:35 -04:00
James Laska
183660a133 Fix '..' typo when installing jenkins requirements 2016-09-13 11:01:00 -04:00
James Laska
7d95b15812 Ensure make docker-clean exits cleanly 2016-09-13 11:01:00 -04:00
Matthew Jones
807cced571 Implement a more dynamic celery queue system
* 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
2016-09-09 15:18:18 -04:00
Matthew Jones
0c1e1fa2fb Refactor Tower HA Instance logic and models
* Gut the HA middleware
* Purge concept of primary and secondary.
* UUID is not the primary host identifier, now it's based mostly on the
  username.  Some work probably still left to do to make sure this is
  legit.  Also removed unique constraint from the uuid field.  This
  might become the cluster ident now... or it may just deprecate
* No more secondary -> primary redirection
* Initial revision of /api/v1/ping
* Revise and gut tower-manage register_instance
* Rename awx/main/socket.py to awx/main/socket_queue.py to prevent
  conflict with the "socket" module from python base
* Revist/gut the Instance manager... not sure if this manager is really
  needed anymore
2016-09-08 13:37:53 -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
f988877bae Merge branch 'stable' into devel
* 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
  ...
2016-08-31 14:34:52 -04:00
AlanCoding
5f15b00a8a fix error Alan introduced in Makefile syntax 2016-08-29 11:46:16 -04:00