Commit Graph

789 Commits

Author SHA1 Message Date
Ryan Petrello
8c5f3404bf Merge pull request #2006 from ryanpetrello/port-jinja2-always
allow Jinja2 in ansible -a when ALLOW_JINJA_IN_EXTRA_VARS is 'always'
2018-06-01 07:32:48 -04:00
Ryan Petrello
99d2f3ea34 allow Jinja2 in ansible -a when ALLOW_JINJA_IN_EXTRA_VARS is 'always' 2018-05-31 11:49:50 -04:00
AlanCoding
124fcd6f62 delete network canvas objects in delete inventory task 2018-05-30 12:03:20 -04:00
Ryan Petrello
870adc14f9 fix a bug in the instance policy algorithm when both min and % are used
see: https://github.com/ansible/tower/issues/897
2018-05-24 12:28:46 -04:00
AlanCoding
d369ae7638 do not put deep copy items in activity stream 2018-05-22 16:23:08 -04:00
Wayne Witzel III
9fe44cfaae check EACCES and only refresh cancel_flag 2018-05-18 14:58:58 -04:00
Wayne Witzel III
41fe9e1caf Check if the project update for the project we are trying to lock is canceled 2018-05-18 12:46:54 -04:00
AlanCoding
f9871f32a3 do not fail entire notification chain if one fails 2018-05-16 15:16:40 -04:00
Ryan Petrello
3ab7f06f95 run scm inv syncs at the project root so relative imports work w/ bwrap
see: https://github.com/ansible/tower/issues/1357
2018-05-15 12:00:37 -04:00
Wayne Witzel III
e7e173b576 Merge pull request #1790 from wwitzel3/fix-1744
Prevent creating excessive update computed tasks when copying an Inve…
2018-05-15 08:37:49 -04:00
Wayne Witzel III
5c45b25484 Prevent creating excessive update computed tasks when copying an Inventory 2018-05-15 08:17:48 -04:00
Alan Rominger
5643505a31 Merge pull request #1664 from AlanCoding/more_wfjt_cred_fixes
Correctly check credential permission on WFJT copy
2018-05-10 07:42:49 -04:00
AlanCoding
5a37184e7c add log message when locks are holding up jobs 2018-05-07 07:44:08 -04:00
chris meyers
5668d215fd better cluster membership policy log messages 2018-05-03 11:44:46 -04:00
Wayne Witzel III
538c15141a Merge pull request #1675 from wwitzel3/fix-879
Bulk update host field to null for JobEvents
2018-05-03 11:15:15 -04:00
Wayne Witzel III
91a2466650 Bulk update host field to null for JobEvents 2018-05-03 10:48:36 -04:00
AlanCoding
ec1e94376c correctly check credential permission on WFJT copy 2018-05-03 07:42:59 -04:00
Chris Meyers
a50358afc5 Merge pull request #1638 from chrismeyersfsu/fix-isolated_heartbeat
control celery routes using celery router
2018-05-02 13:51:58 -04:00
chris meyers
9f745dd3b8 control celery routes using celery router
* Each time a route is needed (i.e. when a task is sumitted to celery).
The router will be queried. This is ideal. With the previous method we
had to consider how a change in the routes would propogate to all celery
workers and nodes.

* fully describe the default awx queue
* Our dynamic queue registration would correct awx_private_queue.
However, we don't want celery to even create an "invalid"/extra
queue-exchange-route. This change makes sure we don't create extranious
things in rabbitmq.

* reduce the cluster queue registration output. Only output when the
queue registration list changes.
2018-05-02 12:57:36 -04:00
Ryan Petrello
30af0a1b44 don't run scheduled jobs if there isn't a valid license 2018-05-02 11:52:51 -04:00
AlanCoding
ac20aa954a Replace logging-related restart with dynamic handler
refactor existing handlers to be the related
  "real" handler classes, which are swapped
  out dynamically by external logger "proxy" handler class

real handler swapout only done on setting change

remove restart_local_services method
get rid of uWSGI fifo file

change TCP/UDP return type contract so that it mirrors
  the request futures object
