Commit Graph

246 Commits

Author SHA1 Message Date
AlanCoding
db6cc7c50b Add exception to allow relaunching callback jobs
allows for execute_role level users to directly
relaunch callback-type jobs, even though limit
has changed from JT, it is a down-selection
2018-05-17 14:41:56 -04:00
Jake McDermott
d00b8549b4 disable activity stream for relaunched job label associations 2018-05-07 07:22:03 -04:00
AlanCoding
13550acb91 fix cross-talk between JT-proj due to arg mutability 2018-04-24 11:29:33 -04:00
AlanCoding
4ff2f3e061 remove setting corresponding to removed tests 2018-04-16 14:49:54 -04:00
chris meyers
bd7d9db1ce correctly cascade set null
* It's problematic to delete an instance that is referenced by a foreign
key; where the referening model is one that has a Polymorphic parent.
* Specifically, when Django goes to nullify the relationship it relies
on the related instances[0] class type to issue a query to decide what
to nullify. So if the foreignkey references multiple different types
(i.e. ProjectUpdate, Job) then only 1 of those class types will get
nullified. The end result is an IntegrityError when delete() is called.
* This changeset ensures that the parent Polymorphic class is queried so
that all the foreignkey entries are nullified
* Also remove old Django "hack" that doesn't work with Django 1.11
2018-04-06 11:10:16 -04:00
AlanCoding
7ea9575e78 ignore workflow survey passwords when not applicable 2018-03-23 13:01:45 -04:00
AlanCoding
bbbb7def0a fix bug with non-event model 2018-03-16 14:27:36 -04:00
AlanCoding
69eccd3130 move ACTIVE_STATES to constants 2018-03-16 10:31:41 -04:00
AlanCoding
04a27d5b4d Namechange events_processed -> event_processing_finished
from PR review, also adding tests to assert that the
value is passed from the stdout_handle to the UnifiedJob
object on finalization of job run in tasks.py
2018-03-14 07:53:04 -04:00
AlanCoding
b803a6e557 Track emitted events on model 2018-03-14 07:53:02 -04:00
Matthew Jones
45ad94f057 Adding more helpful job extra vars
* Adds email, first name, last name as extra vars to job launches
* Remove old ad-hoc command extra vars population... use our
  base-class method instead
2018-03-13 13:33:54 -04:00
Alan Rominger
dcae4f65b5 Merge pull request #1330 from AlanCoding/capable_of_anything
New copy fields, clean up user_capabilities logic
2018-03-13 12:05:45 -04:00
AlanCoding
ce9234df0f Revamp user_capabilities with new copy fields
Add copy fields corresponding to new server-side copying

Refactor the way user_capabilities are delivered
 - move the prefetch definition from views to serializer
 - store temporary mapping in serializer context
 - use serializer backlinks to denote polymorphic prefetch model exclusions
2018-02-26 12:13:41 -05:00
Wayne Witzel III
91c6d406c5 Rollback celery 2018-02-22 09:37:14 -05:00
AlanCoding
fe69a23a4e fix bug scheduling WFJT without prompts 2018-02-07 14:34:25 -05:00
Ryan Petrello
e642af82cc fix a few bugs for scheduled jobs that run without inventories
see: https://github.com/ansible/ansible-tower/issues/7865
see: https://github.com/ansible/ansible-tower/issues/7866
2018-01-29 15:15:57 -05:00
Ryan Petrello
ac3f7d0fac fix a bug that breaks workflows w/ a survey password + inventory sync
prior versions of awx did not raise an exception for this scenario
- they simply ignored kwargs that they couldn't accept.  this change is
a sort of middle ground - it ignores them, but gives a clue in the logs
as to why

see: https://github.com/ansible/awx/issues/955
related: https://github.com/ansible/awx/pull/803
2018-01-22 09:41:30 -05:00
Ryan Petrello
4bb2b5768e properly compose stdout downloads that contain unicode 2018-01-09 23:52:02 -05:00
Ryan Petrello
1d3e8f8b87 Merge pull request #831 from AlanCoding/field_names
Use Options models to consolidate field_names list
2018-01-08 10:36:16 -05:00
Ryan Petrello
2bd656e61d calculate stdout download length using the ORM, not raw SQL 2018-01-03 09:09:44 -05:00
Ryan Petrello
c4d901bf2c add functional API tests for deprecated job event stdout composition
see: https://github.com/ansible/awx/issues/200
2018-01-03 09:09:44 -05:00
Ryan Petrello
0b30e7907b change stdout composition to generate from job events on the fly
this approach totally removes the process of reading and writing stdout
files on the local file system at settings.JOBOUTPUT_ROOT when jobs are
run; now stdout content is only written on-demand as it's fetched for
the deprecated `stdout` endpoint

