Commit Graph
100 Commits
Author SHA1 Message Date
Jeff Bradberry cf89108edf Force the CLI to use no_truncate for the monitor calls 2019-10-14 11:21:11 -04:00
Jeff Bradberry e672e68a02 Allow the job event list views to take a no_truncate GET param 2019-10-11 17:18:36 -04:00
Jeff Bradberry 9efa7b84df Depend on a serializer context variable no_truncate
to decide whether to turn off the ANSI control sequence-aware
truncation, instead of needing inappropriate awareness of the details
of the view that invoked the serializer.  This will also allow us to
have views that can more flexibly turn off the truncation under other
circumstances.
2019-10-10 16:08:17 -04:00
Jeff Bradberry a803cedd7c Break out a new reusable truncate_stdout utility function 2019-10-10 16:07:08 -04:00
Jeff Bradberry 1122d28a1b Quote the playbook passed to runner from the isolated manager 2019-10-02 11:10:19 -04:00
Jeff Bradberry d549877ebd Check for the existance of a UnifiedJobTemplate with the same webhook GUID
instead of trying (incorrectly) to be specific about the JT/WFJT type.
2019-09-30 15:26:49 -04:00
Jeff Bradberry 204c05aa3b Change the webhook post-back payload to use the job UI url 2019-09-30 13:32:23 -04:00
Jeff Bradberry ac34b24868 Post the job or workflow url to the webhook service as part of the status 2019-09-30 13:32:23 -04:00
Jeff Bradberry ffe89820e3 Return to using ContentType.kind
which is _not_ the `kind` attribute being deprecated.
2019-09-30 13:32:23 -04:00
Jeff Bradberry 062c4908c9 Modify the webhook debounce logic
to check if we've already previously run a job with the same webhook
GUID plus template id.  This will allow organizations to write
multiple JT/WFJTs to handle the same set of webhook events.
2019-09-30 13:32:23 -04:00
Jeff Bradberry b6b70e55fb Address a variety of small review issues 2019-09-30 13:32:23 -04:00
Jeff Bradberry 6aa6471b7c Add help_text to the new fields 2019-09-30 13:32:23 -04:00
Jeff Bradberry e14d4ddec6 Add a doc template to the webhook key API view 2019-09-30 13:32:23 -04:00
Jeff Bradberry df24f5d28f Add a new launch_type of 'webhook' 2019-09-30 13:32:23 -04:00
Jeff Bradberry fea7f914d2 Avoid the use of CredentialType.kind 2019-09-30 13:32:23 -04:00
Jeff Bradberry a4873d97d8 Raise a validation error if a credential is set while the service is not 2019-09-30 13:32:22 -04:00
Jeff Bradberry efe4ea6575 Fix the webhook receiver url for workflow jobs 2019-09-30 13:32:22 -04:00
Jeff Bradberry b415c31b4f Fix problems with posting to Gitlab's API 2019-09-30 13:32:22 -04:00
Jeff Bradberry e91462d085 Update the Webhook Credential help text tooltip
to make it more apparent to the user that this is an optional part of
the feature, and that failure to add a webhook credential will disable
status post-backs.
2019-09-30 13:32:22 -04:00
Jeff Bradberry 885841caea Drop Bitbucket support
since only the Bitbucket Server product supports signed payloads,
bitbucket.org does not.  And we are requiring signed payloads.
2019-09-30 13:32:22 -04:00
Jeff Bradberry 286da3a7eb Posting webhook status now works 2019-09-30 13:32:21 -04:00
Jeff Bradberry 40b03eb6ef Enable the call to update_webhook_status
by calling it directly within send_notification_templates.  Also,
update the context field in the payload to be either 'ansible/awx' or
'ansible/tower', depending on which is being used.
2019-09-30 13:32:21 -04:00
Jeff Bradberry c76c531b7a Provide a payload for the webhook status post-back 2019-09-30 13:32:21 -04:00
Jeff Bradberry 4ad5054222 Add logic to post the job status for webhooks back to the service
under some circumstances.
2019-09-30 13:32:21 -04:00
Jeff Bradberry aa34984d7c Fix the git ref extractor for Gitlab pull requests 2019-09-30 13:32:21 -04:00
Jeff Bradberry d73abda5d1 Update the webhook receiver git ref extractor logic
to deal with the null-ref case, and to deal correctly with Github push events.
2019-09-30 13:32:21 -04:00
Jeff Bradberry e8e3a601b2 Pull out a git ref for each event type where we might care 2019-09-30 13:32:21 -04:00
Jeff Bradberry 178a2c7c49 Disable the authentication classes for the webhook receivers
One of them was consuming the body of the posts.  We do still need to
have an extraneous `request.body` expression, though now in
WebhookReceiverBase.post, since the `request.data` expression in the
logging also consumes the request body.
2019-09-30 13:32:20 -04:00
Jeff Bradberry 58e5f02129 Expose the new webhook fields in the job and workflow serializers 2019-09-30 13:32:20 -04:00
Jeff Bradberry dd6c97ed87 Include a message in the webhook response 2019-09-30 13:32:20 -04:00
Jeff Bradberry 7aa424b210 Make sure that the new webhook fields are populated when firing off a job
Also, added a temporary hacky workaround for the fact that something
in our request/response stack for APIView is consuming the request
contents in an unfriendly way, preventing the `.body` @property from
working.
2019-09-30 13:32:20 -04:00
Jeff Bradberry ee1d118752 Add the webhook receiver url to the related urls in the serializers 2019-09-30 13:32:20 -04:00
Jeff Bradberry 245931f603 Debounce when multiple copies of the same webhook event come in 2019-09-30 13:26:04 -04:00
Jeff Bradberry 095aa77857 Create a new model mixin for Job and WorkflowJob webhook fields 2019-09-30 13:26:04 -04:00
Jeff Bradberry bb1397a3d4 Validate the webhook credential
- we should allow a null credential, so that the admin can choose to configure not posting back status changes of the triggered job
- the credential must be of the new 'token' kind
- if we do configure a credential, its type must match the selected SCM service
2019-09-30 13:26:04 -04:00
Jeff Bradberry 5848f0360a Update test_default_cred_types to include the new personal access token types 2019-09-30 13:26:04 -04:00
Jeff Bradberry 83fc2187cc Fix the summary fields for webhook_credential 2019-09-30 13:26:04 -04:00
Jeff Bradberry 4dba9916dc Add a new set of personal access token credential types 2019-09-30 13:26:03 -04:00
Jeff Bradberry 8836ed44ce Construct an ID for Gitlab webhooks
by taking the SHA1 of the body of the webhook request.
2019-09-30 13:26:03 -04:00
Jeff Bradberry 992c414737 Launch a Job or WorkflowJob based on the incoming webhook 2019-09-30 13:26:03 -04:00
Jeff Bradberry 66a8186995 Get the webhook receiver views to work at least minimally 2019-09-30 13:26:03 -04:00
Jeff Bradberry fa15696ffe Remove some dead comments 2019-09-30 13:26:03 -04:00
Jeff Bradberry 82a0dc0024 Cycle or unset the webhook key if the webhook service changes
Also, tests.
2019-09-30 13:26:03 -04:00
Jeff Bradberry d4b20b7340 Update tests to use the expect keyword argument for get() and post() 2019-09-30 13:26:03 -04:00
Jeff Bradberry c0ad5a7768 Expose the webhook_service and webhook_credential fields in the serializer
webhook_credential specifically as a summary field.
2019-09-30 13:26:03 -04:00
Jeff Bradberry d9ac291115 Add some RBAC oriented tests for the webhook secret key view 2019-09-30 13:26:03 -04:00
Jeff Bradberry 6b86cf6e86 Revert to using the explicit dispatch to the appropriate model
since passing the model class at url include time doesn't work.
2019-09-30 13:26:03 -04:00
Jeff Bradberry 771ef275d4 Include a check for the webhook_key related resource url
in the tests for JTs and WFJTs.
2019-09-30 13:26:03 -04:00
Jeff Bradberry 2310413dc0 Fix problem with the tests by dynamically setting the view model
instead of using a model @property or lookup method.
2019-09-30 13:26:03 -04:00
Jeff Bradberry edb9d6b16c Add the related link to the webhook secrets view to the serializers 2019-09-30 13:26:03 -04:00
Jeff Bradberry 7973a18103 Switch to using a permission class for the webhook secret key view
This view is now behaving as expected for superuser, org admin, JT
admin, JT exec, and org member roles.
2019-09-30 13:23:27 -04:00
Jeff Bradberry 747a2283d6 Attempt to get the RBAC right on the webhook secret key view 2019-09-30 13:23:27 -04:00
Jeff Bradberry 9d269d59d6 Add an api view for obtaining and rotating the webhook key 2019-09-30 13:23:27 -04:00
Jeff Bradberry b0c530402f Move the webhook url include from the top level urlconf to the JT/WFJT urlconfs 2019-09-30 13:23:26 -04:00
Jeff Bradberry 50a54c9214 Forbid access to the webhook receiver views if webhook_key is not set 2019-09-30 13:23:26 -04:00
Jeff Bradberry 8f97dbf781 Hook in the webhook receiver views into the urlconf 2019-09-30 13:23:26 -04:00
Jeff Bradberry a7a99ed141 Beginnings of the API views for the webhook receivers 2019-09-30 13:23:26 -04:00
Jeff Bradberry d6116490c6 Add the webhook-specific fields to JobTemplate and WorkflowJobTemplate 2019-09-30 13:23:26 -04:00
Jeff Bradberry 1a7148dc80 Prevent search on the NotificationTemplate.notification_configuration field 2019-09-26 14:37:04 -04:00
Jeff Bradberry ee27313b42 Change the visibility of the Grant Permission button on the team edit page
In the case where MANAGE_ORGANIZATION_AUTH = False, an Org admin is
still supposed to have the capability of adding resource roles to a
team.  This was in fact still doable directly in the API, or via the
organization edit page.
2019-09-26 11:28:25 -04:00
Jeff Bradberry ed1c667418 Fix asserts in test_project.py to use the id directly off of the job template
test_no_changing_overwrite_behavior_if_used, specifically.
2019-08-20 16:42:34 -04:00
Jeff Bradberry 10200fced0 Add patch to the list of system packages installed into the container
since it is a requirement of the new updater.sh Python requirements script.
2019-08-01 10:41:49 -04:00
Jeff Bradberry 2926d0198d Bump the version of Django to 2.2.4
This is a security release.
2019-08-01 10:41:36 -04:00
Jeff Bradberry d32394f1b6 Update the make clean command to clear out the parallelized sqlite3 files 2019-07-17 17:06:10 -04:00
Jeff Bradberry dd8ca5acc4 Ensure that the Postgres client is installed 2019-07-12 16:22:52 -04:00
Jeff Bradberry 172864a3a1 Force the username and password to be strings under the Radius backend
The base Radius backend encodes them as utf-8 bytes, which causes the
User object that we create to get the repr of the username, including
the b prefix and single quotes, e.g. "b'foo'".
2019-07-12 15:11:22 -04:00
Jeff Bradberry a691340986 Update authenticate method on auth backends to add required request param
This became mandatory in Django 2.1.
2019-07-12 15:11:22 -04:00
Jeff Bradberry 261f1427e9 Break up a too-long line in migrations 2019-07-12 15:11:22 -04:00
Jeff Bradberry 9383512772 Remove no longer needed check for override of WSGIHandler 2019-07-12 15:11:22 -04:00
Jeff Bradberry 2d81923e22 Fix up changes in fields in the migrations
Particularly the now-required on_delete parameter for ForeignKey and
OneToOneField.
2019-07-12 15:11:22 -04:00
Jeff Bradberry 1093a662f1 Fix a problem with a change in results from User.has_usable_password 2019-07-12 15:11:22 -04:00
Jeff Bradberry 210517eeb1 Fix a couple of tests trivially affected by the upgrades
- is_anonymous may no longer be called as a method, so no need to mock it
- the message on uniqueness constraint failures has apparently changed
2019-07-12 15:11:22 -04:00
Jeff Bradberry 2ffe3d9a85 Give the 4xx error handler views the correct positional arguments 2019-07-12 15:11:22 -04:00
Jeff Bradberry 6737bd4c19 Replace {} as field default values with the callable dict 2019-07-12 15:11:22 -04:00
Jeff Bradberry 29ad847544 Deal with a change in truncation of strings in Django
which now uses a proper ellipsis character instead of 3 dots.
2019-07-12 15:11:22 -04:00
Jeff Bradberry b3ef2c928a Remove the custom add and remove methods from OrderedManyToManyDescriptor 2019-07-12 15:11:22 -04:00
Jeff Bradberry 43c552c7c6 Some flake8 changes 2019-07-12 15:11:21 -04:00
Jeff Bradberry e0357d53f5 Bump Django to 2.2.2 2019-07-12 15:11:21 -04:00
Jeff Bradberry beb1dd5ae7 Replace use of the deprecated staticfiles template library with static 2019-07-12 15:11:21 -04:00
Jeff Bradberry d464df557b Fix another direct assignment of a sequence to a related manager 2019-07-12 15:11:21 -04:00
Jeff Bradberry 5e9f790554 Bump to Django 2.1.9 2019-07-12 15:11:21 -04:00
Jeff Bradberry 47b325896d Remove the django_db mark from TransactionTestCase classes
pytest-django's documentation indicates that it isn't necessary, and
it turns out in Django 2.0+ that this double application of the
transaction machinations was causing the Django ContentType table to
lose its items.
2019-07-12 15:11:21 -04:00
Jeff Bradberry c85d58e28d The interactive flag for management commands doesn't seem to be a thing anymore 2019-07-12 15:11:21 -04:00
Jeff Bradberry bcbb768dd3 Remove the use of the deprecated Field.rel attribute
Also, rename a number of variables named `rel` for ease of searching.
2019-07-12 15:11:21 -04:00
Jeff Bradberry e0693d3746 is_anonymous and is_authenticated no longer support being called as methods 2019-07-12 15:11:21 -04:00
Jeff Bradberry a6edc46cc3 Field.from_db_value no longer supports the context param in 2.0 2019-07-12 15:11:21 -04:00
Jeff Bradberry f24b08316d Django's url resolver and pattern classes have been renamed in 2.0+
They are now URLResolver and URLPattern, respectively.  The API has
changed as well, but fortunately it looks like what we are doing here
doesn't depend on anything that was changed.
2019-07-12 15:11:21 -04:00
Jeff Bradberry 25c14382db Update the monkey patch of Django's column name digest to work with 2.0+
BaseDatabaseSchemaEditor no longer has a `_digest` classmethod,
instead there is a call out to a new `names_digest` utility function.
2019-07-12 15:11:21 -04:00
Jeff Bradberry 796d7bf67f Replace the use of the 3rd party jsonbfield library
which was just a backport of Django's built-in JSONField.  Also, bump
the version of django-jsonfield.
2019-07-12 15:11:21 -04:00
Jeff Bradberry ddef41d394 Bump Django to 2.0.13
This is _very_ broken.
2019-07-12 15:11:21 -04:00
Jeff Bradberry 758ad164fe Include defined fields from all parent classes of a HybridDictField
since our settings registry adds a mixin class when doing validation on these.