add details to socket error messages
2018-05-02 09:47:22 -04:00
Christian Adams
fd4f78a64c Merge pull request #1637 from rooftopcellist/exp_setting_update
Token Expiration Setting Update
2018-05-01 15:05:33 -04:00
adamscmRH
1963ab689a rm an unnecessary uwsgi restart 2018-05-01 14:12:00 -04:00
chris meyers
648d9165ff broadcast queues get a per-node stable queue name
* Using Kombu's default Broadcast() constructor requires only 1
parameter. That parameter defines the exchange name and the queue name
is randomly generated per-node.
* This caused problems if/when celery enters an infinite restart loop
because too many rabbit queues get created and rabbit OOM's
(gracefully).
* To remedy this we tell Broadcast the queue name to use, which is
derived from some constant + the node name so that the per-node queue
name is stable.
2018-05-01 13:09:10 -04:00
Ryan Petrello
a009d21edc Merge pull request #1592 from ryanpetrello/release_3.3.0
3.2.4 -> 3.3.0
2018-04-26 11:34:16 -04:00
Ryan Petrello
1eb5e98743 Merge branch 'release_3.2.4' into release_3.3.0 2018-04-26 11:10:28 -04:00
AlanCoding
52d8d851fe avoid unrelated errors saving notification 2018-04-26 09:36:43 -04:00
Ryan Petrello
0bc5665e92 remove the legacy fact cleanup system template
see: https://github.com/ansible/tower/issues/1021
2018-04-25 14:20:19 -04:00
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
Ryan Petrello
fe47b75aad use a three-prong setting for Jinja extra vars policy 2018-04-17 12:08:07 -04:00
Ryan Petrello
7074dcd677 don't allow usage of jinja templates in certain ansible CLI flags
see: https://github.com/ansible/tower/issues/1338
2018-04-17 09:20:05 -04:00
Ryan Petrello
88c243c92a mark all unsafe launch-time extra vars as !unsafe
see: https://github.com/ansible/tower/issues/1338
see: https://bugzilla.redhat.com/show_bug.cgi?id=1565865
2018-04-16 16:47:44 -04:00
Bill Nottingham
bba7f45972 Pass extra vars via file rather than via commandline, including custom creds.
The extra vars file created lives in the playbook private runtime
directory, and will be reaped along with the rest of the directory.

Adjust assorted unit tests as necessary.
2018-04-16 16:31:50 -04:00
AlanCoding
4ff2f3e061 remove setting corresponding to removed tests 2018-04-16 14:49:54 -04:00
AlanCoding
0a23195a7b always log uncaught task exceptions 2018-04-11 11:03:06 -04:00
Ryan Petrello
ba66996add missing import for celery failure handler 2018-04-09 09:10:50 -04:00
Ryan Petrello
4c0096a524 implement celery failure logging using CELERY_ANNOTATIONS
see: https://github.com/ansible/awx/issues/1720
see: https://github.com/ansible/tower/issues/1190
2018-04-06 11:23:23 -04:00
Alan Rominger
c2446beb6e Merge pull request #1235 from AlanCoding/rm_TOWER_HOST
remove TOWER_HOST from job env vars
2018-04-04 10:42:16 -04:00
AlanCoding
c064195025 remove TOWER_HOST from job env vars 2018-04-04 10:32:41 -04:00
Ryan Petrello
0db24a5c97 more gracefully account for undefined stdout
see: https://github.com/ansible/tower/issues/1215
related: https://github.com/ansible/tower/pull/1192#issuecomment-377982131
2018-04-04 08:29:57 -04:00
chris meyers
88fbb6706f use non-deprecated way of setting many2many 2018-04-03 14:31:37 -04:00
chris meyers
c3100afd0e fixed isolated instance query
* Was considering an isolated instance: any instance that has at least 1
group with no controller. This is technically correct since an iso node
can not be a part of a non-iso group.
* The query is now more robust and considers a node an iso node if ALL
groups that a node belong to ALL have a controller.
* Also added better debugging for the special tower instance group
* Added a check for the existance of the special tower group so that
logs are less "messy" during the install process.
2018-04-03 13:50:57 -04:00
chris meyers
7e7ff8137d more gracefully account for undefined stdout
* It's possible to have an exception raised in BaseTask.run() before the
stdout handler gets defined. This is problematic when the exception
handler tries to access that undefined var .. causing another exception.
Note that the second exception is caught also but it's not desirable to
lose the first exception.
* This fix checks to see if the stdout handler var is defined before
calling it's methods. Thus, we retain the original error message.
2018-04-02 11:41:30 -04:00
chris meyers
838b723c73 add all instances to special tower instance group
* All instances except isolated instances
* Also, prevent any tower attributes from being modified via the API
2018-03-29 16:47:52 -04:00
Alan Rominger
bed9b06426 Merge pull request #1124 from AlanCoding/hot_potato
Stream standard out in non-event models
2018-03-28 11:38:49 -04:00
AlanCoding
8c167e50c9 Continuously stream data from verbose jobs
In verbose unified job models (inventory updates, system jobs,
etc.), do not delay dispatch just because the encoded
event data is not part of the data written to the buffer.

This allows output from these commands to be submitted
to the callback queue as they are produced, instead
of waiting until the buffer is closed.
2018-03-28 11:05:49 -04:00
chris meyers
7ce8907b7b reregister node when they come back online
* Nodes are marked offline, then deleted; given enough time. Nodes can
come back for various reasions (i.e. netsplit). When they come back,
have them recreate the node Instance if AWX_AUTO_DEPROVISION_INSTANCES
is True. Otherwise, do nothing. The do nothing case will show up in the
logs as celery job tracebacks as they fail to be self aware.
2018-03-27 14:30:47 -04:00
chris meyers
1503e0505e call celery method with celery context
* Tracebacks are more informative this way.
2018-03-26 12:02:42 -04:00
Ryan Petrello
f59f47435b send job notification templates _after_ all events have been processed
see: https://github.com/ansible/awx/issues/500
2018-03-22 09:30:41 -04:00
Bill Nottingham
6fc4274c68 Just set ANSIBLE_SSH_CONTROL_PATH_DIR, and don't worry about the socket file name.
Ansible itself (since 2.3) has code to have a shorter hashed control path socket name.
2018-03-16 16:56:45 -04:00