see: https://github.com/ansible/awx/issues/200
2018-01-03 09:09:43 -05:00
AlanCoding
1e1839915d validate against unencrypted values at spawn point 2017-12-15 10:47:23 -05:00
AlanCoding
74bf058d62 encrypt password answers on config save 2017-12-15 07:48:55 -05:00
AlanCoding
e188692acf use Options models to consolidate field_names list 2017-12-13 22:39:38 -05:00
Matthew Jones
9dbcc5934e Merge remote-tracking branch 'tower/release_3.2.2' into devel 2017-12-13 12:25:47 -05:00
Ryan Petrello
05bec924e4 Merge pull request #795 from ryanpetrello/move-deprecated-stdout
move legacy UnifiedJob stdout data to a separate unmanaged model
2017-12-13 09:35:58 -05:00
Ryan Petrello
202161f090 move legacy UnifiedJob stdout data to a separate unmanaged model
This data often (in the case of inventory updates) represents large data
blobs (5+MB per job run).  Storing it on the polymorphic base class
table, `main_unifiedjob`, causes it to be automatically fetched on every
query (and every polymorphic join) against that table, which can result
in _very_ poor performance for awx across the board.  Django offers
`defer()`, but it's quite complicated to sprinkle this everywhere (and
easy to get wrong/introduce side effects related to our RBAC and usage
of polymorphism).

This change moves the field definition to a separate unmanaged model
(which references the same underlying `main_unifiedjob` table) and adds
a proxy for fetching the data as needed

see https://github.com/ansible/awx/issues/200
2017-12-12 18:16:19 -05:00
AlanCoding
7243f871b4 fix bug creating inventory source schedules 2017-12-12 17:49:51 -05:00
AlanCoding
659d31324d hide survey passwords in saved launch configs 2017-12-12 09:35:46 -05:00
AlanCoding
1f8cab4171 intentionally forget start_args when job is done 2017-12-10 12:08:54 -05:00
AlanCoding
a9aae91634 generalize schedule prompts validation
This makes ScheduleSerializer behave same as WFJT nodes
Prevents providing job_type for workflow jobs, as example
2017-12-08 16:23:56 -05:00
AlanCoding
1c8217936d Bug fixes from integration ran on launchtime branch
Make error message for muti-vault validation more
consistent with historical message
2017-12-08 13:46:38 -05:00
AlanCoding
72a8854c27 Make ask_mapping a simple class property
from PR feedback of saved launchtime configurations
2017-12-08 13:45:23 -05:00
AlanCoding
34a8e0a9b6 Feature: saved launchtime configurations
Consolidate prompts accept/reject logic in unified models
Break out accept/reject logic for variables
Surface new promptable fields on WFJT nodes, schedules

Make schedules and workflows accurately reject variables
  that are not allowed by the prompting
  rules or the survey rules on the template

Validate against unallowed extra_data in system job schedules
Prevent schedule or WFJT node POST/PATCH with unprompted data
Move system job days validation to new mechanism
Add new psuedo-field for WFJT node credential
Add validation for node related credentials
Add related config model to unified job
Use JobLaunchConfig model for launch RBAC check

Support credential overwrite behavior with multi-creds
  change modern manual launch to use merge behavior
Refactor JobLaunchSerializer, self.instance=None
Modularize job launch view to create "modern" data
Auto-create config object with every job
Add create schedule endpoint for jobs
2017-12-08 13:38:54 -05:00
AlanCoding
eecf997856 add AWX meta extra_vars: WFJT + schedule 2017-12-04 15:33:05 -05:00
AlanCoding
67867cf0c8 flake8: comply with new E722 rule 2017-12-01 12:16:44 -05:00
Ryan Petrello
a3dd9eb4b7 removing some cruft we thought would help us catch bugs (it didn't) 2017-11-29 16:23:07 -05:00
Ryan Petrello
68ada92f3b more survey password encryption bug squashing
the nature of this latest bug is that the WorkflowJob has a *different*
implementation of _accept_or_ignore_job_kwargs, and it wasn't performing
encryption for extra vars provided at launch time; this change places the
encryption mechanism in UJT.create_unified_job so that it works the same
for _all_ UJTs

see: https://github.com/ansible/ansible-tower/issues/7798
see: https://github.com/ansible/ansible-tower/issues/7046
2017-11-29 14:40:41 -05:00
Ryan Petrello
28ce9b700e replace all Job/JT relations with a single M2M credentials relation
Includes backwards compatibility for now-deprecated .credential,
.vault_credential, and .extra_credentials

This is a building block for multi-vault implementation and Alan's saved
launch configurations (both coming soon)

see: https://github.com/ansible/awx/issues/352
see: https://github.com/ansible/awx/issues/169
2017-11-14 12:49:12 -05:00
Wayne Witzel III
14c5123fda Update celery environ and tasks 2017-11-09 17:21:19 -05:00
AlanCoding
0ae9283fba Feature: retry on subset of jobs hosts 2017-11-01 10:22:52 -04:00
AlanCoding
90f63774f4 flake8: comply with new E722 rule 2017-10-23 14:36:48 -04:00
AlanCoding
e2c398ade2 fallback to empty dict when processing extra_data 2017-10-10 08:13:45 -04:00
AlanCoding
81c14ce942 fix WARNING log when launching ad hoc command 2017-10-05 13:42:23 -04:00
AlanCoding
a6def691b7 provide instance group name over websocket 2017-08-14 13:56:12 -04:00
AlanCoding
5dfe0b205f pass over job-run exceptions & log ID 2017-08-14 09:57:32 -04:00
AlanCoding
33df1d8c8b introduce log format for jobs inside of scheduler 2017-08-11 10:56:15 -04:00
Chris Meyers
c3f24d878d reap waiting processes if crash 2017-08-09 14:01:33 -04:00
Ryan Petrello
61aa7c1ad7 return proper stdout size for DB-backed stdout (like system jobs)
see: https://github.com/ansible/ansible-tower/issues/7398
2017-08-07 17:08:25 -04:00