related #4099
2019-07-08 16:05:03 -04:00
Jeff Bradberry 1a72ff4c47 Use the in operator to test against the Organization membership subquery
If more than one Organization were selected by this subquery, then
Postgres would complain with "more than one row returned by a subquery
used as an expression".  We needed to allow for that case.

Annoyingly SQLite3 doesn't seem to care, so writing a py.test test to
exercise this isn't feasible under our current development setup.
2019-06-19 14:49:02 -04:00
Jeff Bradberry aa548442ce Ensure the request is on the Metadata object
in order to correctly populate the default for the TOWER_URL_BASE
field, which is specific to the host and preferred scheme.
2019-06-12 14:12:59 -04:00
Jeff Bradberry ab587e7e6c Update get_view_description to conform to changes in DRF's version
related encode/django-rest-framework#5605
2019-06-12 14:12:59 -04:00
Jeff Bradberry 3f5c018c8a Replace the load of the staticfiles template library with static
The staticfiles library will be going away before too long.
2019-06-12 14:12:59 -04:00
Jeff Bradberry 12e3d0aebf Remove rest_framework/base.html 2019-06-12 14:12:59 -04:00
Jeff Bradberry ba4ad191fc Add the csrf token to window.drf
In the same manner as the current version of base.html from DRF.  This
is part 2 of the removal of base.html.
2019-06-12 14:12:59 -04:00
Jeff Bradberry 34d76422d6 Move the endpoint deprecation warning out of base.html
This is part 1 of the removal of awx/templates/rest_framework/base.html.
2019-06-12 14:12:59 -04:00
Jeff Bradberry 2a81643308 Refactor the SSO serializer fields to follow the DRF idioms more closely
and fix the tests to handle the newer nested validation checks properly.
2019-06-12 14:12:59 -04:00
Jeff Bradberry 76d4de24df Handle a change in the error message for BooleanField
related encode/django-rest-framework#5881
2019-06-12 14:12:59 -04:00