Compare commits

..

2842 Commits
1.0.0 ... 1.0.6

Author SHA1 Message Date
Ryan Petrello
327d3c3f5b Merge pull request #1810 from ryanpetrello/devel
restore the celery hostname
2018-04-27 12:20:30 -04:00
Ryan Petrello
8bc8bb1bd6 restore the celery hostname 2018-04-27 12:16:16 -04:00
Ryan Petrello
732698440f Merge pull request #1809 from shanemcd/devel
Merge branch 'release_3.3.0' into awx/devel
2018-04-27 11:33:52 -04:00
Shane McDonald
4fdf462b98 Merge branch 'release_3.3.0' into awx/devel
# Conflicts:
#	awx/ui/client/src/standard-out/standard-out-factories/main.js
#	awx/ui/package.json
2018-04-27 10:17:59 -04:00
Jared Tabor
1b013eb2e3 Merge pull request #1577 from jaredevantabor/network-dep-cleanup
Removes dupclicate Angular import
2018-04-26 14:36:42 -07:00
Jake McDermott
af44a12e7b Merge pull request #1600 from wenottingham/and-the-years-start-coming-and-they-dont-stop-coming
Fix another stray 2017 in the UI.
2018-04-26 14:27:30 -04:00
Bill Nottingham
23a009f8bb Fix another stray 2017 in the UI. 2018-04-26 14:03:57 -04:00
Alan Rominger
22e763a44c Merge pull request #1595 from AlanCoding/revert_team
Revert allowing org members to see teams
2018-04-26 14:02:27 -04:00
AlanCoding
c88303ca67 revert change to allow org members to see teams 2018-04-26 13:37:08 -04:00
Jared Tabor
41f0b2b703 Merge pull request #1801 from jaredevantabor/update-installmd
Updates README.md to include Node and NPM version req's
2018-04-26 10:34:49 -07:00
Jared Tabor
da79f1450c Merge pull request #1576 from jaredevantabor/1021-system-job-cleanup
Cleanup the Cleanup
2018-04-26 10:18:34 -07:00
Jared Tabor
5f38b4fde4 removes code/references related to cleanup_facts mgmt jobs, and their schedules 2018-04-26 09:35:34 -07:00
Jared Tabor
b154949639 Removes dupclicate Angular import, and removes tower.app.js module from network UI 2018-04-26 09:22:25 -07:00
AlanCoding
dff0f2f9ed Revert "update tests for org members seeing teams"
This reverts commit fe04f69e89.
2018-04-26 12:21:50 -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
Alan Rominger
074302b573 Merge pull request #1588 from AlanCoding/notification_update_fields
Avoid unrelated errors saving notification
2018-04-26 10:19:40 -04:00
Alan Rominger
144e89f0a9 Merge pull request #1587 from AlanCoding/workflow_job_log
Add corresponding log for WorkflowJob submission
2018-04-26 09:50:05 -04:00
AlanCoding
52d8d851fe avoid unrelated errors saving notification 2018-04-26 09:36:43 -04:00
AlanCoding
84d9273012 add corresponding log for WorkflowJob submission 2018-04-26 09:30:19 -04:00
Matthew Jones
ccada295ee Merge pull request #1586 from ansible/fix_missing_instance_group
Fix an issue where missing instance group would cause an error
2018-04-26 09:21:37 -04:00
Matthew Jones
2f3d7b17f6 Fix an issue where missing instance group would cause an error
We'll now default to queue submission to the basic management queue
2018-04-26 09:11:08 -04:00
Jake McDermott
0046b25fa0 Merge pull request #1578 from jakemcdermott/fix-jobz-expanded-host-event
ensure host modal can be visible when details panel is collapsed
2018-04-26 00:31:43 -04:00
Jake McDermott
8fa224f846 ensure host modal can be visible when details panel is collapsed 2018-04-26 00:03:53 -04:00
Jared Tabor
b05becf302 Updates README.md to include Node and NPM version req's 2018-04-25 15:06:24 -07:00
Jake McDermott
9809ddb84c Merge pull request #1575 from mabashian/1522-expand-results
Implemented expand/collapse job results
2018-04-25 17:56:53 -04:00
Michael Abashian
8f6bb15acf Merge pull request #1564 from mabashian/1444-prompt-socket-v2
Hold off on refreshing lists when launch prompt modal is open
2018-04-25 17:00:02 -04:00
mabashian
fe7a0a63b9 Implemented expand/collapse job results 2018-04-25 16:56:11 -04:00
Ryan Petrello
6e3c35dba8 Merge pull request #1574 from ryanpetrello/select-poll
use select.poll() instead of select.select() for file descriptors
2018-04-25 16:49:41 -04:00
Ryan Petrello
f0d3713e99 use select.poll() instead of select.select() for file descriptors
see: https://github.com/ansible/tower/issues/861
see: https://github.com/pexpect/pexpect/pull/474
2018-04-25 16:29:55 -04:00
Christian Adams
5d82ee5a27 Merge pull request #1572 from rooftopcellist/radius_auth_fix
Radius auth fix
2018-04-25 16:17:31 -04:00
Ryan Petrello
69b10feecd Merge pull request #1571 from ryanpetrello/remove-old-fact-cleanup
remove the legacy fact cleanup system template
2018-04-25 16:14:38 -04:00
Christian Adams
2476dc1a61 Merge pull request #1800 from rooftopcellist/auth-backends-fix
fixes sso auth backends
2018-04-25 15:20:25 -04:00
Bill Nottingham
523613c64c Merge pull request #1554 from wenottingham/(don't)-use-the-force-rey
Only force role updates when we actually check out a new version.
2018-04-25 15:11:26 -04:00
adamscmRH
90308066af update radius backend for dr1.3.3 2018-04-25 15:04:46 -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
Wayne Witzel III
9319bbce8d Merge pull request #1565 from wwitzel3/fix-703
Allow real null to be searched in host_filter
2018-04-25 13:47:29 -04:00
Bill Nottingham
b3ca7acb41 Only pass --force if we have an scm_result (i.e., we ran an actual checkout/revision change.) 2018-04-25 13:46:46 -04:00
Marliana Lara
7f87cd9c47 Merge pull request #1570 from marshmalien/fix/1550-ig-readonly-org-admins
[UI] Org Admin permissions for Instance Groups
2018-04-25 13:41:40 -04:00
adamscmRH
db1072563f fixes sso auth backends 2018-04-25 13:15:01 -04:00
Michael Abashian
cb1f25393a Merge pull request #1543 from mabashian/1447-prompt-strings
Mark prompt strings for translation
2018-04-25 13:02:01 -04:00
Marliana Lara
9192829de2 [UI] Org Admin permissions for Instance Groups 2018-04-25 12:54:08 -04:00
Wayne Witzel III
14b0298217 Merge pull request #1566 from wwitzel3/make-awx-link
Add awx-link make target
2018-04-25 12:39:25 -04:00
mabashian
ac4697e93b Fixed bug displaying default cred with password when creating a schedule 2018-04-25 12:01:10 -04:00
Wayne Witzel III
7151071779 Add awx-link make target 2018-04-25 11:55:57 -04:00
mabashian
cf38faa899 Use string interpolation rather than passing action text in via a var 2018-04-25 11:51:27 -04:00
mabashian
82f2783c97 Mark prompt strings for translation 2018-04-25 11:51:27 -04:00
Wayne Witzel III
404b476576 Allow real null to be searched in host_filter 2018-04-25 11:46:21 -04:00
Jared Tabor
e5a1049edf Merge pull request #1402 from jaredevantabor/vars-component
Adds atCodeMirror directive
2018-04-25 08:43:12 -07:00
Michael Abashian
33a080d9dc Merge pull request #1525 from mabashian/schedule-extra-vars-fixes
Populate JT schedule add with default extra vars when promptable.
2018-04-25 11:40:24 -04:00
Michael Abashian
91ab129d9c Merge pull request #1395 from mabashian/1134-schedule-cred-password
Prevent credentials with passwords in schedule/workflow node prompts
2018-04-25 11:40:00 -04:00
Shane McDonald
5313e069ca Merge pull request #1799 from shanemcd/devel
Fix Helm PostgreSQL deployment name
2018-04-25 11:22:39 -04:00
Michael Abashian
b14a7eda35 Merge pull request #1499 from mabashian/1458-vault-pass-prompt
Fixed bug where vault password prompt was not being hidden after removing default cred
2018-04-25 11:20:49 -04:00
mabashian
d44d28beba Populate JT schedule add with default extra vars when promptable. Hide schedule vars for everything except JT's with promptable extra vars 2018-04-25 11:19:43 -04:00
Shane McDonald
e5faf0798f Always pull memcached image 2018-04-25 11:17:37 -04:00
Shane McDonald
e623c3d7cd Don’t hardcode Helm PostgreSQL deployment name 2018-04-25 11:17:26 -04:00
mabashian
eaa2227890 Replace styles with classes and move string to strings file 2018-04-25 11:08:08 -04:00
mabashian
895ad70a12 Prevent users from attempting to create a template schedule or workflow node with credentials that require passwords 2018-04-25 11:08:08 -04:00
Michael Abashian
d5c2af0492 Merge pull request #1528 from mabashian/1489-wfjt-schedule-prompt
Adds prompting to workflow schedules when a survey is present on the wfjt
2018-04-25 11:00:34 -04:00
Michael Abashian
e62a8797ae Merge branch 'release_3.3.0' into 1458-vault-pass-prompt 2018-04-25 10:59:57 -04:00
Alan Rominger
4919198c1d Merge pull request #1561 from AlanCoding/event_missing_stuff
Add handling for missing related items of events
2018-04-25 10:51:31 -04:00
mabashian
ea80fb8497 Hold off on refreshing lists when ws-jobs events come in and the launch modal is open to prevent the modal from getting wiped 2018-04-25 10:51:13 -04:00
Alan Rominger
c966492222 Merge pull request #1340 from AlanCoding/more_ig_validation
More Instance Group validation
2018-04-25 10:40:52 -04:00
Chris Meyers
1bf3624db7 Merge pull request #1548 from chrismeyersfsu/fix-very_round_up_instance_policy_percentage
ensure instance policy percentages round up
2018-04-25 10:37:10 -04:00
AlanCoding
b7f280588c add handling for missing related items of events 2018-04-25 10:33:43 -04:00
chris meyers
14c6265b27 ensure instance policy percentages round up 2018-04-25 10:11:40 -04:00
AlanCoding
c691d16b11 validate instance group host list 2018-04-25 09:45:30 -04:00
Matthew Jones
c6e76ec6c7 Merge pull request #1557 from ansible/instance_group_rebuild_on_save
Update group cluster policies on save, not just created
2018-04-25 08:57:47 -04:00
Matthew Jones
4442e7de25 Merge pull request #1555 from ansible/no_instancegroup_for_workflowjob
Remove Instance Group concept/usage from WorkflowJobs
2018-04-25 08:30:40 -04:00
Matthew Jones
4af8a53232 Remove Instance Group concept/usage from WorkflowJobs
This also relaxes some of the task manager rules on Instance Groups
down the full stack such that workflow jobs tend to shortcut the
processing or omit it altogether.

This lets the workflow job spawning logic exist outside of the
instance group queues, which it doesn't need to participate in in the
first place.
2018-04-25 08:29:49 -04:00
Wayne Witzel III
ce65914143 Merge pull request #1556 from ryanpetrello/fix-1490
fix a bug in custom virtualenv when Project.organization is None
2018-04-25 07:01:47 -04:00
Matthew Jones
05419d010b Update group cluster policies on save, not just created
Currently updating policy settings doesn't trigger a re-evaluation of
instance group policies, this makes sure we re-evaluate in the event
that anything changes.
2018-04-24 21:40:11 -04:00
Ryan Petrello
c98ede2f27 fix a bug in custom virtualenv when Project.organization is None
see: https://github.com/ansible/tower/issues/1490
2018-04-24 16:53:10 -04:00
Marliana Lara
2d9c4cff32 Merge pull request #1509 from marshmalien/fix/1380-org-admin-ig-access
Show instance groups tab if user is an Org Admin
2018-04-24 14:30:37 -04:00
Chris Meyers
f8b547e528 Merge pull request #1552 from chrismeyersfsu/fix-policy_not_required_field
policy fields not required
2018-04-24 14:23:35 -04:00
Jake McDermott
42e5f6ad33 Merge pull request #1538 from jakemcdermott/fix-smoke-nav
don't anticipate ui-disablement on navbar click to current page
2018-04-24 14:08:37 -04:00
chris meyers
619ec905b2 policy fields not required
* They were previously not required until a min/max was enforced. This
caused the fields to, unintentionally, be required.
* This fix makes the policy fields not required and provides sane defaults.
2018-04-24 14:05:38 -04:00
John Mitchell
c8442d705b Merge pull request #1530 from jlmitch5/newListXSSSanitize
specifically bind html only the row items that need it for new lists …
2018-04-24 13:58:46 -04:00
Alan Rominger
8765de732e Merge pull request #1546 from AlanCoding/named_words
use named formatting in error messages
2018-04-24 13:43:48 -04:00
Alan Rominger
7c0fdd5f05 Merge pull request #1540 from AlanCoding/modified_by_alice
Do not update modified_by for system fields
2018-04-24 12:25:03 -04:00
AlanCoding
13550acb91 fix cross-talk between JT-proj due to arg mutability 2018-04-24 11:29:33 -04:00
AlanCoding
7c621a91ee use named formatting in error messages 2018-04-24 11:26:36 -04:00
Alan Rominger
3b129d784a Merge pull request #1526 from AlanCoding/network_logs
Add more logs for network canvas activity
2018-04-24 11:14:22 -04:00
Michael Abashian
311e0343df Merge pull request #1520 from mabashian/1446-verbosity-prompt-preview
Show verbosity on prompt preview tab
2018-04-24 11:04:26 -04:00
AlanCoding
68975572f3 do not update modified_by for system fields 2018-04-24 10:48:23 -04:00
Marliana Lara
fd52fe9b96 Merge pull request #1527 from marshmalien/fix/1415-Tower-group-name-readonly
Make tower instance group name input field read-only
2018-04-24 07:40:24 -04:00
Jake McDermott
155daf47ea don't anticipate spinny on navbar click to current page 2018-04-24 01:19:53 -04:00
Jake McDermott
43aab10d18 Merge pull request #1532 from jaredevantabor/adhoc-host-events
Adhoc host events
2018-04-24 00:31:27 -04:00
Jake McDermott
d0c8c7d5ce Merge pull request #1533 from jaredevantabor/1436-angular-in-stdout
Adds NgNonBindable directive to stdout lines
2018-04-24 00:25:13 -04:00
Matthew Jones
047e2a92c5 Merge pull request #1506 from ansible/update_vmware_inventory
Updating vmware_inventory from upstream
2018-04-24 00:01:09 -04:00
Jared Tabor
6f1774f1b1 Adds NgNonBindable directive to stdout lines
in order to prevent stdout code from running angular snippets
2018-04-23 19:51:14 -07:00
Jared Tabor
99fb8e6d83 Updates URL for host events for adhoc commands 2018-04-23 19:15:12 -07:00
Jared Tabor
298af25bab Points the host event modal's Standard Out tab at event_data.res.stdout
instead of `event_data.res.results.stdout`. Same for stderr. This was
some stale copy pasta from the host event modal rework
2018-04-23 18:13:26 -07:00
Jared Tabor
929129e8ad Makes CodeMirror Modal resizable 2018-04-23 18:05:47 -07:00
Jared Tabor
0b4d88a57d Adds ability for parent controller to call atCodeMirror's init() function.
This enables the parent controller to re-instantiate the CodeMirror instance
on the fly, when necessary. This was necessary on the NetworkUI to update the
CodeMirror instance on the Host Detail panel.
2018-04-23 17:35:17 -07:00
Jared Tabor
19ebaa6916 Adds atCdeMirror directive
This commit adds a new component to be used for showing CodeMirror
instances, along with an expandable capability to view more variables.
It also removes the previous directive for the Network UI that used
to include this functionality.
2018-04-23 17:35:16 -07:00
Marliana Lara
bcee83e87c Fix broken unit tests 2018-04-23 19:35:59 -04:00
John Mitchell
9cfd264103 specifically bind html only the row items that need it for new lists in the ui 2018-04-23 16:57:43 -04:00
mabashian
6241290733 Adds prompting to workflow schedules when a survey is present on the wfjt 2018-04-23 15:53:16 -04:00
Marliana Lara
b9427ecf6d Show instance groups tab if user is an Org Admin 2018-04-23 15:50:48 -04:00
Marliana Lara
29b9c44a1e Show tower group name field as read-only 2018-04-23 15:29:53 -04:00
AlanCoding
405a936544 add more logs for network canvas activity 2018-04-23 15:29:13 -04:00
Ryan Petrello
e4ffdeb0b5 Merge pull request #1518 from ryanpetrello/botocore-dep-hell
unpin botocore now that an upstream dependency issue is resolved
2018-04-23 15:15:59 -04:00
Ryan Petrello
19d5d71937 unpin botocore now that an upstream dependency issue is resolved
related: 4f585dd09e
related: https://github.com/boto/botocore/pull/1433
2018-04-23 14:43:09 -04:00
John Mitchell
0de88d6566 Merge pull request #1440 from jlmitch5/fixNewTab
fix new tab in router
2018-04-23 13:52:27 -04:00
mabashian
5848a61238 Show verbosity on prompt preview tab 2018-04-23 13:52:11 -04:00
Michael Abashian
7a281cefed Merge pull request #1516 from mabashian/fix-prompt-creds
Fixed merge conflict error that prevents launching JTs with cred prompting
2018-04-23 13:46:50 -04:00
mabashian
e38d779d04 Fixed botched merge conflict bug which prevents launching jobs that need credential selection 2018-04-23 13:42:37 -04:00
Matthew Jones
18b41791ab Updating vmware_inventory from upstream 2018-04-23 12:59:41 -04:00
John Mitchell
fd598f5adc Merge pull request #1439 from jlmitch5/fixInstanceGroupsRunningJobs
update instance groups to only be running jobs
2018-04-23 12:43:23 -04:00
John Mitchell
a1541d679c remove obsolete .go unit test 2018-04-23 12:41:07 -04:00
mabashian
19ef91f2aa Fixed bug where vault password prompt was not being hidden after removing default credential 2018-04-23 12:26:07 -04:00
Ryan Petrello
488e0cc4c6 Merge pull request #1459 from wwitzel3/become-enable
Add new credential become methods, inject instead of set in database
2018-04-23 11:50:31 -04:00
Michael Abashian
4b4bbcebae Merge pull request #1399 from mabashian/1137-cancel-prompt
Fixed bug where user could still save schedule/node after halfway filling out prompt step(s)
2018-04-23 11:30:00 -04:00
Wayne Witzel III
765ad07d9e Fix migration name/ordering 2018-04-23 11:00:21 -04:00
Michael Abashian
d36ec19e24 Merge branch 'release_3.3.0' into 1137-cancel-prompt 2018-04-23 10:57:01 -04:00
Michael Abashian
8c10a064f2 Merge pull request #1438 from mabashian/1437-host-filter-tags
Fixed bug where host filter search tags were not present
2018-04-23 10:55:42 -04:00
Wayne Witzel III
f1b37ff53a Fix order become methods render and migration query 2018-04-23 10:33:59 -04:00
Wayne Witzel III
c1a8d8670f Pop the type to be consistent 2018-04-23 10:33:59 -04:00
Wayne Witzel III
07474d5b21 Extend become_method to model field validation as well 2018-04-23 10:33:59 -04:00
Wayne Witzel III
d6ac9b6e3d Restore previous choices, clean up some minor things 2018-04-23 10:33:59 -04:00
Wayne Witzel III
8fa98d0d54 Add new credential become methods, inject instead of set in database 2018-04-23 10:33:59 -04:00
Wayne Witzel III
df4f6ecfd6 Merge pull request #1480 from wwitzel3/release_3.3.0
Fixup migrations.
2018-04-23 06:01:06 -07:00
Wayne Witzel III
44470200a2 Fix migration numbering 2018-04-23 07:51:36 -04:00
Wayne Witzel III
c37ed32c55 Merge pull request #1204 from AlanCoding/org_members_team
allow org members to see teams in org
2018-04-23 04:15:38 -07:00
Matthew Jones
ec8a8119b9 Merge pull request #1468 from ansible/protect_iso_groups
Protect isolated and control groups from api deletion
2018-04-20 17:36:30 -04:00
Alan Rominger
cdb7e16e6d Merge pull request #1463 from AlanCoding/update_supervisor
Update the dev supervisor file to match recent change
2018-04-20 16:51:08 -04:00
Christian Adams
136a58ee85 Merge pull request #1465 from rooftopcellist/update_oauth2_docs
Update oauth2 docs
2018-04-20 16:50:12 -04:00
John Mitchell
ee137b8b4d fix open in new tab for credentials and inventory scripts 2018-04-20 16:00:57 -04:00
Matthew Jones
062329f56e Protect isolated and control groups from api deletion
Isolated and Control groups are managed strictly from the standalone
setup playbook installer and should not be directly managable from the
api. Especially true since you can't assign or create isolated groups
from within the API itself.

In the future this may change but allowing this in the API could leave
the system in a bad state.
2018-04-20 15:30:13 -04:00
adamscmRH
350ebab161 fix curl example 2018-04-20 15:22:28 -04:00
AlanCoding
4036f64cc4 update the dev supervisor file to match recent change 2018-04-20 14:53:21 -04:00
Chris Meyers
a2901a47ee Merge pull request #1410 from chrismeyersfsu/fix-revert_tower_special_group
send all tower work to a user-hidden queue
2018-04-20 14:21:50 -04:00
Christian Adams
b9d5f96f00 Merge pull request #1460 from rooftopcellist/saml_auth_issue
fix multiple auth backends
2018-04-20 14:04:36 -04:00
Matthew Jones
d04bbde3c2 Merge pull request #1786 from shanemcd/devel
Fix image build role when not deploying to localhost
2018-04-20 13:46:50 -04:00
adamscmRH
3627c713fa fix multiple auth backends 2018-04-20 13:34:51 -04:00
Alan Rominger
996cf550f2 Merge pull request #1443 from AlanCoding/start_anyway
Minor tweak to WFJT can_start launch field
2018-04-20 13:04:42 -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
Alan Rominger
a916bf07bb Merge pull request #1238 from AlanCoding/licenses
Licenses
2018-04-20 13:03:35 -04:00
Alan Rominger
2c917f876f Merge pull request #1455 from AlanCoding/event_of_the_century
Fix event querysets for non superusers
2018-04-20 13:02:54 -04:00
AlanCoding
129701d825 minor tweak to WFJT can_start launch field 2018-04-20 12:49:38 -04:00
AlanCoding
6cb237d5d9 fix event querysets for non superusers 2018-04-20 11:44:52 -04:00
Shane McDonald
e2deab485e Merge pull request #1776 from enginvardar/devel
Install unzip for awx_task docker image to enable usage of unarchive …
2018-04-20 09:11:23 -04:00
Marliana Lara
8d6bd2f3a9 Merge pull request #1396 from marshmalien/fix/1342-css-gridify-lists
Fix alignment of list action icons and invalid item bar
2018-04-20 09:03:49 -04:00
Engin Vardar
6b06d1896e Install unzip to enable usage of unarchive module
Signed-off-by: Engin Vardar <enginvardar@gmail.com>
2018-04-20 09:17:27 +02:00
Shane McDonald
98a9e82d2d Fix image build role when not deploying to localhost 2018-04-20 00:07:25 -04:00
Shane McDonald
590d5ccad1 Merge pull request #1718 from soumikgh/devel
Bind mount to custom certs to `source/anchors` subfolder
2018-04-19 22:33:36 -04:00
John Mitchell
3f509d5ae8 fix new tab in router 2018-04-19 18:27:15 -04:00
John Mitchell
b042beeef7 update instance groups to only be running jobs 2018-04-19 18:15:35 -04:00
mabashian
d4f46fa0e4 Fixed bug where host filter search tags were not present 2018-04-19 17:40:26 -04:00
Marliana Lara
763afc7245 Fix row label bugs and responsive actions button alignment 2018-04-19 16:08:26 -04:00
Alan Rominger
81234986b4 Merge pull request #1435 from AlanCoding/dragon_riddle
Add relative location to CT schema errors
2018-04-19 16:01:18 -04:00
Marliana Lara
92a742af98 Fix alignment of action icons and invalid bar with css grid 2018-04-19 15:18:32 -04:00
AlanCoding
fb43538333 add relative location to CT schema errors 2018-04-19 14:58:40 -04:00
Alan Rominger
60e3dfe22c Merge pull request #1432 from AlanCoding/dragon_born_again
Fix server error with unicode in template
2018-04-19 14:49:11 -04:00
AlanCoding
9f6a4e135f fix server error with unicode in template 2018-04-19 14:25:59 -04:00
Alan Rominger
3798decafc Merge pull request #1429 from AlanCoding/invalid_dragon
prevent server error with CT unicode keys
2018-04-19 13:51:58 -04:00
AlanCoding
f78037c0f3 prevent server error with CT unicode keys 2018-04-19 13:27:25 -04:00
Alan Rominger
a7ecc306e1 Merge pull request #1328 from AlanCoding/job_del_protect
make deletion protection mixin work with inventories
2018-04-19 13:18:31 -04:00
Alan Rominger
c0fd56c654 Merge pull request #1381 from AlanCoding/test_docker
Run ansible tests separately
2018-04-19 13:04:14 -04:00
Christian Adams
d08790a5b4 Merge pull request #1420 from rooftopcellist/act_stream_access
Act stream access
2018-04-19 11:51:33 -04:00
Wayne Witzel III
ab311d5c2f Merge pull request #1422 from wwitzel3/release_3.3.0
Remove unused code, OrderedDictLoader
2018-04-19 08:33:16 -07:00
adamscmRH
b6fcfd43b1 Fix app activity stream permissions 2018-04-19 11:19:19 -04:00
Michael Abashian
ae69abf73c Merge pull request #1413 from mabashian/694-wfjt-missing-jts
Show warning on wfjt form when the workflow contains deleted job templates
2018-04-19 11:17:54 -04:00
Bill Nottingham
dd6527288f Merge pull request #1425 from wenottingham/out-with-the-stdout
Drop /var/lib/awx/job_status listing from sosreport.
2018-04-19 11:10:21 -04:00
mabashian
783cca316e Fixed broken wfjt save test 2018-04-19 11:05:03 -04:00
mabashian
15b31c7abe Removed trailing whitespace 2018-04-19 10:54:35 -04:00
mabashian
b37ee2f611 Show warning on wfjt form when the workflow contains deleted job templates 2018-04-19 10:54:04 -04:00
Bill Nottingham
ea9278a3ea Drop /var/lib/awx/job_status listing from sosreport.
This directory is not persistently populated any more.
2018-04-19 10:47:45 -04:00
Michael Abashian
1fc6a34e62 Merge pull request #1362 from mabashian/933-form-checkboxes-too-wide
Make checkbox labels the width of their contents not their parent
2018-04-19 10:34:04 -04:00
Marliana Lara
bcc5508efd Merge pull request #1401 from marshmalien/fix/ff/1361-template-add-button-styles
Remove +Add button bevel border in Firefox
2018-04-19 10:22:51 -04:00
Marliana Lara
5f7466364b Merge pull request #1407 from marshmalien/fix/1392-relaunch-on-failed
Show relaunch dropdown for only jobs with the status of "failed"
2018-04-19 10:19:06 -04:00
mabashian
4794fc510d Use flex instead of float on form checkboxes 2018-04-19 10:08:34 -04:00
Marliana Lara
4daf1d815b Merge pull request #1398 from marshmalien/fix/1362-instance-modal-scrollable
Add scroll to instance modal
2018-04-19 10:05:07 -04:00
Michael Abashian
6595515987 Merge pull request #1421 from mabashian/692-broken-jt-workflow-form
Prevent user from selecting an invalid JT when adding/editing a wfjt node
2018-04-19 10:02:04 -04:00
Michael Abashian
d2f4ed46ea Merge pull request #1376 from mabashian/1022-groups-all-groups
Show all inventory groups instead of just root groups on the inventor…
2018-04-19 10:01:26 -04:00
Michael Abashian
d3a3694a49 Merge pull request #1356 from mabashian/947-allow-simultaneous
Add checkbox for allow_simultaneous on the workflow job template forms
2018-04-19 09:58:39 -04:00
Michael Abashian
38d83081bb Merge pull request #1335 from mabashian/1260-org-credentials
Check for org credentials and present the count to the user before org deletion
2018-04-19 09:58:00 -04:00
Michael Abashian
4158d64410 Merge pull request #1332 from mabashian/1318-workflow-template-survey
Fixed bug launching workflow with survey
2018-04-19 09:57:25 -04:00
Ryan Petrello
3c7a0b5505 Merge pull request #1424 from ryanpetrello/more-yaml-unsafe
add more edge case handling for yaml unsafe marking
2018-04-19 09:32:25 -04:00
Ryan Petrello
f8211b0588 add more edge case handling for yaml unsafe marking 2018-04-19 09:16:22 -04:00
Chris Meyers
df298cec36 Merge pull request #1374 from chrismeyersfsu/fix-proj_update_redact
redact project update urls when downloading stdout
2018-04-19 09:09:24 -04:00
Wayne Witzel III
a23aadf346 Remove unused code, OrderedDictLoader 2018-04-19 08:07:09 -04:00
Ryan Petrello
31ea55acb9 Merge pull request #1397 from ryanpetrello/unsafe-extra-vars-324
mark launch-time extra vars as !unsafe and sanitize Jinja from certain CLI flags
2018-04-19 07:55:53 -04:00
Wayne Witzel III
3c5928fe5b Merge pull request #1405 from wenottingham/sending-out-an-sos-to-the-world
Update sosreport plugin to pull in more information
2018-04-19 04:10:54 -07:00
Wayne Witzel III
250e036d0b Merge pull request #1412 from AlanCoding/yaml_json_cats_dogs
Add protection for job-compatible vars
2018-04-19 04:04:42 -07:00
mabashian
a918539e23 Prevent user from selecting an invalid JT when adding/editing a wfjt node 2018-04-18 18:13:51 -04:00
chris meyers
09d5645b90 redact project update urls when downloading stdout
* For ProjectUpdate jobs. Redact potentially sensitive urls from the
output.
2018-04-18 16:45:55 -04:00
Alan Rominger
cbe3bc3f2a Merge pull request #1337 from AlanCoding/not_negative_no
never show negative remaining capacity values
2018-04-18 16:33:09 -04:00
Alan Rominger
5cd53142a6 Merge pull request #1341 from AlanCoding/AND_help
Clarify help text on AND searches
2018-04-18 16:19:18 -04:00
Alan Rominger
63b3cc84c4 Merge pull request #1414 from AlanCoding/job_add
avoid server error adding job
2018-04-18 12:04:07 -04:00
Shane McDonald
f4f22dc585 Merge pull request #1777 from shanemcd/devel
Use Deployment on Kubernetes
2018-04-18 10:32:40 -04:00
Shane McDonald
cf5149ecf4 Use Deployment on Kubernetes
I messed this up when rebasing.
2018-04-18 10:28:50 -04:00
Christian Adams
87ba56ba67 Merge pull request #1409 from rooftopcellist/validate_scopes
adds help-text for scopes
2018-04-18 10:09:59 -04:00
Alan Rominger
18a7e86e0c Merge pull request #1175 from AlanCoding/protect_hosts
Add deletion protection to hosts
2018-04-18 10:06:05 -04:00
AlanCoding
13c483e463 avoid server error adding job 2018-04-18 08:27:08 -04:00
AlanCoding
c397cacea5 add protection for job-compatible vars 2018-04-18 07:14:02 -04:00
Ryan Petrello
835f2eebc3 make extra var YAML serialization more robust to non-dict extra vars 2018-04-17 15:39:37 -04:00
Alan Rominger
283132cd08 Merge pull request #1393 from AlanCoding/no_cred_pass
Fix API browser server error on relaunch
2018-04-17 15:28:35 -04:00
adamscmRH
50a5a1a9f8 adds help-text for scopes 2018-04-17 14:38:51 -04:00
Christian Adams
2db44cbf17 Merge pull request #1404 from rooftopcellist/application_id_act_stream
Fix app json error
2018-04-17 13:49:57 -04:00
Marliana Lara
328d9dbe01 Show relaunch dropdown if job has status of "failed" 2018-04-17 13:35:01 -04:00
Bill Nottingham
40cf80db1d Add rabbitmq status commands as well. 2018-04-17 12:25:26 -04:00
Bill Nottingham
ade51c93d8 Add some more information to sosreports.
- tower cluster configuration
- list of all venvs (including custom ones)
2018-04-17 12:25:26 -04:00
Ryan Petrello
fe47b75aad use a three-prong setting for Jinja extra vars policy 2018-04-17 12:08:07 -04:00
adamscmRH
0d2f92c364 Fix app json error 2018-04-17 12:02:35 -04:00
Shane McDonald
ffc347bfd0 Merge pull request #1771 from shanemcd/kubernetes-role-cleanup
Kubernetes role cleanup
2018-04-17 11:16:46 -04:00
Ryan Petrello
7304301948 don't bother building a safe extra vars namespace; it's a file path now 2018-04-17 10:24:14 -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
Alan Rominger
4e4dabb7f1 Merge pull request #1391 from AlanCoding/crusty_setting
Remove setting corresponding to removed tests
2018-04-16 20:36:37 -04:00
Shane McDonald
40d7751fbd Remove image push logic from installer roles
I’m going to be reusing this code on the Tower side, and I’m trying to refactor some of the AWX specific bits out. There will probably be more to come, but this is a good start.
2018-04-16 19:01:43 -04:00
Shane McDonald
2b6fe7969f Move rabbitmq and memcached images into variables 2018-04-16 17:43:15 -04:00
Shane McDonald
0786b41ac6 Allow for customizing kubernetes deployment name 2018-04-16 17:43:15 -04:00
Shane McDonald
479a56c6d3 Generalize variable names in installer
secret_key
2018-04-16 17:43:15 -04:00
Marliana Lara
c4f04f544f Fix add button styles in Firefox 2018-04-16 17:40:04 -04:00
mabashian
fcf9e45d0a Only update the promptData object when the user successfully completes the prompt process 2018-04-16 16:59:23 -04:00
Marliana Lara
acda67f0fe Make instance modal scrollable 2018-04-16 16:52:17 -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
Shane McDonald
e4a6fc55df Remove unused variable from inventory 2018-04-16 15:51:36 -04:00
Shane McDonald
bebc37b3eb Set kubernetes_namespace when deploying on OpenShift
kubernetes_namespace is referenced later it the role but may not be set if deploying on openshift
2018-04-16 15:51:36 -04:00
Shane McDonald
534b2f1601 Fix openshift_pg_emptydir logic 2018-04-16 15:51:36 -04:00
Shane McDonald
db02bd7531 Remove explicit nodePort declarations for RabbitMQ service
This lets Kubernetes handle the port mapping, which resolves a port collision issue when running multiple deployments of AWX in a single cluster.
2018-04-16 15:51:36 -04:00
Shane McDonald
e9ddf7b9db Use a DeploymentConfig in OpenShift 2018-04-16 15:51:36 -04:00
Shane McDonald
0055c2ffff Merge pull request #1760 from AlanCoding/fix_tests_25
Fix tests fallout from 2.5 upgrade
2018-04-16 15:51:11 -04:00
AlanCoding
d234b71fd8 fix API browser server error on relaunch 2018-04-16 15:03:44 -04:00
AlanCoding
4ff2f3e061 remove setting corresponding to removed tests 2018-04-16 14:49:54 -04:00
Alan Rominger
a03316cdb9 Merge pull request #1388 from AlanCoding/dep_warn
Fix deprecation warning for project update
2018-04-16 14:26:56 -04:00
AlanCoding
affaf23a6b fix deprecation warning for project update 2018-04-16 13:22:58 -04:00
Marliana Lara
cf5ac47a7b Merge pull request #1349 from marshmalien/fix/1290-readonly-tower-group
UI - Display tower instance group as read-only
2018-04-16 13:05:35 -04:00
Michael Abashian
7cd26451b5 Merge pull request #1365 from mabashian/1346-empty-codemirror
Fixed empty codemirror bug
2018-04-16 12:06:05 -04:00
AlanCoding
5eaffb3520 run ansible tests separately 2018-04-16 10:32:51 -04:00
Alan Rominger
88e2741836 Merge pull request #1370 from AlanCoding/backport_with_items
[3.2.4] with_items no_log fix
2018-04-16 09:57:25 -04:00
Alan Rominger
8a55b7f296 Merge pull request #1378 from AlanCoding/fix_unit_test
Fix conditional LDAP test fail
2018-04-16 09:13:59 -04:00
AlanCoding
9bd64fd490 never show negative remaining capacity values 2018-04-16 08:05:16 -04:00
AlanCoding
52416188e2 clarify help text on AND searches 2018-04-16 08:04:07 -04:00
AlanCoding
8ea323895a fix conditional LDAP test fail
Previously, if the main unit tests, test_common.py was
run before running this test, it would fail.
By clearing the cache at the start of the test, we
make its behavior consistent and predictable no
matter what other tests are also being ran,
and the assertion is adjusted to match.
2018-04-16 07:53:44 -04:00
Alan Rominger
900ea14883 Merge pull request #1286 from AlanCoding/remove_user_roles
Remove the "user admin role" entirely
2018-04-16 07:33:55 -04:00
mabashian
7239b28dd8 Show all inventory groups instead of just root groups on the inventory groups tab 2018-04-13 16:21:24 -04:00
AlanCoding
de07ef0680 fix tests fallout from 2.5 upgrade 2018-04-13 16:01:11 -04:00
chris meyers
04693ecb0f remove infinite loop regex
* Fancy url finding regex can result in infinite loop for malformed ipv6
urls so replace it with a more nieve regex that can overmatch.
* regex's that find malformed ipv6 urls will be passed to urlparse. This
can result in a parsing/ValueError. For these cases we redact the entire
found URI.
2018-04-13 15:48:06 -04:00
AlanCoding
77aab65f57 fix no_log leaking with_items values 2018-04-13 15:41:57 -04:00
Jake McDermott
b1f4fb3a98 Merge pull request #1368 from jakemcdermott/fix-1334
add expandable explanation and traceback details
2018-04-13 15:15:34 -04:00
Christian Adams
a1dbd4dd57 Merge pull request #1371 from rooftopcellist/fix_app_change_id
Fix id in activity_stream
2018-04-13 15:11:48 -04:00
adamscmRH
dcb6ca33a5 fix id for app in act_stream 2018-04-13 14:37:19 -04:00
Jake McDermott
9f7dd2af09 add expandable explanation and traceback details 2018-04-13 13:50:52 -04:00
Alan Rominger
684091f4f3 Merge pull request #1367 from AlanCoding/another_lib_fail
Fix test so that playbook runs to completion
2018-04-13 13:39:07 -04:00
AlanCoding
ddc8871e12 fix test so that playbook runs to completion 2018-04-13 13:21:38 -04:00
mabashian
ec1897ac3e Check to make sure extraVarsClone exists before attempting to cull passwords 2018-04-13 13:05:28 -04:00
Alan Rominger
e5165f152a Merge pull request #1351 from AlanCoding/loop_log_fix
[fixes test fail] Fix no_log leaking with_items values
2018-04-13 13:02:28 -04:00
mabashian
cb01dea55f Make checkbox labels the width of their contents no their parent 2018-04-13 10:34:39 -04:00
Michael Abashian
2dad8cc980 Merge pull request #1347 from mabashian/1188-launch-double-submit
Prevent double click on launch which spawns multiple jobs
2018-04-13 10:00:29 -04:00
Michael Abashian
9512bbe1df Merge pull request #1344 from mabashian/845-jobs-list-cancel
Added cancel job logic to the jobs list
2018-04-13 09:58:43 -04:00
Alan Rominger
fb53bc95db Merge pull request #1358 from AlanCoding/fix_lib
fix PATH hack used in test
2018-04-13 09:21:18 -04:00
AlanCoding
6f9ff54430 fix PATH hack used in test 2018-04-13 08:44:39 -04:00
AlanCoding
0c2a621a4e fix no_log leaking with_items values 2018-04-13 07:16:44 -04:00
Alan Rominger
8f6688a84b Merge pull request #1355 from AlanCoding/rm_test
[fixes test fail] Remove test for behavior going away in Ansible 2.5
2018-04-12 17:40:14 -04:00
AlanCoding
e3984cb89b remove test for behavior going away in Ansible 2.5 2018-04-12 15:34:58 -04:00
mabashian
93dc27f0e7 Add checkbox for allow_simultaneous on the workflow job template forms 2018-04-12 15:34:36 -04:00
Michael Abashian
35a75196a9 Merge pull request #1336 from mabashian/1301-activity-stream-setting
Added setting name and setting category to activity stream detail modal
2018-04-12 14:23:10 -04:00
AlanCoding
4995ee7a60 remove admin_role for users 2018-04-12 13:18:49 -04:00
Christian Adams
087ac17c90 Merge pull request #1308 from rooftopcellist/fix_censor
Fix censor
2018-04-12 11:56:44 -04:00
Marliana Lara
05415da3f9 Display Tower instance group as read-only 2018-04-12 10:39:36 -04:00
mabashian
52e226780a Disable prompt final action button after first click to prevent double clicking and launching multiple jobs 2018-04-12 09:54:56 -04:00
mabashian
f35bc4b40a Cancelable job status' should be pending, waiting or running 2018-04-12 09:30:04 -04:00
mabashian
fab3f3d592 Added cancel job logic to the jobs list 2018-04-11 16:53:03 -04:00
Christian Adams
a2cc357f21 Merge pull request #1333 from rooftopcellist/app_help_text
add oauth2 help text
2018-04-11 16:12:45 -04:00
adamscmRH
d1b8142b94 add oauth2 help text 2018-04-11 15:10:39 -04:00
Alan Rominger
4cc84d020d Merge pull request #1169 from AlanCoding/filterability
Add tip in OPTIONS for fields that cannot be filtered
2018-04-11 14:35:37 -04:00
Alan Rominger
7ad42161fc Merge pull request #1331 from AlanCoding/show_me_your_exceptions
Always log uncaught task exceptions
2018-04-11 14:26:09 -04:00
Michael Abashian
5959c01611 Merge pull request #1315 from mabashian/1004-smart-inv-hosts
Force on/off toggle to be disabled on smart inventory host list
2018-04-11 13:23:35 -04:00
mabashian
6757f5bbe5 Added setting name and setting category to activity stream detail modal 2018-04-11 13:21:06 -04:00
mabashian
94ecfbee6a Check for org credentials and present the count to the user before org deletion 2018-04-11 12:53:49 -04:00
Shane McDonald
b0425d524c Merge pull request #1754 from ansible/fix-docker-compose-template
Fix whitespace issues with docker-compose jinja template
2018-04-11 12:38:09 -04:00
mabashian
3dd9ca3fb6 Check to make sure vm.promptData.launchConf.passwords_needed_to_start exists before looping 2018-04-11 11:09:01 -04:00
Shane McDonald
3720c57c63 Fix whitespace issues with docker-compose jinja template
See https://github.com/ansible/awx/issues/1710
2018-04-11 11:06:34 -04:00
AlanCoding
0a23195a7b always log uncaught task exceptions 2018-04-11 11:03:06 -04:00
Alan Rominger
c936fd7035 Merge pull request #1329 from AlanCoding/help_text_words
expand on fact cache timeout help text
2018-04-11 10:32:24 -04:00
Marliana Lara
cee94e7b97 Merge pull request #1327 from marshmalien/fix/976-jt-admin-error-prompt
Fix erroneous job template admin error message
2018-04-11 10:19:24 -04:00
Michael Abashian
0459043b8e Merge pull request #1307 from mabashian/957-nested-group-name
Fixed nested group name link
2018-04-11 10:10:59 -04:00
Michael Abashian
9b7f9c4276 Merge pull request #1304 from mabashian/1136-credential-password-prompt
1136 credential password prompt
2018-04-11 10:10:36 -04:00
Michael Abashian
e77369d113 Merge pull request #1299 from mabashian/1005-adhoc-cred-machine
Limit adhoc credential lookup to only machine credentials
2018-04-11 10:10:13 -04:00
mabashian
9e31c25025 Pass ngDisabled a simple boolean instead of truthy expression 2018-04-11 10:07:49 -04:00
AlanCoding
24369572dc expand on fact cache timeout help text 2018-04-11 07:58:37 -04:00
AlanCoding
0c224df9ad make deletion protection mixin work with inventories 2018-04-11 07:54:09 -04:00
Jared Tabor
03f4010edc Merge pull request #1275 from jaredevantabor/webpack-dev
Changes https flag to false for UI dev env watcher
2018-04-10 14:01:03 -07:00
Chris Meyers
85b026dec7 Merge pull request #1326 from chrismeyersfsu/fix-ldap_defaults
set better defaults for ldap
2018-04-10 15:54:56 -04:00
chris meyers
00cd6cb384 set better defaults for ldap
* LDAP params is a new field. It contains the kwargs that will be passed
to the python class specified by group type. The default for group type
is MemberDNGroupType. The required params are now those in the defaults.
2018-04-10 15:44:08 -04:00
Marliana Lara
07a01e741b Fix erroneous job template admin error message 2018-04-10 15:41:02 -04:00
Marliana Lara
0f79c940a0 Merge pull request #1322 from marshmalien/fix/1293-delete-ig-infinite-spinner
Fix infinite Wait spinner when deleting instance group
2018-04-10 15:36:30 -04:00
Marliana Lara
46f6c67566 Add updates to instance groups strings file 2018-04-10 15:25:24 -04:00
Jake McDermott
55ae23a2f4 Merge pull request #1320 from jakemcdermott/use-copy-capability-field
use copy capability field for copy action
2018-04-10 14:34:12 -04:00
Alan Rominger
ffa61250bb Merge pull request #1312 from AlanCoding/fix_silent_fail
fix silent traceback tests were causing
2018-04-10 14:02:36 -04:00
adamscmRH
8529f2b5eb makes censor characters consistent 2018-04-10 14:02:33 -04:00
Marliana Lara
6beaa4b166 Fix infinite Wait spinner when deleting instance group 2018-04-10 13:46:55 -04:00
Jake McDermott
02d7ce97c6 use copy capability field for copy action 2018-04-10 13:38:07 -04:00
Alan Rominger
e78b5dab73 Merge pull request #1310 from AlanCoding/null_encrypted
do not server error if this value is None
2018-04-10 12:52:56 -04:00
Jake McDermott
53944a2cf3 Merge pull request #1314 from jakemcdermott/fix-delete-cancel-urls
use newly ordained list of statuses for showing cancel/delete
2018-04-10 12:49:30 -04:00
Jake McDermott
f0e0a8a338 use newly ordained list of statuses for showing cancel/delete 2018-04-10 12:36:21 -04:00
mabashian
2f96169f07 Force on/off toggle to be disabled on smart inventory host list 2018-04-10 12:27:09 -04:00
Jake McDermott
1961f99106 Merge pull request #1313 from jakemcdermott/fix-delete-cancel-urls
use ordained list of statuses for showing cancel/delete
2018-04-10 12:07:26 -04:00
Jake McDermott
6768b10638 use ordained list of statuses for showing cancel/delete 2018-04-10 12:05:10 -04:00
John Mitchell
ec586de687 Merge pull request #1281 from jlmitch5/componentizeListInvalidity
move invalid list row properties to row component
2018-04-10 11:58:35 -04:00
Marliana Lara
888a1cbea8 Merge pull request #1236 from marshmalien/fix/926-prompt-for-days-form
Fix Cleanup Job Days cannot be changed from 30
2018-04-10 11:54:46 -04:00
AlanCoding
69822391b3 fix silent traceback tests were causing 2018-04-10 11:51:05 -04:00
Marliana Lara
704a2a73c7 Fix error where controller was accessing wrong prompt_for_days_form scope. 2018-04-10 11:32:35 -04:00
Jake McDermott
ffa1f37742 Merge pull request #1309 from jakemcdermott/fix-delete-cancel-urls
fix cancel-delete urls
2018-04-10 11:01:58 -04:00
AlanCoding
4f65b283df do not server error if this value is None 2018-04-10 11:00:37 -04:00
Jake McDermott
02f9fd0ca0 fix cancel-delete urls 2018-04-10 10:58:33 -04:00
mabashian
50a1a5707e Fixed nested group name link 2018-04-10 10:51:56 -04:00
mabashian
c8b12ed23e Fixed bug where typing in a password would update all password inputs 2018-04-10 10:26:56 -04:00
mabashian
a6dd7dbf07 Fixed credential prompting bug where only one password field is ever shown even if multiple passwords are required 2018-04-10 10:08:49 -04:00
Ryan Petrello
ea900b6f95 Merge pull request #1298 from ryanpetrello/fix-1266
fix a bug preventing custom credential templates from including unicode
2018-04-10 08:43:13 -04:00
Alan Rominger
486e5a2ef2 Merge pull request #1297 from AlanCoding/millennials
Prevent OverflowError in SESSION_COOKIE_AGE
2018-04-10 07:19:25 -04:00
mabashian
6e2133aa52 Limit adhoc credential lookup to only machine credentials 2018-04-09 17:10:15 -04:00
Ryan Petrello
b1028a2e0a fix a bug preventing custom credential templates from including unicode
see: https://github.com/ansible/tower/issues/1266
2018-04-09 17:08:10 -04:00
Jake McDermott
dd5a34ce3b pin container images 2018-04-09 16:30:47 -04:00
Michael Abashian
150467a1cb Merge pull request #1295 from mabashian/1033-inv-source-error-handling
Fixed inventory source form error message
2018-04-09 15:51:27 -04:00
Michael Abashian
335e8be709 Merge pull request #1287 from mabashian/1077-host-pagination
Fixed host/groups pagination issue
2018-04-09 15:49:52 -04:00
AlanCoding
13759fd8ce prevent OverflowError in SESSION_COOKIE_AGE 2018-04-09 15:48:26 -04:00
John Mitchell
e6d4778049 Merge pull request #1277 from jlmitch5/navUpdates33
ux updates to navigation
2018-04-09 15:34:56 -04:00
Jake McDermott
e343a8d983 Merge pull request #1296 from jakemcdermott/bug-1294
update badge count on search
2018-04-09 15:25:18 -04:00
mabashian
453a8507b0 Function/code cleanup 2018-04-09 15:07:27 -04:00
Jake McDermott
04d8642daf update badge count on search 2018-04-09 15:04:52 -04:00
mabashian
23d1454646 Fixed inventory source form error message. Leveraged inv src model for adding/editing existing object 2018-04-09 15:01:16 -04:00
Ryan Petrello
1c24ab913e Merge pull request #1282 from ryanpetrello/fix-1268
add exception handling to deprecated v1 credential support
2018-04-09 14:46:48 -04:00
Alan Rominger
51d43e59e4 Merge pull request #1272 from AlanCoding/user_create_err
handle 400 error creating sys auditor
2018-04-09 14:37:25 -04:00
Ryan Petrello
18c95bf706 add exception handling to deprecated v1 credential support
see: https://github.com/ansible/tower/issues/1268
2018-04-09 14:23:43 -04:00
Michael Abashian
5b619ff0c1 Merge pull request #1274 from mabashian/1026-relaunch-adhoc-error-handle
Added generic error handling to promises in relaunch button component
2018-04-09 13:45:49 -04:00
Jake McDermott
8b7884a965 Merge pull request #1280 from jakemcdermott/bug-1271
ensure correct auth and system configuration forms are loaded
2018-04-09 13:34:25 -04:00
Jake McDermott
67ba534097 ensure correct system and auth forms are loaded 2018-04-09 13:09:49 -04:00
John Mitchell
8371e73bd0 update collapse nav spacer padding amount 2018-04-09 13:04:57 -04:00
Jake McDermott
831fb13347 Merge pull request #1285 from jakemcdermott/output-details-command-args
show module arg details for command jobs
2018-04-09 12:29:24 -04:00
Jake McDermott
d2dfca23f6 show module arg details for command jobs 2018-04-09 12:10:43 -04:00
John Mitchell
3ab255bda8 remove todo messages 2018-04-09 11:57:32 -04:00
mabashian
93e6d06bca Fixed host/groups pagination issue 2018-04-09 11:53:59 -04:00
Jake McDermott
27e8e55d15 add e2e test for auth form rendering after tab switch 2018-04-09 11:30:52 -04:00
John Mitchell
37546d6495 move invalid list row properties to row component 2018-04-09 11:20:26 -04:00
Alan Rominger
5594bae766 Merge pull request #1247 from AlanCoding/more_v1_yay
More accurate handling of serializer cred versioning
2018-04-09 10:39:54 -04:00
AlanCoding
c1f1921995 add test for JT credential summary_fields 2018-04-09 09:56:43 -04:00
Jake McDermott
4a9bf0e46d Merge pull request #1278 from jakemcdermott/bug-1276
fix stats bar issue for adhoc jobs + account for 'check' type project update jobs
2018-04-09 09:56:17 -04:00
Ryan Petrello
c420146c56 Merge pull request #1279 from ryanpetrello/release_3.3.0
missing import for celery failure handler
2018-04-09 09:23:35 -04:00
Ryan Petrello
ba66996add missing import for celery failure handler 2018-04-09 09:10:50 -04:00
AlanCoding
c88621f5fb more accurate handling of serializer cred versioning 2018-04-09 08:39:27 -04:00
Jake McDermott
78e0c02a08 no stats event expected for inventory updates 2018-04-09 08:38:20 -04:00
AlanCoding
f369e3ba0f handle 400 error creating sys auditor 2018-04-09 08:37:54 -04:00
Jake McDermott
56935fef94 account for existence of 'check' project update jobs 2018-04-09 08:35:14 -04:00
Jake McDermott
60d311c1a9 don't try to use stats events for adhoc commands 2018-04-09 08:34:43 -04:00
John Mitchell
177b771826 fix less syntax arrow 2018-04-06 18:04:10 -04:00
John Mitchell
ea16bef39b ux updates to navigation 2018-04-06 17:50:49 -04:00
Jake McDermott
8134110e6f Merge pull request #1263 from mabashian/1067-workflow-running-status
Handle workflow job status race condition
2018-04-06 17:32:57 -04:00
Jared Tabor
639da5de59 Changes https flag to false for UI dev env 2018-04-06 13:28:24 -07:00
Jake McDermott
ac29e5d299 Merge pull request #1264 from mabashian/1059-job-results-resource-tooltips
Updated job results related resources tooltips
2018-04-06 16:07:37 -04:00
mabashian
0f07f4f956 Added generic error handling to promises in relaunch button component 2018-04-06 15:52:29 -04:00
Wayne Witzel III
a088621425 Merge pull request #1250 from wwitzel3/fix-1228
Update role hierarchy when a JobTemplate moves orgs.
2018-04-06 15:31:23 -04:00
Wayne Witzel III
99fb0fa4cd Extract update_role_parentage_for_instance 2018-04-06 15:19:41 -04:00
Alan Rominger
89f770c9ca Merge pull request #1270 from AlanCoding/user_editability
User editing permission changes (3.2.4 backport)
2018-04-06 14:19:50 -04:00
Alan Rominger
aa464fdcc8 Merge pull request #1267 from AlanCoding/ig_min_max
Add min/max to IG fields
2018-04-06 14:08:28 -04:00
Alan Rominger
5df957e223 Merge pull request #1269 from AlanCoding/no_more_jobs
Deprecate jobs creation via sublist
2018-04-06 14:08:10 -04:00
AlanCoding
1195385492 User editing permission changes
Only allow administrative action for a user
who is a system admin or auditor if the
the requesting-user is a system admin.

Previously a user could be edited if the
requesting-user was an admin of ANY of the
orgs the user was member of.
This is changed to require admin permission
to ALL orgs the user is member of.

As a special-case, allow org admins to add
a user as a member to their organization if
the following conditions are met:
- the user is not member of any other orgs
- the org admin has permissions to all of
  the roles the user has
2018-04-06 14:05:29 -04:00
Ryan Petrello
5560dc1da9 Merge pull request #1252 from ryanpetrello/celery-failure-handler
implement celery failure logging using CELERY_ANNOTATIONS
2018-04-06 13:40:34 -04:00
Wayne Witzel III
81fe778676 Collect roles and update parentage instead of saving JT 2018-04-06 13:35:24 -04:00
Alan Rominger
a38e6fc882 Merge pull request #1261 from AlanCoding/user_work_items
More User admin-ing: (2) superuser escalation fix (3) ANY->ALL (4) orphan adoption
2018-04-06 13:14:40 -04:00
AlanCoding
5a380b4437 deprecate jobs creation via sublist 2018-04-06 12:59:53 -04:00
AlanCoding
7dd4dd00b3 add min/max to IG fields 2018-04-06 12:37:11 -04:00
AlanCoding
12979260bb include new org roles in permissions fix 2018-04-06 12:03:43 -04:00
Chris Meyers
675920efb6 Merge pull request #1254 from chrismeyersfsu/fix-polymorphic_delete
update polymorphic delete workaround django 1.11
2018-04-06 11:28:16 -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
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
mabashian
5fb532c87b Updated job results related resources tooltips 2018-04-06 11:05:54 -04:00
Ryan Petrello
ac2ece5313 Merge pull request #1217 from rooftopcellist/json_parser
Json parser
2018-04-06 10:23:09 -04:00
mabashian
cb92f1794a Handle race condition where workflow job status might appear stuck in waiting if we miss the socket event indicating that it got moved to running 2018-04-06 10:15:24 -04:00
AlanCoding
a344ceda0e User editing permission changes
Only allow administrative action for a user
who is a system admin or auditor if the
the requesting-user is a system admin.

Previously a user could be edited if the
requesting-user was an admin of ANY of the
orgs the user was member of.
This is changed to require admin permission
to ALL orgs the user is member of.

As a special-case, allow org admins to add
a user as a member to their organization if
the following conditions are met:
- the user is not member of any other orgs
- the org admin has permissions to all of
  the roles the user has
2018-04-06 09:51:08 -04:00
adamscmRH
0f046338ac check ParseError fix 2018-04-06 08:47:54 -04:00
Jake McDermott
21b58e689a Merge pull request #1256 from wenottingham/typo-fix
Fix trivial UI typo
2018-04-05 20:15:11 -04:00
Paul Neumann
c407cb78b5 Fix trivial UI typo 2018-04-05 14:15:55 -04:00
Michael Abashian
d1b504e34d Merge pull request #1255 from mabashian/templates-forms-disabled
Fixed bug where job/workflow templates add forms were disabled
2018-04-05 14:13:30 -04:00
Bill Nottingham
538bf40f96 Merge pull request #1735 from paneu/devel
Fix trivial UI typo
2018-04-05 14:00:58 -04:00
mabashian
d9c9df73d2 Fixed unit test failure 2018-04-05 14:00:13 -04:00
mabashian
78893590d1 Fixed bug where job/workflow templates add forms were fully disabled for users with add access 2018-04-05 13:34:16 -04:00
Paul Neumann
c11c9abcaa Fix trivial UI typo 2018-04-05 19:32:31 +02:00
adamscmRH
881688dd77 fix authentication order 2018-04-05 12:04:07 -04:00
mabashian
2f746c9fd9 Complete removal of InitialPlaybookRun 2018-04-05 12:00:41 -04:00
Matthew Jones
62e2be9c4b Merge pull request #1722 from avantassel/devel
Added nginx_status to nginx.conf
2018-04-05 11:26:53 -04:00
Wayne Witzel III
0bd9919108 Make use of callback explicitly for Project and Inventory 2018-04-05 11:05:48 -04:00
Wayne Witzel III
3411389d00 Added JobTemplate ownership change test 2018-04-05 11:00:13 -04:00
Bill Nottingham
442c209899 Merge pull request #1251 from wenottingham/release_3.3.0
Set `raw=True` when reading passwords from ConfigParser files.
2018-04-05 10:46:12 -04:00
Bill Nottingham
17f8ec64ce Set raw=True when reading passwords from ConfigParser files.
Cherry-pick of https://github.com/ansible/ansible/pull/35582
2018-04-05 10:32:50 -04:00
Michael Abashian
e47570e323 Merge pull request #1243 from mabashian/1011-codemirror-syntax
Fixed codemirror syntax highlighting
2018-04-05 09:59:10 -04:00
Wayne Witzel III
524343870b Added Project & Inventory signals for JobTemplate RBAC 2018-04-05 09:46:03 -04:00
Ben Thomasson
bb596e8ce8 Merge pull request #1203 from benthomasson/release_3.3.0
Removes --fake-initial from awx-manage migrate.
2018-04-05 09:08:16 -04:00
Ben Thomasson
dfe35bd405 Merge pull request #1187 from benthomasson/networking-acceptance-ben
Adds acceptance doc for networking UI
2018-04-05 09:07:57 -04:00
Alan Rominger
ab277e816a Merge pull request #1242 from AlanCoding/copy_scripts
Remove shortcut for custom scripts copy
2018-04-05 08:45:15 -04:00
Alan Rominger
596523b2fa Merge pull request #1246 from AlanCoding/cred_total_int
Fix bug from new credential property
2018-04-05 08:23:03 -04:00
Alan Rominger
e5f93bdf95 Merge pull request #1245 from AlanCoding/orphaned_workflows
Fix WFJT user_capabilities special-case
2018-04-05 08:22:42 -04:00
Alan Rominger
1d26c2feb0 Merge pull request #1241 from AlanCoding/actually_validate_spec
check for existence and type of all spec items
2018-04-05 08:06:19 -04:00
AlanCoding
133cca1446 fix WFJT user_capabilities special-case 2018-04-05 08:04:18 -04:00
AlanCoding
50794452c8 fix bug from new credential property 2018-04-05 08:01:26 -04:00
Alan Rominger
16732e52f2 Merge pull request #1244 from AlanCoding/cancel_weirdness
avoid v1 cruft fields in JobCancelSerializer
2018-04-05 07:23:52 -04:00
Jake McDermott
dd0e7e2751 Merge pull request #1163 from ansible/job-results
job results / job event output
2018-04-05 03:12:29 -04:00
Jake McDermott
1362b444f2 move search tag test 2018-04-05 02:50:09 -04:00
Jake McDermott
cf68df41d5 remove unused code 2018-04-05 02:49:56 -04:00
Jake McDermott
01d9c8546e fix team, credential, and workflow copy regressions 2018-04-05 02:49:45 -04:00
Jake McDermott
939666f172 add polyfills for phantomjs 2018-04-05 02:49:42 -04:00
Jake McDermott
b44c7127f7 reactivate linter for dev server 2018-04-05 02:49:39 -04:00
Jared Tabor
fe58b74d1e Adds the host event modal to the standard out feature
Removes old host modal code
2018-04-05 02:49:38 -04:00
Jake McDermott
18dc0e9066 switch ordering of output panel actions 2018-04-05 02:49:35 -04:00
Jake McDermott
a7bcb491d7 disable search while searching 2018-04-05 02:49:32 -04:00
Jake McDermott
356defff09 remove unused lib code 2018-04-05 02:49:28 -04:00
Jake McDermott
379e2226fa rename search tag test 2018-04-05 02:49:24 -04:00
Jake McDermott
e4ad34fa14 update smoke test for new job results view 2018-04-05 02:49:20 -04:00
Jake McDermott
cf4b29c6d5 remove has-ansi dependency 2018-04-05 02:49:12 -04:00
Jake McDermott
95a37fab05 fix lint errors 2018-04-05 02:48:47 -04:00
Jake McDermott
a5e20117e3 move search into feature-level component 2018-04-05 02:48:23 -04:00
Jake McDermott
1f9b325f38 use status service in details and stats components 2018-04-05 02:47:54 -04:00
Jake McDermott
bdd36341ae add status service 2018-04-05 02:47:51 -04:00
Jake McDermott
6c8923d653 tighten up status transitions for relaunch 2018-04-05 02:47:47 -04:00
Jake McDermott
66dcf01088 add raw txt download 2018-04-05 02:47:44 -04:00
Jake McDermott
181d7e0e01 add delete and cancel 2018-04-05 02:47:41 -04:00
Jake McDermott
fc01af2298 hide dev utility 2018-04-05 02:47:37 -04:00
Jake McDermott
07186e1606 disable search when running 2018-04-05 02:47:34 -04:00
Jake McDermott
6b302ef167 job results link-in 2018-04-05 02:47:31 -04:00
Jake McDermott
a53f70f0af add inventory updates 2018-04-05 02:47:27 -04:00
Jake McDermott
8da2c3cad2 fix regression with opening credential edit/add 2018-04-05 02:47:24 -04:00
Jake McDermott
b10dc6d4ff wip - integrate adhoc and workflow 2018-04-05 02:47:20 -04:00
Jake McDermott
91e5659042 rename to engine service
The rename reflects the fact that this service is now driven by an external caller
after being initialized with hooks.
2018-04-05 02:47:15 -04:00
Jake McDermott
450eaeca96 add event processing for stats and host status components 2018-04-05 02:47:11 -04:00
Jake McDermott
faa33e0bec navigate to new job results view on relaunch 2018-04-05 02:47:08 -04:00
Jake McDermott
b577f50930 event processing for details panel and initial stats bar integration 2018-04-05 02:47:05 -04:00
Jake McDermott
f65d170cab initial details panel integration 2018-04-05 02:47:02 -04:00
gconsidine
a23e5e920f Add support for in progress jobs and omit expand
* Any event received by the stream service will start rendering
(instead of JOB_START events only)
* Expand/collapse only shown for static results
2018-04-05 02:46:59 -04:00
gconsidine
033314e4f6 Add fixes to results
- Handle out of order events by batching lines until all lines
  are present
  - In static mode, fetch pages of results until container is full
  and scroll bar appears (for scroll events related to pagination)
2018-04-05 02:46:59 -04:00
gconsidine
e3d42d8e1b Fix webpack-dev-server proxy to accommodate auth changes 2018-04-05 02:46:59 -04:00
gconsidine
81c85913ac Add encoding of html entities in stdout from the API 2018-04-05 02:46:58 -04:00
gconsidine
c9612b8c75 Fix (most) lint errors 2018-04-05 02:46:58 -04:00
gconsidine
57ea582898 Fix stream pause/resume transitions 2018-04-05 02:46:58 -04:00
gconsidine
189963ae83 Add independent stream service 2018-04-05 02:46:58 -04:00
Jake McDermott
7acc99cf15 initial search integration 2018-04-05 02:46:56 -04:00
Jake McDermott
13162ca33a move data transformation logic into a service so it can be reused 2018-04-05 02:46:53 -04:00
Jake McDermott
0adf671de4 refactor, lint, separate data transformation logic from display logic 2018-04-05 02:46:48 -04:00
Jake McDermott
c12173233b add initial test and sanity check for search tags 2018-04-05 02:46:43 -04:00
Jake McDermott
1cc7d5535e hacking together some basic bootstrapping for job results view - not yet an actual test 2018-04-05 02:46:32 -04:00
John Mitchell
a1b7d86981 remove the rest of templates list code and update organization tempaltes list to using new code 2018-04-04 17:01:05 -04:00
John Mitchell
e492043819 utilize new list on projects template list 2018-04-04 17:00:25 -04:00
John Mitchell
3f91cd72c3 Merge pull request #1231 from jlmitch5/licenseOnSettingsPage
add license route to settings page
2018-04-04 16:49:57 -04:00
John Mitchell
a0948b410e embed license panel within settings pane 2018-04-04 16:43:32 -04:00
AlanCoding
02b7424b29 check for existence and type of all spec items 2018-04-04 16:39:36 -04:00
AlanCoding
f0862cd413 avoid v1 cruft fields in JobCancelSerializer 2018-04-04 16:30:44 -04:00
Michael Abashian
0d9759102e Merge pull request #1232 from mabashian/889-firefox-event
Fixed event error in firefox when logging in
2018-04-04 16:13:53 -04:00
gconsidine
60a19246ae Add promise-based event processesing for consistency 2018-04-04 16:03:42 -04:00
gconsidine
3705169de0 Remove stream service from job index includes 2018-04-04 16:03:42 -04:00
gconsidine
0c09447f2d Refactor scroll handling into independent service 2018-04-04 16:03:42 -04:00
gconsidine
b16d9a89e3 Refactor page handling 2018-04-04 16:03:42 -04:00
gconsidine
df84f822f6 [WIP] Move page-related functionality into separate service 2018-04-04 16:03:42 -04:00
gconsidine
a5bd905f18 [WIP] Add event buffering on scroll/resume 2018-04-04 16:03:42 -04:00
gconsidine
60a43015e2 Update when scroll,stream flags are flipped 2018-04-04 16:03:42 -04:00
gconsidine
5c3cf83d08 Implement memory max (NodeList ejection) in real-time mode 2018-04-04 16:03:42 -04:00
gconsidine
d48f69317f Add scroll lock for real-time display 2018-04-04 16:03:42 -04:00
gconsidine
83897d43a7 Add websocket connection info for remaining job types 2018-04-04 16:03:42 -04:00
gconsidine
e143698484 Fix resource references in models 2018-04-04 16:03:42 -04:00
gconsidine
d6e7058947 Remove extraneous model import 2018-04-04 16:03:42 -04:00
gconsidine
3d02ef8209 Add basic (no optimization) real-time implementation 2018-04-04 16:03:42 -04:00
gconsidine
ad1764c7f2 Add ws subscription to job results 2018-04-04 16:03:42 -04:00
gconsidine
2eef166325 Remove git merge conflict artifacts 2018-04-04 16:03:42 -04:00
gconsidine
a6ee7b6aac Remove unused functionality from controller 2018-04-04 16:03:42 -04:00
gconsidine
2e07fee39f Add more robust stdout navigation 2018-04-04 16:03:42 -04:00
gconsidine
07ff25a241 Add generalized resource to job results view 2018-04-04 16:03:42 -04:00
gconsidine
41d3d29ae8 Fix project update model 2018-04-04 16:03:42 -04:00
gconsidine
52a6cca206 Add models for remaining event types 2018-04-04 16:03:42 -04:00
gconsidine
e5187e4ac8 Adjust pagination/scrolling 2018-04-04 16:03:42 -04:00
gconsidine
cc36ee6bed Add WIP prepend/previous on scroll 2018-04-04 16:03:42 -04:00
gconsidine
745e547e34 Add nested page cache 2018-04-04 16:03:42 -04:00
gconsidine
4b81d8d494 Add WIP implementation of pagination with cache 2018-04-04 16:03:42 -04:00
gconsidine
ab8651eab6 Add functions to calc number of rows in view 2018-04-04 16:03:42 -04:00
gconsidine
fa59f46f2b Update less variable names 2018-04-04 16:03:42 -04:00
gconsidine
c08538b8f0 Fix model pagination behavior, limit, and cache 2018-04-04 16:03:42 -04:00
gconsidine
5a75059c86 Add load on scroll and max results to base model 2018-04-04 16:03:42 -04:00
gconsidine
b88ad50a75 Update style of stdout container 2018-04-04 16:03:42 -04:00
gconsidine
3006caffe1 Update style to be inline with mockups 2018-04-04 16:03:42 -04:00
gconsidine
e26c977b36 Add partial implementation of model.next 2018-04-04 16:03:42 -04:00
gconsidine
81dac1d1b8 Update code/output components 2018-04-04 16:03:42 -04:00
gconsidine
a7f29aac3a Add component-based stdout for host modal 2018-04-04 16:03:42 -04:00
gconsidine
21e74fc5eb Add click to launch host event detail modal 2018-04-04 16:03:42 -04:00
gconsidine
56b6d7e85d Add scrollTo for top and bottom, add better expand/collapse 2018-04-04 16:03:42 -04:00
gconsidine
d914b70bb6 Add expand/collapse to parent events 2018-04-04 16:03:42 -04:00
gconsidine
dbf1fd2d4f Use event record with output template 2018-04-04 16:03:42 -04:00
gconsidine
6f7841a920 Add record object to maintain event meta info 2018-04-04 16:03:42 -04:00
gconsidine
0a66d1c3fc Add dynamic angular interaction after HTML insertion 2018-04-04 16:03:42 -04:00
gconsidine
aaec3474b0 Add support for params to BaseModel.extend 2018-04-04 16:03:42 -04:00
gconsidine
3096a58272 Update style to match latest mockup 2018-04-04 16:03:42 -04:00
gconsidine
5c10ce3082 Update job output styling 2018-04-04 16:03:42 -04:00
gconsidine
30c472c499 Add basic event output in sandbox 2018-04-04 16:03:42 -04:00
gconsidine
946f3b5c92 Add ansi parsing libs 2018-04-04 16:03:42 -04:00
gconsidine
0de5301c23 Fix eslint errors/warnings emitted to browser 2018-04-04 16:03:42 -04:00
gconsidine
5b8d2e7659 Add model and resolve block to sandbox view 2018-04-04 16:03:42 -04:00
gconsidine
212ab96a31 Add structure for sandboxed job results 2018-04-04 16:03:42 -04:00
Ryan Petrello
0554e62f70 Merge pull request #1227 from ryanpetrello/encrypt-oauth2-client-secret
automatically encrypt/decrypt main_oauth2application.client_secret
2018-04-04 16:00:30 -04:00
mabashian
7084fe9a6d Fixed codemirror syntax highlighting 2018-04-04 15:36:37 -04:00
Ryan Petrello
5f01d26224 automatically encrypt/decrypt main_oauth2application.client_secret
see: https://github.com/ansible/awx/issues/1416
2018-04-04 15:35:24 -04:00
Jared Tabor
0f5f2804a7 Reverts DeleteJob factory, fixes null provider to stdout pages
and removing unnecessary console.logs in app.js
2018-04-04 11:38:27 -07:00
AlanCoding
6e1e7d8426 remove shortcut for custom scripts copy 2018-04-04 14:35:28 -04:00
AlanCoding
e48fa5c7bf manual license updating 2018-04-04 13:09:42 -04:00
AlanCoding
a6e9ed97d2 add the licenses obtained algorithmically 2018-04-04 12:02:37 -04:00
AlanCoding
17c1ac4468 remove licenses for packes removed in 3.3 2018-04-04 10:59:54 -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
Christian Adams
2b7ad578d5 Merge pull request #1121 from rooftopcellist/organization_based_permission
Organization based permission
2018-04-04 10:39:40 -04:00
AlanCoding
c064195025 remove TOWER_HOST from job env vars 2018-04-04 10:32:41 -04:00
Alan Rominger
716a2a6b0f Merge pull request #1213 from AlanCoding/alan_does_jsonschema
custom message for JSONschema type error
2018-04-04 10:27:23 -04:00
adamscmRH
53139b109e clean up application logic 2018-04-04 10:22:49 -04:00
Ryan Petrello
808267d3fe Merge pull request #1234 from ryanpetrello/hey-hey-hey-goodbye
remove old crusty test fixtures
2018-04-04 09:48:09 -04:00
AlanCoding
996a5b20b0 unit tests of cred field types 2018-04-04 09:38:50 -04:00
Ryan Petrello
4b518298a6 remove old crusty test fixtures 2018-04-04 09:32:17 -04:00
Ryan Petrello
0359c4ed98 Merge pull request #1233 from ryanpetrello/fix-1215
more gracefully account for undefined stdout
2018-04-04 08:45:22 -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
Wayne Witzel III
6c7a7dbbc0 Merge pull request #1151 from wwitzel3/release_3.3.0
Fix issue with adding new RBAC fields
2018-04-04 08:03:52 -04:00
Ryan Petrello
856312e7ea Merge pull request #1226 from ryanpetrello/fix-1224
add more custom credential type env blacklist items
2018-04-04 08:03:02 -04:00
Wayne Witzel III
bab2745392 Refresh the old instance so the returned obj is up-to-date 2018-04-04 07:49:29 -04:00
Wayne Witzel III
5f888d8400 Fix issue with adding new RBAC fields 2018-04-04 07:48:21 -04:00
Alan Rominger
bf4251794a Merge pull request #1223 from AlanCoding/delete_user_role
Delete user role on deletion of a user
2018-04-04 07:04:04 -04:00
Jared Tabor
77d3d5f5cb Merge pull request #1725 from jaredevantabor/fix-1648
Increases the angular-tz-extension tag in package.json
2018-04-03 23:00:42 +00:00
Michael Abashian
bec66e05ff Merge pull request #1197 from mabashian/941-activity-stream-inv
Fixed regular inventory activity stream link
2018-04-03 18:40:05 -04:00
Jared Tabor
f70917df64 Increases the angular-tz-extension tag in package.json
The angular-tz-extensions was changed to accomodate for an issue with
UTC dates not getting parsed correctly.
2018-04-03 15:38:45 -07:00
mabashian
e8d80b5502 Fixed event error in firefox when logging in. Removed transition console logs. 2018-04-03 18:36:34 -04:00
Jared Tabor
96e5ed57e1 Merge pull request #1229 from jaredevantabor/scheduler-deps
Increases the angular-tz-extension tag in package.json
2018-04-03 21:52:31 +00:00
John Mitchell
4e6ce9af18 add license route to settings page 2018-04-03 17:36:46 -04:00
Jared Tabor
9f07beed59 Increases the angular-tz-extension tag in package.json
The angular-tz-extensions was changed to accomodate for an issue with
UTC dates not getting parsed correctly.
2018-04-03 21:27:38 +00:00
Ryan Petrello
95b5bac6e7 Merge pull request #1208 from ryanpetrello/fix-playbook-on-notify
properly support `v2_playbook_on_notify` in ansible 2.5+
2018-04-03 16:19:10 -04:00
Ryan Petrello
31a0eab880 add more custom credential type env blacklist items
see: https://github.com/ansible/tower/issues/1224
2018-04-03 15:44:44 -04:00
Alan Rominger
ac1bc08480 Merge pull request #1220 from AlanCoding/fix_check_related
fix bug where role name was given incorrectly
2018-04-03 15:12:23 -04:00
Chris Meyers
21e8661fae Merge pull request #1222 from chrismeyersfsu/fix-isolated_query
use non-deprecated way of setting many2many
2018-04-03 14:40:26 -04:00
AlanCoding
ee8416140a custom message for JSONschema type error 2018-04-03 14:38:30 -04:00
AlanCoding
a52b22ffdf delete user role on deletion of a user 2018-04-03 14:31:56 -04:00
chris meyers
88fbb6706f use non-deprecated way of setting many2many 2018-04-03 14:31:37 -04:00
Chris Meyers
9677a9841c Merge pull request #1221 from chrismeyersfsu/fix-isolated_query
fixed isolated instance query
2018-04-03 14:04:01 -04:00
Alan Rominger
59c30af19f Merge pull request #1219 from AlanCoding/dragon_vault_id
Prevent unicode errors in cred unique_hash
2018-04-03 14:01:51 -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
AlanCoding
8a7f00bdf7 fix bug where role name was given incorrectly 2018-04-03 13:39:16 -04:00
AlanCoding
9695031b27 prevent unicode errors in cred unique_hash 2018-04-03 13:34:21 -04:00
Andrew Van Tassel
84329fc735 Update nginx.conf (#1)
* Update nginx.conf

Added nginx_status, Sysdig is relentless...
2018-04-03 11:24:30 -06:00
Ryan Petrello
8e51f61afa Merge pull request #1195 from ryanpetrello/dont_log_task_args
only record task.args in the callback plugin if `DISPLAY_ARGS_TO_STDOUT`
2018-04-03 12:44:53 -04:00
Alan Rominger
275cc061f0 Merge pull request #1216 from AlanCoding/no_inv_no_callback
prohibit config callback with no inventory
2018-04-03 12:35:31 -04:00
adamscmRH
9ef1fce5e1 add tests & correct auditor permissions 2018-04-03 11:03:50 -04:00
AlanCoding
482c159ac6 prohibit config callback with no inventory 2018-04-03 10:56:35 -04:00
Ryan Petrello
5fd5c95a1d only record task.args in the callback plugin if DISPLAY_ARGS_TO_STDOUT
see: https://github.com/ansible/awx/issues/1633
2018-04-03 10:52:55 -04:00
Wayne Witzel III
f64587cd1c Merge pull request #1207 from wwitzel3/fix-32-1189
Back port of 3.3.0 fix
2018-04-03 09:29:38 -04:00
adamscmRH
e9a128138a add org-app endpoint & permissions 2018-04-03 08:58:53 -04:00
adamscmRH
a7625b8747 add organization to app model 2018-04-03 08:58:53 -04:00
Ryan Petrello
f8c40cc26f properly support v2_playbook_on_notify in ansible 2.5+
see: https://github.com/ansible/awx/issues/1705
see: https://github.com/ansible/tower/issues/1205
related: https://github.com/ansible/ansible/pull/32633
2018-04-03 08:53:13 -04:00
AlanCoding
fe04f69e89 update tests for org members seeing teams 2018-04-03 07:50:49 -04:00
AlanCoding
d2ec880cad allow org members to see teams in org 2018-04-03 07:41:06 -04:00
Jake McDermott
652bdf7875 Merge pull request #1210 from mabashian/1029-passwords-preview
Scrub passwords from extra vars preview on launch
2018-04-03 01:36:17 -04:00
mabashian
278a2091c2 Scrub passwords from extra vars preview on launch 2018-04-02 16:47:49 -04:00
Chris Meyers
654a1b3e09 Merge pull request #1201 from chrismeyersfsu/fix-provision_instance_list
append registered hostname to policy list
2018-04-02 16:39:20 -04:00
Chris Meyers
d2c9bd2f3b Merge pull request #1194 from chrismeyersfsu/fix-more_better_unicode_handling
better unicode handling
2018-04-02 16:31:21 -04:00
chris meyers
e5dcfda1fe append registered hostname to policy list
* The Instance Group list of instances was getting over-written with
every call to the register_instance management command.
* This changeset appends --hostnames to the Instance Group policy list.
2018-04-02 16:26:59 -04:00
Wayne Witzel III
c4635fa683 Merge pull request #1199 from wwitzel3/fix-1189
Fixes RBAC issue, ensures can admin of sub_obj when needed
2018-04-02 16:06:11 -04:00
Wayne Witzel III
b905aec1d4 Merge pull request #1199 from wwitzel3/fix-1189
Fixes RBAC issue, ensures can admin of sub_obj when needed
2018-04-02 16:03:00 -04:00
Wayne Witzel III
067ead35ac Extend test and fix to include the admin_role 2018-04-02 15:39:01 -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
John Mitchell
3f66379f9d Merge pull request #1122 from jlmitch5/addWorkflowToJobsList
add workflow job row item to jobs list
2018-04-02 14:36:16 -04:00
Michael Abashian
7526ac05bc Merge pull request #1196 from mabashian/1055-pending-running-icon
Added running indicator to smart status and sockets to template list
2018-04-02 14:25:09 -04:00
Soumik Ghosh
41c3e69450 Bind mount to custom certs to 2018-04-02 14:23:23 -04:00
John Mitchell
139cfbfc55 add workflow job row item to jobs list 2018-04-02 14:17:50 -04:00
Michael Abashian
d9cd205929 Merge pull request #1182 from mabashian/1082-relaunch-playbook-run
Fixed bug relaunching job on successful/failed hosts
2018-04-02 14:13:22 -04:00
Wayne Witzel III
ea7a0b2f58 Fixes RBAC issue, ensures can admin of sub_obj when needed 2018-04-02 14:10:14 -04:00
mabashian
d68679c559 Fixed regular inventory activity stream link 2018-04-02 13:57:44 -04:00
mabashian
1cf8e3cc20 Fixed linting errors 2018-04-02 13:48:07 -04:00
Michael Abashian
8ad9d07896 Merge pull request #1178 from mabashian/1161-templates-list-pagination
Fixed templates list pagination
2018-04-02 13:44:33 -04:00
Michael Abashian
5a881d4eb0 Merge pull request #1156 from mabashian/990-host-filter-remove-term
Fixed host filter tag removal
2018-04-02 13:41:18 -04:00
Michael Abashian
0d281dbe21 Merge pull request #1145 from mabashian/prompt-cleanup-v2
Complete removal of InitiatePlaybookRun
2018-04-02 13:40:51 -04:00
mabashian
6bd6cc7fbc Added running indicator to smart status. Added sockets back to templates list 2018-04-02 13:30:17 -04:00
AlanCoding
dd8acb70be add deletion protection to hosts 2018-04-02 13:21:22 -04:00
Alan Rominger
6a835b8a6b Merge pull request #1193 from AlanCoding/broken_no_launch
hide launch button for invalid JTs (using user_capabilities)
2018-04-02 13:08:53 -04:00
chris meyers
557637afcb better unicode handling 2018-04-02 12:05:16 -04:00
Chris Meyers
07aa99f949 Merge pull request #1192 from chrismeyersfsu/fix-stdout_handler_undefined
more gracefully account for undefined stdout
2018-04-02 11:58:07 -04:00
AlanCoding
d8f37e799b hide launch button for invalid JTs 2018-04-02 11:58:02 -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
47fa99d3ad Merge pull request #1154 from chrismeyersfsu/enhancement-tower_in_all_groups
add all instances to special tower instance group
2018-04-02 09:39:04 -04:00
Alan Rominger
2e1a2f0a95 Merge pull request #1184 from AlanCoding/validate_scope
Validate token scope
2018-04-02 09:36:12 -04:00
Alan Rominger
afd54a9ff9 Merge pull request #1174 from AlanCoding/cred_type_deets
Include credential type details (and more!) in activity stream
2018-04-02 08:03:33 -04:00
Jared Tabor
92dc450940 Adds acceptance doc for networking UI
* Adds gerkin feature file for networking visualization
* Adds implementation details to networking.md
2018-03-29 16:53:57 -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
AlanCoding
a4721dc9e7 validate token scope 2018-03-29 15:43:25 -04:00
mabashian
2ccbf5a817 Fixed bug relaunching job on successful/failed hosts 2018-03-29 15:09:31 -04:00
Alan Rominger
09801d6dab Merge pull request #1150 from AlanCoding/types_docs
Make example credential type work
2018-03-29 15:03:03 -04:00
AlanCoding
9244989a14 test for all models in ActivityStreamSerializer 2018-03-29 14:57:26 -04:00
Alan Rominger
b919c36994 Merge pull request #1166 from AlanCoding/role_mods
Exclude created/modified from RoleSerializer
2018-03-29 14:05:41 -04:00
mabashian
3f15966d9d Fixed templates list pagination 2018-03-29 13:54:22 -04:00
Marliana Lara
1f0889431c Merge pull request #1138 from marshmalien/fix/auth_ldap_group_type_params_field
Add ldap_group_type_params codemirror field to LDAP forms
2018-03-29 13:47:25 -04:00
Marliana Lara
372b2925d2 Merge pull request #1123 from marshmalien/fix/manage_org_auth
Warning banner when Org Admin doesn't have authorization
2018-03-29 13:38:37 -04:00
Marliana Lara
471248e66c Fix LDAP_GROUP_TYPE_PARAMS revert value 2018-03-29 13:33:17 -04:00
AlanCoding
0295351bf1 include credential type details in activity stream 2018-03-29 12:07:05 -04:00
Alan Rominger
f16ad97081 Merge pull request #1165 from AlanCoding/you_know_who_you_are
Prevent modified from showing up in activity stream
2018-03-29 12:00:36 -04:00
Alan Rominger
05a56b9b22 Merge pull request #1164 from AlanCoding/path_words
Add verbosity to local_path error
2018-03-29 11:58:39 -04:00
AlanCoding
86579775b2 field OPTIONS tip for filterability 2018-03-29 10:55:43 -04:00
Marliana Lara
5ffe0f40d2 Only show banner if user is an org admin without edit capabilities 2018-03-29 10:53:09 -04:00
AlanCoding
19c3e26cf2 exclude created/modified from RoleSerializer 2018-03-29 08:59:03 -04:00
Ryan Petrello
61d58b83a4 Merge pull request #1162 from ryanpetrello/release_3.2.4
properly filter disabled hosts on smart inventory composition
2018-03-29 08:51:20 -04:00
AlanCoding
48112f2c56 prevent modified from showing up in activity stream 2018-03-29 08:37:20 -04:00
AlanCoding
27e4630426 add verbosity to local_path error 2018-03-29 07:53:10 -04:00
Ryan Petrello
c1cc92afa0 properly filter disabled hosts on smart inventory composition
see: #1053
related: https://github.com/ansible/tower/pull/1155
2018-03-28 17:02:32 -04:00
Shane McDonald
3cb37b131b Merge pull request #1702 from shanemcd/postgresql-persistent-template
Customizable template for OpenShift PostgreSQL deployment
2018-03-28 16:37:02 -04:00
Chris Meyers
8c3b1c06d9 Merge pull request #1160 from chrismeyersfsu/fix-instance_running_jobs
fix api browser endpoint title
2018-03-28 16:31:00 -04:00
Shane McDonald
1ef7d73bc9 Customizable template for OpenShift PostgreSQL deployment
`oc new-app --template=postgresql-persistent` has been kind of a pain. It would attempt to create a Persistent Volume, but does not allow you to specify the storageClass.

This code assumes that a Persistent Volume is already available and will fail with a helpful error message if it is not.

Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-28 16:25:43 -04:00
chris meyers
bf6412ea06 fix api browser endpoint name
* Endpoint exposes all jobs associated with an Instance. This is what we
want. Align the endpoint description with this behavior by removing the
word running.
2018-03-28 16:24:19 -04:00
chris meyers
8438331563 make jobs_running more rich in OPTIONS
* Expose jobs_running as an IntegerField
2018-03-28 16:01:24 -04:00
Alan Rominger
c7ecbb7d2a Merge pull request #1157 from AlanCoding/no_access_token
Remove access_token from Activity Stream serializer
2018-03-28 15:56:12 -04:00
AlanCoding
33e2457721 remove access_token from ActStr serializer 2018-03-28 15:38:58 -04:00
Ryan Petrello
6e246c1782 Merge pull request #1155 from ryanpetrello/fix-1053
properly filter disabled hosts on smart inventory composition
2018-03-28 15:34:16 -04:00
mabashian
4e0b890a03 Fixed host filter tag removal 2018-03-28 15:27:12 -04:00
Ryan Petrello
23267bce38 properly filter disabled hosts on smart inventory composition
see: https://github.com/ansible/tower/issues/1053
2018-03-28 15:16:26 -04:00
AlanCoding
2a45f352bb make example cred type work 2018-03-28 14:40:38 -04:00
Alan Rominger
ae5d17d151 Merge pull request #1147 from AlanCoding/exclude_last_used
Exclude last_used from activity stream
2018-03-28 14:32:55 -04:00
Michael Abashian
9b3bb2a9b3 Merge branch 'release_3.3.0' into prompt-cleanup-v2 2018-03-28 13:07:10 -04:00
AlanCoding
98dc59765e exclude last_used from activity stream 2018-03-28 12:53:11 -04:00
Shane McDonald
84e3bcc031 Merge pull request #1701 from shanemcd/devel
Move rabbitmq_version out of inventory file
2018-03-28 12:47:43 -04:00
Shane McDonald
c8ea03e67b Move rabbitmq_version out of inventory file
Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-28 12:45:05 -04:00
Shane McDonald
c1e1bf32d0 Merge pull request #1699 from shanemcd/rabbitmq-3.7
Upgrade to RabbitMQ 3.7, remove need for etcd2
2018-03-28 12:14:54 -04:00
Jared Tabor
ed86828a6f Merge pull request #1691 from jaredevantabor/fix-1687
Reverts DeleteJob factory, fixes null provider to stdout pages
2018-03-28 08:54:31 -07:00
Shane McDonald
935dc8bca7 Upgrade to RabbitMQ 3.7, remove need for etcd2
Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-28 11:45:33 -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
Shane McDonald
3f685c42fe Merge pull request #1693 from shanemcd/consolidate-roles
Consolidate OpenShift and Kubernetes roles
2018-03-28 11:37:12 -04:00
Shane McDonald
98f5dc3fcc Consolidate OpenShift and Kubernetes roles
Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-28 11:36:08 -04:00
Marliana Lara
d5d80860e9 Merge pull request #1131 from marshmalien/fix/small_ui_improvements
UI Fix inventory list action buttons, upgrade screen, custom venv fields
2018-03-28 11:26:21 -04:00
Michael Abashian
81e85408eb Merge pull request #1120 from mabashian/1066-workflow-node-credentials
Fixed workflow node credential bug
2018-03-28 11:22:51 -04:00
mabashian
767991fc2b Complete removal of InitialPlaybookRun 2018-03-28 11:18:09 -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
fe0e873108 Merge pull request #1144 from chrismeyersfsu/fix-auto_reprovision
delay looking up settings SYSTEM_UUID
2018-03-28 10:32:24 -04:00
chris meyers
eef6f7ecb0 delay looking up settings SYSTEM_UUID 2018-03-28 09:54:51 -04:00
Chris Meyers
bc34a74b7e Merge pull request #1142 from chrismeyersfsu/fix-ldap_options_label
fix ldap group type params label
2018-03-28 09:15:39 -04:00
chris meyers
dc46a732bc fix ldap group type params label
* copy pasted ldap group type label and did no previously update. This
updates.
2018-03-28 09:12:06 -04:00
Wayne Witzel III
3936b5e7a3 Merge pull request #1690 from ryanpetrello/coc
add a link to the community code of conduct
2018-03-28 08:55:57 -04:00
Jared Tabor
f10281e9ef Reverts DeleteJob factory, fixes null provider to stdout pages
and removing unnecessary console.logs in app.js
2018-03-27 14:21:39 -07:00
Ryan Petrello
d9a0029ef7 add a link to the community code of conduct 2018-03-27 16:51:30 -04:00
Marliana Lara
492e74a345 Remove pending_deletion button bug from inventory list 2018-03-27 16:43:50 -04:00
Marliana Lara
9b30b02acb Hide Ansible Environment form fields when there are no custom venvs 2018-03-27 16:43:39 -04:00
Marliana Lara
25c8bf93ec Add AUTH_LDAP_GROUP_TYPE_PARAMS field to LDAP form 2018-03-27 16:06:26 -04:00
Chris Meyers
4740f90dc7 Merge pull request #1129 from chrismeyersfsu/enhancement-node_reregister
reregister node when they come back online
2018-03-27 15:24:58 -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
Ryan Petrello
96f85c4dd5 Merge pull request #1689 from ryanpetrello/security-issue-template
more issue template updates
2018-03-27 11:47:12 -04:00
Ryan Petrello
14886af969 more issue template updates 2018-03-27 11:44:25 -04:00
Ryan Petrello
4ea97c0f86 Merge pull request #1688 from ryanpetrello/security-issue-template
add instructions for responsible disclosure of security issues
2018-03-27 11:42:13 -04:00
Marliana Lara
4fab94d2ce Add warning banner when Org Admin doesn't have manage auth 2018-03-27 11:41:16 -04:00
Ryan Petrello
e6d4aead65 add instructions for responsible disclosure of security issues 2018-03-27 11:38:22 -04:00
mabashian
d744679d22 Fixed bug where the machine credential was being stripped from a workflow node if the edge type was changed. 2018-03-27 11:21:24 -04:00
Shane McDonald
7002c6f1b1 Delete unused namespace file
Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-27 10:57:22 -04:00
Shane McDonald
3072c3bd8d Whitespace fix
Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-27 10:57:22 -04:00
Matthew Jones
3a3c883504 Merge pull request #1115 from ryanpetrello/newer-dateutil
remove an RRULE parsing bug fix that landed upstream in python-dateutil
2018-03-26 20:36:10 -07:00
Ryan Petrello
21d629531f remove an RRULE parsing bug fix that landed upstream in python-dateutil
related: a2a246a834
2018-03-26 18:02:52 -04:00
Ryan Petrello
f3bf9bc34f Merge pull request #1114 from ryanpetrello/newer-dateutil
update to a newer python-dateutil with more bug fixes we were vendoring
2018-03-26 17:21:45 -04:00
Ryan Petrello
a2a246a834 update to a newer python-dateutil with more bug fixes we were vendoring
related: dateutil/dateutil#649
2018-03-26 17:12:01 -04:00
Matthew Jones
9637058406 Merge pull request #1512 from chrismeyersfsu/feature-new_ldap_group_type
add ldap group type like posixGroupType
2018-03-26 12:29:01 -07:00
Matthew Jones
d6203b521f Merge pull request #1679 from mabashian/workflow-node-start-bug
Fixed js error when adding first workflow node
2018-03-26 12:20:38 -07:00
Matthew Jones
d685815478 Merge pull request #1607 from AlanCoding/tower_verify_field
Sync tower verify_ssl parameter with tower-cli
2018-03-26 12:12:45 -07:00
Matthew Jones
71d2a4b4cf Merge pull request #1610 from AlanCoding/group_related
Include related Jobs in group deletion protection
2018-03-26 12:09:45 -07:00
mabashian
6c321f810a Tweaked isRoot logic to follow the same pattern as the rest of the function 2018-03-26 15:00:33 -04:00
mabashian
2c1fe14206 Fixed js error when adding first workflow node 2018-03-26 14:55:01 -04:00
Alan Rominger
3411721a2c Merge pull request #1676 from AlanCoding/unused_settings
Removed unused settings (replaced by source_vars)
2018-03-26 14:16:42 -04:00
AlanCoding
9db0fdfc0b sync tower verify_ssl parameter with tower-cli
Add new input for the tower type credential
elsewhere, tests are being added for verify_ssl in modules
tower-cli also updating to use the original tower.py var
2018-03-26 13:42:52 -04:00
Chris Meyers
09babbe862 Merge pull request #1677 from chrismeyersfsu/fix-traceback_msg
call celery method with celery context
2018-03-26 13:03:32 -04:00
John Mitchell
b1cd7dbd2f Merge pull request #1678 from jlmitch5/removeTowerLicenseDir
remove tower-license dir
2018-03-26 12:17:58 -04:00
John Mitchell
02a97a2ec2 update .gitignore to include root tower-license dir 2018-03-26 12:13:00 -04:00
Alan Rominger
e38955e1fa Merge pull request #1670 from AlanCoding/no_credential
Inventory source can_change - remove credential check
2018-03-26 12:06:57 -04:00
John Mitchell
012e644b9f remove tower-license dir 2018-03-26 12:03:40 -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
7842b67bea Merge pull request #1104 from ryanpetrello/fix-1101
properly sanitize module arguments with no_log (like uri:password)
2018-03-26 11:57:28 -04:00
chris meyers
b9b8502738 introspect ldap group types for param validation
* Instead of keeping a hard-coded mapping of valid args for each ldap
group type; introspect the subclass to determine valid/invalid fields
2018-03-26 11:40:49 -04:00
Alan Rominger
4c2cff7a63 Merge pull request #1666 from AlanCoding/fix_workflow_vars_again
Ignore workflow survey passwords when not applicable
2018-03-26 11:17:32 -04:00
Alan Rominger
fe6755eca8 Merge pull request #1659 from AlanCoding/relaunch_creds
New credential passwords system on relaunch
2018-03-26 11:16:03 -04:00
Matthew Jones
bddb288ac1 Merge pull request #1352 from ansible/network_ui_3_3
Graphical UI for Network Inventory
2018-03-26 08:11:21 -07:00
John Mitchell
ac70945071 Merge pull request #1657 from jlmitch5/jobsNewListUi
implement new style jobs list in ui
2018-03-26 11:07:56 -04:00
Michael Abashian
e486b16706 Merge pull request #1662 from mabashian/1555-permissions-checkboxes
Fixed permissions multi-select deselect bug
2018-03-26 10:30:42 -04:00
Michael Abashian
b1e959bdaa Merge pull request #1671 from mabashian/t-1099-workflow-nodes
Fixed several workflow node bugs
2018-03-26 10:30:23 -04:00
AlanCoding
d91ce03652 removed unused settings (replaced by source_vars) 2018-03-26 10:19:17 -04:00
John Mitchell
01982e7eab utilize transation for instance groups jobs sub panels titles
and fix a few linting errors
2018-03-26 10:07:47 -04:00
AlanCoding
894eeee979 inventory source can_change rm credential check 2018-03-26 09:45:45 -04:00
Matthew Jones
f5252d9147 Merge pull request #1624 from theblazehen/devel
Add Rocket.Chat notification type
2018-03-26 06:41:48 -07:00
Jeandre Le Roux
c25d8a5d34 Fix rocket.chat notification test flake8
Signed-off-by: Jeandre Le Roux <theblazehen@theblazehen.com>
2018-03-26 15:13:33 +02:00
Christian Adams
8646aa8c34 Merge pull request #1673 from HNKNTA/devel
Fixed parentless function
2018-03-26 09:06:18 -04:00
HNKNTA
7ddbc49568 Fixed parentless function
Signed-off-by: HNKNTA <hnknta@gmail.com>
2018-03-25 18:33:46 +03:00
Jared Tabor
7979bc93fb Merge pull request #1105 from jaredevantabor/background-tabs
Fixes issue with sockets and XHR requests for backgrounded tabs
2018-03-23 16:18:25 -07:00
Jared Tabor
df60876bf3 Adds a debug function to turn on $log.debug 2018-03-23 16:17:24 -07:00
Ben Thomasson
cafc62bd20 Renames Persistence to NetworkingEvents and removes the persistance channel 2018-03-23 15:46:51 -07:00
John Mitchell
f3329c8cce fix instance groups sub jobs lists 2018-03-23 17:00:41 -04:00
Ben Thomasson
38eb2691a8 Updates models based on PR feedback from matburt et al.
* Moves topology_data to views
* Changes id to cid
* Changes pk to id
* Changes host_id and inventory_id to ForeignKeys
* Resets migrations for network_ui
* Cleans up old files
2018-03-23 17:00:29 -04:00
Jared Tabor
883545d4cb Fixes some bugs from PR feedback
* Fixes bug where new devices on the canvas weren't added to the search dropdown
* Fixes bug with closing the details panel
* Changes the fill color to white for remote-selected devices
* Fixes read-only mode by swapping out move controller for move read-only
* Updates range on the zoom widget
2018-03-23 17:00:28 -04:00
Ben Thomasson
8086906a43 Improves pagination unrolling based on jmcdermott's feedback
* Fixes pagination and fsm-diff
* Removes unused Array.extend
2018-03-23 17:00:28 -04:00
Jared Tabor
82ec0d4d4b Disables actions according to RBAC privilege
* Removes the toolbox if user doesn't have permission to edit
* Fixes the extra click that was identified with the context menu
* Adds new readonly version of the move FSM
* Adds an enhancement to debug directive to align the text better
* Disables the toolbox FSM if user doesn't have permission to edit
2018-03-23 17:00:27 -04:00
Ben Thomasson
96b3ebd31e Moves network_ui_test to an external repo 2018-03-23 17:00:27 -04:00
Jared Tabor
abb95fdad6 Cleans up the Network UI after PR feedback and UX feedback
-removes stale commented-out lines
-makes "unknown" type devices smaller on canvas
-moves "unknown" type device title underneath icon
-removes collapsed inventory toolbox
-changes "Delete" to "Remove"
-removes the "Close" button for "Cancel" on details panel
-changing Remove color to red
2018-03-23 17:00:27 -04:00
Ben Thomasson
0e32644a27 Check for missing environ in request 2018-03-23 17:00:27 -04:00
Ben Thomasson
174d0e610f Fixes double import of instanceGroups app 2018-03-23 17:00:26 -04:00
Ben Thomasson
297816b110 Adds CONTRIBUTING docs 2018-03-23 17:00:26 -04:00
Ben Thomasson
f8992e0edf Makes changes suggested by wwitzel3's review 2018-03-23 17:00:26 -04:00
Ben Thomasson
bcf8f0bd42 Resetting migrations for network_ui 2018-03-23 17:00:25 -04:00
Ben Thomasson
b9d4fc2bb9 Adds creating links from host vars from inventory
* Adds creating links from host vars
* Returns devices to the toolbox after they are removed from the canvas
2018-03-23 17:00:25 -04:00
Jared Tabor
66c351c60c Cleans up network UI code for 3.3
This removes features that were not selected for 3.3.

* Removes breadcrumb
* Removes "Jump To" panel and some of the hotkey panel items
* Removes Buttons in favor of Action Dropdown
* Removes chevrons
* Removes ActionIcon model
* Removes the Rename button on the context menu
* Makes details panel readonly
* Adds expand modal for extra vars
* Adds inventory copy function back to inventory list
* Sets cursor to visible
* Adds hide_menus
* Adds fix for mice that return large mousewheel deltas
2018-03-23 17:00:25 -04:00
Ben Thomasson
766bee3753 Refactors network_ui_test out of network_ui
* Separates test messages from application messages
* Removes test runner and groups, processes, and streams from network_ui
* Adds network_ui_test
* Fixes routing for network_ui_test
* Removes coverage_report tool from network_ui
* Fixes network_ui_test test workflow
* Sets width and height of the page during tests
2018-03-23 17:00:25 -04:00
Ben Thomasson
b29a605800 Cleans up feature set for 3.3
This removes the experimental features that were not selected
for 3.3 release.

* Removes dpath requirement
* Removes generated action_plugins
* Removes network UI v1 api
* Removes unused network management commands
* Removes network UI CLI client
* Removes templates
* Removes unused DataBinding models
* Removes obsolete test
* Removes unused admin and tests
* Removes experimental UndoPersistence, RedoPersistence, and auto-layout functions
* Removes API endpoints for network visualization
* Removes unused consumer routes
* Removes group, site, and rack features for 3.3
* Removes unused tables controller
* Removes undo/redo
* Removes group code and scale checks
2018-03-23 17:00:24 -04:00
Ben Thomasson
8d28748451 Updates UI CONTRIBUTING for 3.3
* Fixes links in CONTRIBUTING.md
* Moves CONTRIBUTING and UI design files to ui/client/src/network-ui
* Adds README.md for network_ui/designs
* Updates design
2018-03-23 17:00:24 -04:00
Ben Thomasson
f8d83638b0 Adds inventory tracking and templating to network UI groups and hosts.
* Adds group_id to Group table
* Adds inventory_group_id to Group table
* Adds creation of inventory hosts and groups from the network UI
* Changes network UI variables to be under awx key
* Fixes variables initial value
* Adds group membership association/disassociation
* Removes items from the inventory toolbar when loaded by a snaphot
* Adds nunjucks dependency to package.json
* Adds templating to hosts
* Adds templating for racks
* Adds site templating
* Adds group associations for sites
* Squashes migrations for network_ui
* Flake8 migrations
* Changes reserved field type to device_type, group_type, and process_type
* Allows blank values for all CharFields in network_ui models
* Changes reserved field type to device_type, group_type, and process_type
2018-03-23 17:00:23 -04:00
Ben Thomasson
b7848ab4f6 Adds breadcrumb to network UI
* Adds functionality for breadcrumb
* Changes the site icon to stay the same size
2018-03-23 17:00:23 -04:00
Ben Thomasson
a222fb5ebd Updates pipeline and FSM design and development tools
* Updates pipeline and FSM design for 3.4 features:
    group and read/write design features.
* Adds tool to copy layout from existing design
* Adds pipeline design
2018-03-23 17:00:23 -04:00
Jared Tabor
14ee6a8360 Adds editing to the host details form.
* Adds editing host vars, description, and name to the host details
form.
* Adds details panel FSM and updates to keybindings FSM
2018-03-23 17:00:22 -04:00
Ben Thomasson
6f3bf4fd1b Adds search field and jump-to a device UI.
Adds a search field in the network UI and a jump-to level menu. This
allows users to quickly find a device on the canvas or jump to a
certain mode/zoom-level.

Adds animation to smooth out the transition from the current viewport
to a viewport centered on the searched for device or zoom-level.

* Adds animation FSM and changes the 0 hot key to use it
* Adds jump to animation
* Adds search bar type ahead
* Adds jump animation to search and jump-to menus
* Adds keybinding FSM
* Updates the dropdown when devices are added/edit/removed
* Highlights the searched for host
2018-03-23 17:00:22 -04:00
Ben Thomasson
00a9283e32 Adds an API for network UI, action plugins, and API client
* Adds a simple DRF API for network-ui
* Moves network_ui api to v1_api
* Uses BaseSerializer for networking v1 api
* Adds v2 of the network API
* Uses standard AWX base classes for the network UI API
* Adds canvas prefix to network UI api URL names
* Adds ansible action plugins for automating network UI workflows
* Adds python client for the networking visualization API
2018-03-23 17:00:22 -04:00
Ben Thomasson
2736aecfb2 Adds context menus for group, racks, and sites
* Adds context menu for a rack, and adding more error handling for
    items that don't exist in Tower
* Adds context menu for sites
* Adds handler for showing details for links and interfaces
* Fixes the removed "watchCollection" in order to update details panel
* Removes the context menu when changing the scale of the canvas
* Adds delete context menu button, as well as refactoring the delete
    functionality to the network.ui.controller.js
* Updates delete functionality to delete nested groups/devices
    if the current_scale is set to site or rack icons
* Adds context menu to a group
* Hides rack/site title in top left of group, as well as centering
    labels on all icons
* Moves the context menu off screen when disabling it
* Adds unique name to hosts, routers, switches, and groups
* Makes the names of host/switch/router/group SVG elements so they update when
    the user updates the name of the SVG element
* Removing svg buttons and adding new html toolbar
* Adds panel for Jump To feature, along with basic functionality
* Adds Key dropdown for hotkeys and adding browser refresh hotkey
* Adds breadcrumb bar and making adjustments after feedback with UX
* Rearrages panels and adding some resize logic
* Fixes z-index of key-panel  and jump-to panel
* Adds white background to text underneath icons
* Makes all icons blue
* Changes sizes and colors of icons. Also made icon text background white
* Adjusts sizes of rack and site icons within group boundary
2018-03-23 17:00:21 -04:00
Ben Thomasson
7f0b23c357 Removes early experiments from network UI.
* Removing unused widgets app
* Removes dead code for rack from move
* Removes experimental touch support
* Removes unused Group corners function
* Removes experimental tables app
* Removes stencil and layers
* Removes status light and task status
* Removes configuration
* Removes unused PasteGroup message and handler
* Removes unused inventory clip path partial
* Removes old recordings
* Removes unused table messages
* Removes unused Task and Configuration models
2018-03-23 17:00:21 -04:00
Ben Thomasson
bf7f4ee1e1 Adds network UI test framework
This adds a test framework to drive UI tests from the client
instead of injecting events from the websocket.  Tests consist
of a pair of snapshots (before and after the test) and
a list of UI events to process.  Tests are run using a FSM
in the client that controls the resetting of state to the snapshot,
injecting the events into the UI, recording test coverage,
and reporting tests to the server.

* Adds design for event trace table
* Adds design for a coverage tracking table
* Adds models for EventTrace and Coverage
* Adds trace_id to recording messages
* Adds design for TopologySnapshot table
* Adds order to TopologySnapshot table
* Adds TopologySnapshot table
* Adds Snapshot message when recordings are started and stoppped
* Adds models for tracking test cases and test results
* Adds designs for a test runner FSM
* Updates test management commands with new schema
* Adds download recording button
* Adds models to track tests
* Adds ui test runner
* Adds id and client to TestResult design
* Adds id and client to TestResult
* Update message types
* Stores test results and code coverage from the test runner
* Adds tool to generate a test coverage report
* Adds APIs for tests and code coverage
* Adds per-test-case coverage reports
* Breaks out coverage for loading the modules from the tests
* Re-raises server-side errors
* Captures errors during tests
* Adds defaults for host name and host type
* Disables test FSM trace storage
* Adds support for sending server error message to the client
* Resets the UI flags, history, and toolbox contents between tests
* Adds istanbul instrumentation to network-ui
2018-03-23 17:00:21 -04:00
Ben Thomasson
eeaf7c257c Fixes #945 by removing the network_ui plugin 2018-03-23 17:00:20 -04:00
Jared Tabor
050f43e3bf Improves host details panel UI
* Hooks up the first two context menu buttons
* Makes the rename and details menu show up
    wherever the user's cursor's location
* Adds TopologyInventory and DeviceHost tables
* Adds design for host_id on the Device table
* Adds migrations for TopologyInventory
* Adds host_id to Device table
* Adds inventory_id and host_id tracking
* Auto-closes the right hand panel if focus is directed to the canvas.
* Retrieves the host details on inventory load.
* Adds back support for inventory and host_id tracking
* Adds host icon
* Changes rack icon to new icon
* Site icon replacement
* Fixes host icon "hitbox", and adding debug and construction
* Adds construction and debug lines for switch, router, rack, and site
* Adds some error handling for REST calls, as well as alert on
    host detail panel.
2018-03-23 17:00:20 -04:00
Ben Thomasson
1c1844d889 Reorganizes the network-ui code under awx/client/src/network-ui
* Moves network UI source to awx/client/src/network-ui
* Moves network ui partials to awx/ui/client/network-ui
* Renames widgets with suffix partial.svg
* Updates directives to use bundled partials
* Uses ~network-ui for loading UI component
2018-03-23 17:00:20 -04:00
Ben Thomasson
f6eecad25e Adds explicit channels between FSMs to add in tracing message flows.
* Adds channels between FSMs
* Adds FSMTrace model
* Adds FSMTrace storage and download

Channels between FSMs make the processing pipeline delegation explicit
and allow for better instrumentation to trace the state of the entire
pipeline including FSM state transitions and message flow through
the pipeline.  This feature is not turned on by default and is
only necessary for debugging or certain kinds of testing.
2018-03-23 17:00:19 -04:00
Jared Tabor
a1f639bc8f Adds host detail panel UI and improves toolbox UI
* Changes Layers' panel's default setting to not expanded
* Adds OffScreen2 state to handle the case where a toolbox is both offscreen and disabled
* Adds a collapsed view of the toolbox, as well as a model for ActionIcons
    which is a model whose purpose is to connect the button FSM with the
    chevron icons that are used on the toolbox.
* Adds action-icon directive
* Enables/disables the icons if they're not shown
* Fixes initial state of the toolboxes
* Creates context menu and context menu buttons in the network UI
* Adds extra vars to details panel on left hand side
2018-03-23 17:00:19 -04:00
Ben Thomasson
519983308a Adds content to CONTRIBUTING.md
* Adds SVG intro to CONTRIBUTING.md
* Add FSM intro
* Add rendered images of the FSM designs
* Adding example
* Adding links
* Adds details about the FSM design workflows
* Adds FSM state docs
* Adds event handler docs
* Adds details about FSMController
* Adds example of making an FSMController
* Adds details about messages, models, and message passing
* Adds models and messages to CONTRIBUTING.md
* Adds example to widget development
* Adds detail to the widget development example
* Add message type definitions
2018-03-23 17:00:19 -04:00
Ben Thomasson
809eafe9a9 Adds devserver support
* Adds support for webpack devserver
* Enable istanbul on network UI
* Enable capture and replay tests on the network ui
* Normalize mouse wheel events
* Fix missing trailing slash on hosts API
* Add Export YAML button
2018-03-23 17:00:18 -04:00
Ben Thomasson
2713ec2dd5 Adds Red Hat copyright notice 2018-03-23 17:00:18 -04:00
Jared Tabor
2a8ced5a5d Adds network UI shell wrapper
* Adds networking icons, state, and shell
* Adds network UI to the network UI shell.
* Removes jquery as a dependency of network-ui
* Fills the entire viewport with the network canvas and
    makes header panel and the right panel overlay on
    top of it
2018-03-23 17:00:18 -04:00
Ben Thomasson
09d461b1d0 Improves FSM design and adds tools to diff design and implementation.
* Resolves conflicts between designs and implementation
* Adding fsm_diff to network_ui/tools
* Add extract.js for FSM toolchain to network_ui
2018-03-23 17:00:17 -04:00
Ben Thomasson
56991552d2 Adds task status on the device
* Show task status on device for now

This shows the status of the last few tasks run on a device as a
green/red circle on the device icon.  This data live updates
from data emitted over the websocket.
2018-03-23 17:00:17 -04:00
Ben Thomasson
3f84ef69eb Adds facts processing for ansible_net_neighbors
* Adds logic for consuming ansible_net_neighbors facts

This consumes facts emitted from Ansible over a websocket to
Tower.  This allows consumers in network to process the facts and
emit messges to the network UI.  This requires a special callback
plugin to run in Tower to emit the messages into the websocket using
the python websocket-client library.
2018-03-23 17:00:17 -04:00
Ben Thomasson
6f1000cd94 Adds toolbox to network UI
* Calls API to get inventory
* Adds CopySite message
* Adds Toolbox and ToolboxItem model design
* Add Toolbox and ToolboxItem tables
* Sends toolbox items to client from server on connect
2018-03-23 17:00:17 -04:00
Ben Thomasson
c79ef60d8b Adds streams and processes for application design
Adds application level streams and process widgets to
model applications that run on networking devices or hosts.

* Changes Application to Process
* Adds StreamCreate and ProcessCreate messages
* Adds process id sequence to device
* Add serializers for streams and processes
2018-03-23 17:00:16 -04:00
Ben Thomasson
d153d5f907 Adds a type field to group to support racks and sites
* Add type support to Group
2018-03-23 17:00:16 -04:00
Ben Thomasson
9dc4e22fe6 Adds support for multiple view modes
Adds mulitple view modes based on zoom-level.  This allows for easy
drilling into a device for more detail or zooming-out for a overview.

* Adds support for multi-site and device modes
* Adds icons to remote device in device detail
* Adds site widget
* Adds link between sites
* Adds toolboxes for inventory, site, and applications
* Adds rack mode
* Adds UI for adding processes to devices
* Adds copy and paste support
* Adds streams
2018-03-23 17:00:16 -04:00
Ben Thomasson
8fb54efa8e Adds a tabular view of the topology data
The traditional network engineer workflow includes a diagram, a
spreadsheet, and the CLI.  This adds an experimental view of the
network topology data in a spreadsheet like table view.

* Adds angular-xeditable dependency for tables view.
* Add data binding models
* Add message transformations from table to topology formats
* Adding dependencies for tables view
2018-03-23 17:00:15 -04:00
Ben Thomasson
d0e402c39a Begins network-ui prototype integration into Tower UI.
* Moves network ui into a directive
* Adds awxNet prefix to network ui directives
* Adds a module to integrate the stand alone network UI with
    Tower UI.
* Adds reconnectingwebsocket to webpack bundle
* Adds configuration for webpack
* Moves ngTouch and hamsterjs to webpack vendor bundle
* Moves angular to network UI vendor bundle
* Adds ui-router dependency
* Changes CSS to BEM style
* Adds unique id sequences for devices and links on Topology and interfaces on Device
* Adds group widget with move, resize, delete, and edit label support
2018-03-23 17:00:15 -04:00
Ben Thomasson
640e687f3e Adds JSON and YAML export of the network topology.
Adds views that export the entire network topology as JSON and YAML.
2018-03-23 17:00:15 -04:00
Ben Thomasson
257cf6a7d7 Adds callback plugin for network_ui
The callback plugin for the network UI adds real-time
event streaming to the canvas from Ansible events.
2018-03-23 17:00:14 -04:00
Ben Thomasson
701150bd1a Adds configuration for the network-ui websocket
* Configures NGINX for the network-ui websocket.
* Configures supervisor.conf for network_ui websocket.
2018-03-23 17:00:14 -04:00
Ben Thomasson
48d801271c Imports prototype from ansible-network-ui
The ansible-network-ui prototype project builds a standalone Network UI
outside of Tower as its own Django application. The original prototype
code is located here:
https://github.com/benthomasson/ansible-network-ui.

The prototype provides a virtual canvas that supports placing
networking devices onto 2D plane and connecting those devices together
with connections called links.  The point where the link connects
to the network device is called an interface.  The devices, interfaces,
and links may all have their respective names.  This models physical
networking devices is a simple fashion.

The prototype implements a pannable and zoomable 2D canvas in using SVG
elements and AngularJS directives.   This is done by adding event
listeners for mouse and keyboard events to an SVG element that fills the
entire browser window.

Mouse and keyboard events are handled in a processing pipeline where
the processing units are implemented as finite state machines that
provide deterministic behavior to the UI.

The finite state machines are built in a visual way that makes
the states and transitions clearly evident.  The visual tool for
building FSM is located here:
https://github.com/benthomasson/fsm-designer-svg.   This tool
is a fork of this project where the canvas is the same.  The elements
on the page are FSM states and the directional connections are called
transitions.   The bootstrapping of the FSM designer tool and
network-ui happen in parallel.  It was useful to try experiemental
code in FSM designer and then import it into network-ui.

The FSM designer tool provides a YAML description of the design
which can be used to generate skeleton code and check the implementation
against the design for discrepancies.

Events supported:

* Mouse click
* Mouse scroll-wheel
* Keyboard events
* Touch events

Interactions supported:

* Pan canvas by clicking-and-dragging on the background
* Zooming canvas by scrolling mousewheel
* Adding devices and links by using hotkeys
* Selecting devices, interaces, and links by clicking on their icon
* Editing labels on devices, interfaces, and links by double-clicking on
  their icon
* Moving devices around the canvas by clicking-and-dragging on their
  icon

Device types supported:

* router
* switch
* host
* racks

The database schema for the prototype is also developed with a visual
tool that makes the relationships in the snowflake schema for the models
quickly evident.  This tool makes it very easy to build queries across
multiple tables using Django's query builder.

See: https://github.com/benthomasson/db-designer-svg

The client and the server communicate asynchronously over a websocket.
This allows the UI to be very responsive to user interaction since
the full request/response cycle is not needed for every user
interaction.

The server provides persistence of the UI state in the database
using event handlers for events generated in the UI.  The UI
processes mouse and keyboard events, updates the UI, and
generates new types of events that are then sent to the server
to be persisted in the database.

UI elements are tracked by unique ids generated on the client
when an element is first created.  This allows the elements to
be correctly tracked before they are stored in the database.

The history of the UI is stored in the TopologyHistory model
which is useful for tracking which client made which change
and is useful for implementing undo/redo.

Each message is given a unique id per client and has
a known message type.  Message types are pre-populated
in the MessageType model using a database migration.

A History message containing all the change messages for a topology is
sent when the websocket is connected.  This allows for undo/redo work
across sessions.

This prototype provides a server-side test runner for driving
tests in the user interface.  Events are emitted on the server
to drive the UI.  Test code coverage is measured using the
istanbul library which produces instrumented client code.
Code coverage for the server is is measured by the coverage library.

The test code coverage for the Python code is 100%.
2018-03-23 17:00:14 -04:00
mabashian
348de30a17 Fixed several workflow node bugs 2018-03-23 15:50:34 -04:00
chris meyers
cb7e17885f remove uneeded auth ldap settings
* I had thought that setting the settings was required. But carefully
selected defaults for the settings is the correct way to deal with
errors I was seeing early in developing this feature.
2018-03-23 15:41:08 -04:00
Jared Tabor
8643972064 Fixes issue with sockets and XHR requests for backgrounded tabs
adjusts toggling based on API setting and doesn't toggle for job stdout page
2018-03-23 12:40:34 -07:00
AlanCoding
f6e507ad12 add API setting for UI live updates
include context data

update help text
2018-03-23 12:40:31 -07:00
John Mitchell
babad0b868 move all jobs views to using new view 2018-03-23 14:53:20 -04:00
AlanCoding
7ea9575e78 ignore workflow survey passwords when not applicable 2018-03-23 13:01:45 -04:00
AlanCoding
5fe63894d5 new credential passwords system on relaunch 2018-03-23 12:44:52 -04:00
Shane McDonald
1595947ae2 Merge pull request #1663 from jakemcdermott/fix-docker-installer-paths
update reference to role file path to work with installer roles dir
2018-03-23 12:43:54 -04:00
Jake McDermott
4a8f24becc update reference to role file path to work with roles dir 2018-03-23 12:43:13 -04:00
Ryan Petrello
35e38760aa properly sanitize module arguments with no_log (like uri:password)
this will _not_ sanitize playbooks that have secrets hard-coded *in* the
playbook - for that, people will need to use Vault or a variable/lookup

see: https://github.com/ansible/tower/issues/1101
see: https://github.com/ansible/awx/issues/1633
2018-03-23 11:15:37 -04:00
mabashian
bf142fa434 Fixed permissions multi-select deselect bug 2018-03-23 10:51:44 -04:00
Ryan Petrello
07680dd7c0 Merge pull request #1652 from ryanpetrello/fix-500
send job notification templates _after_ all events have been processed
2018-03-23 10:51:06 -04:00
John Mitchell
95f80ce512 implement new style jobs list in ui 2018-03-23 09:35:41 -04:00
Michael Abashian
e7cfe1e0b6 Merge pull request #1640 from mabashian/1561-survey-multi-select
Fixed bug on non-required multiple choice survey questions
2018-03-23 09:31:56 -04:00
Michael Abashian
224d996b9c Merge pull request #1622 from mabashian/169-prompt-cleanup
Propagate new launch/relaunch logic across the app
2018-03-23 09:31:33 -04:00
Ryan Petrello
61aafe15d6 fix busted shippable builds 2018-03-22 16:56:04 -04:00
mabashian
7a4bc233f6 Pass job into the relaunch component rather than pull it from the parent. Added launch template component, use it on the templates lists. 2018-03-22 16:14:54 -04:00
Shane McDonald
caf576cac0 Merge pull request #1655 from shanemcd/devel
Move installer roles into roles directory
2018-03-22 14:39:03 -04:00
Shane McDonald
84cd933702 Move installer roles into roles directory
Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-22 14:34:03 -04:00
mabashian
c3b32e2a73 Cleaned up awRequireMultiple and fixed broken survey question error messaging 2018-03-22 11:58:47 -04:00
Shane McDonald
0d86e646ec Merge pull request #1100 from rooftopcellist/fix_upgrade_python_saml24
fix_python_saml24_update
2018-03-22 11:48:24 -04:00
adamscmRH
ad37f71af4 fix_python_saml24_update 2018-03-22 11:26:17 -04:00
Jeandre Le Roux
0525df595e Add unit test for rocket.chat notifications
Signed-off-by: Jeandre Le Roux <theblazehen@theblazehen.com>
2018-03-22 16:11:03 +02: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
Chris Meyers
ddf000e8e7 Merge pull request #1643 from chrismeyersfsu/fix-tower_special_group
do not allow tower group delete or name change
2018-03-22 08:06:03 -04:00
chris meyers
305ef6fa7e do not allow tower group delete or name change
* DO allow policy changes and other attribute changes
2018-03-22 08:05:06 -04:00
Chris Meyers
3446134501 Merge pull request #1646 from chrismeyersfsu/fix-kombu_unicode
use non-unicode queue names
2018-03-21 21:59:05 -04:00
Bill Nottingham
eae85e803e Merge pull request #1644 from wenottingham/botbotbot
update team map
2018-03-21 19:35:58 -04:00
mabashian
8d04be0fc8 Fixed unit test failures 2018-03-21 19:22:08 -04:00
chris meyers
e0803b9f08 use non-unicode queue names
* Use unicode InstanceGroup and queue names up until the point we
actually create the queue
* kombu add_consumers returns a dict with a value that contians the
passed in queue name. Trouble is, the returned dict value is a string
and not a unicode string and this results in an error.
2018-03-21 16:50:07 -04:00
Chris Meyers
724812e87c Merge pull request #1637 from chrismeyersfsu/fix-instance_removed_from_group
handle instance group names unicode
2018-03-21 15:47:00 -04:00
Bill Nottingham
45240a6bf0 update team map 2018-03-21 15:46:50 -04:00
mabashian
0cadea1cb5 Fixed bug preventing the user from ignoring a non-required multi-select survey question on launch 2018-03-21 14:55:38 -04:00
Alan Rominger
b3e15f70cb Merge pull request #1612 from AlanCoding/token_no
Make user_capabilities False for read tokens
2018-03-21 14:45:19 -04:00
Ryan Petrello
a13ddff81a Merge pull request #1627 from aperigault/fix_deprecation
Replace deprecated -U option by --become-user
2018-03-21 14:32:13 -04:00
Bill Nottingham
88ef889cf1 Merge pull request #1634 from wenottingham/winrm-rf
Cherry-pick fix for WinRM listener to AzureRM inventory script.
2018-03-21 14:13:08 -04:00
chris meyers
91bfed3d50 handle instance group names unicode 2018-03-21 13:41:48 -04:00
AlanCoding
4f1f578fde make user_capabilities False for read tokens 2018-03-21 13:14:14 -04:00
Shane McDonald
f8b5318206 Merge pull request #1093 from rooftopcellist/upgrade_python_saml
upgrade python-saml for CVE fix
2018-03-21 12:27:35 -04:00
adamscmRH
c3842b6bf9 upgrade python-saml for CVE fix 2018-03-21 12:07:18 -04:00
Ryan Petrello
1a542c5e06 Merge pull request #1620 from ryanpetrello/dynamic-autoscale
dynamically set worker autoscale max_concurrency based on system memory
2018-03-21 11:52:16 -04:00
Marliana Lara
6e11b5b9c8 Merge pull request #1557 from marshmalien/feat/final_granular_permission_types
New RBAC roles at the Org level
2018-03-21 11:35:15 -04:00
Marliana Lara
4106e496df Merge pull request #1574 from marshmalien/fix/capacity_adjustment_value
Add capacity adjuster slider label
2018-03-21 11:35:03 -04:00
Ryan Petrello
6a96e6a268 dynamically set worker autoscale max_concurrency based on system memory 2018-03-21 11:10:48 -04:00
mabashian
bee7148c61 Addressed jshint errors 2018-03-21 10:59:13 -04:00
Marliana Lara
2ae02fda82 Update pr based on feedback 2018-03-21 10:55:00 -04:00
Marliana Lara
01d35ea9c0 Show organizations based on more granular RBAC roles 2018-03-21 10:54:59 -04:00
Marliana Lara
c156a0af99 Add capacity adjustment slider label 2018-03-21 10:53:16 -04:00
Bill Nottingham
531e5b5137 Cherry-pick fix for WinRM listenr to AzureRM inventory script.
(ref: https://github.com/ansible/ansible/pull/37499/)
2018-03-21 10:46:30 -04:00
mabashian
f0ff578923 Cleanup linting errors 2018-03-21 10:27:48 -04:00
chris meyers
1c578cdd74 validate group type params 2018-03-21 09:13:08 -04:00
chris meyers
17795f82e8 more parameters 2018-03-21 09:13:08 -04:00
chris meyers
e3c362956d add ldap group type like posixGroupType
* Adds pattern to easy add django-auth-ldap group types classes and to
pass parameters via AUTH_LDAP_GROUP_TYPE_PARAMS
* Adds new group type PosixUIDGroupType that accepts the attribute,
ldap_group_user_attr, on which to search for the user(s) in the group.
2018-03-21 09:13:08 -04:00
AlanCoding
001fa634aa include related Jobs in group del protection 2018-03-21 08:05:16 -04:00
Antony PERIGAULT
3adcdb43ad Replace deprecated -U option by --become-user 2018-03-21 12:28:27 +01:00
Jeandre Le Roux
fd12c44ada Add Rocket.Chat notification type
Summary: Add Rocket.Chat notification type
Issue type: Feature Pull Request
Component: Notifications

Signed-off-by: Jeandre Le Roux <theblazehen@theblazehen.com>
2018-03-21 10:02:50 +02:00
Bill Nottingham
e58038b056 Merge pull request #1623 from cvick/patch-1
Added a space before closing quote to fix spelling
2018-03-20 23:25:12 -04:00
Chris Vick
fca1e7028f Added a space before closing quote to fix spelling
Without the space before the lines closing quote, 'or' and 'other' get concatenated to 'orother' in the tooltip
2018-03-20 19:36:37 -07:00
Wayne Witzel III
f4e57e2906 Merge pull request #1608 from wwitzel3/devel
System Setting for Orgainization User/Team permissions.
2018-03-20 17:17:49 -04:00
mabashian
2e858790db Propagate launch/relaunch logic across the app. Removed some old launch related factories. 2018-03-20 15:53:21 -04:00
Alan Rominger
8056ac5393 Delay import of freeze to make tests run (#1617)
* Delay import of freeze to make tests run

* fix flake8 error
2018-03-20 11:58:11 -04:00
Matthew Jones
6419339094 Merge pull request #1570 from rooftopcellist/authorization_flow_docs
add authorization grant to docs
2018-03-20 07:26:10 -07:00
Matthew Jones
3ee8b3b514 Merge pull request #1613 from EagleIJoe/patch-1
Corrected alternate dns servers entries in docker-compose template
2018-03-20 07:24:31 -07:00
Wayne Witzel III
d7f26f417d Reword help text for manage org auth 2018-03-20 07:31:08 -04:00
Alan Rominger
30fb4076df Merge pull request #1569 from AlanCoding/relaunch_survey
Allow normal users to relaunch jobs with survey answers
2018-03-20 07:14:09 -04:00
Matthew Jones
c0661722b6 Merge pull request #1523 from paihu/slack-color-notification
support slack color notification #1490
2018-03-19 18:05:28 -07:00
Martin Adler
ca7b6ad648 Corrected alternate dns servers entries
As lstrip_blocks: True was added, this broke the formating when adding alternate DNS servers within the template. Removing the extra white space removals within the if and endif statements fixed the resulting yml formating.
2018-03-19 21:08:52 +01:00
Wayne Witzel III
d5564e8d81 Fix user capabilities when MANAGE_ORGANIZATION_AUTH is disabled 2018-03-19 15:16:54 -04:00
Wayne Witzel III
a9da494904 switch to single toggle and change name 2018-03-19 14:45:52 -04:00
John Mitchell
a9e13cc5f4 Merge pull request #1580 from jlmitch5/usersAppCrudUi
implement users tokens sub list
2018-03-19 13:23:29 -04:00
Wayne Witzel III
771108e298 Protect team assignment for the roles access point 2018-03-19 12:10:13 -04:00
Wayne Witzel III
eb3b518507 Add Organization User/Team toggle to UI 2018-03-19 11:25:14 -04:00
Wayne Witzel III
33ac8a9668 System wide toggle for org admin user/team abilities 2018-03-19 11:24:36 -04:00
Ryan Petrello
2b443b51eb Merge pull request #1606 from ryanpetrello/uwsgi-top
add uwsgitop as a dependency
2018-03-19 10:58:22 -04:00
Ryan Petrello
918f372c20 add uwsgitop as a dependency
see: https://github.com/ansible/ansible-tower/issues/7966
2018-03-19 08:53:30 -04:00
Matthew Jones
681918be9a Merge pull request #1598 from ryanpetrello/pin-boto-core
pin botocore to avoid dependency hell re: latest python-dateutil
2018-03-17 13:08:44 -07:00
Bill Nottingham
2780cd0d4c Merge pull request #1601 from wenottingham/following-a-new-path
Just set ANSIBLE_SSH_CONTROL_PATH_DIR, and don't worry about the socket file name.
2018-03-16 22:35:26 -04:00
John Mitchell
cbc20093d7 move users tokens to features folder 2018-03-16 17:15:28 -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
Ryan Petrello
4f585dd09e pin botocore to avoid dependency hell re: latest python-dateutil
boto decided to pin python-dateutil on a version _lower than_ what we
need for the TZID= bug fix:
90d7692702 (diff-b4ef698db8ca845e5845c4618278f29a)
2018-03-16 16:08:03 -04:00
John Mitchell
8babac49a6 update users token crud list to utilize string file 2018-03-16 15:56:30 -04:00
Matthew Jones
8aa7e4692d Merge pull request #1596 from ansible/jlmitch5-patch-3
update .gitignore to include tower license dir
2018-03-16 12:36:00 -07:00
John Mitchell
cf20943434 update .gitignore to include tower license dir 2018-03-16 15:33:18 -04:00
Bill Nottingham
d5d2858626 Merge pull request #1591 from wenottingham/bad-date
Bump copyright date.
2018-03-16 15:11:10 -04:00
Bill Nottingham
52599f16ad Bump copyright date.
We don't need to do this at the source code level, but we should do it for the app as a whole.
2018-03-16 14:57:08 -04:00
Ryan Petrello
a1f15362ab Merge pull request #1575 from aperigault/fix_nginx_upstreams
Fix nginx upstreams
2018-03-16 14:53:48 -04:00
Alan Rominger
1413659f5f Merge pull request #1593 from AlanCoding/fix_processed
Fix bug with non-event model
2018-03-16 14:53:05 -04:00
AlanCoding
bbbb7def0a fix bug with non-event model 2018-03-16 14:27:36 -04:00
Marliana Lara
85a95c8cb8 Merge pull request #1577 from marshmalien/fix/empty_ig_list_results_error
Fix error where list directive requires results attribute
2018-03-16 13:52:34 -04:00
adamscmRH
5f6a8ca2c0 add authorization grant to docs 2018-03-16 12:21:22 -04:00
Alan Rominger
75dd8d7d30 Merge pull request #1587 from AlanCoding/more_event_blocking
Block deletion of resources with unprocessed events
2018-03-16 11:26:33 -04:00
AlanCoding
66108164b9 remove unnecessary mock 2018-03-16 10:55:48 -04:00
AlanCoding
69eccd3130 move ACTIVE_STATES to constants 2018-03-16 10:31:41 -04:00
AlanCoding
7881c921ac block deletion of resources w unprocessed events 2018-03-16 10:14:28 -04:00
Wayne Witzel III
16aa3d724f Merge pull request #1586 from wwitzel3/devel
Moved RelatedJobMixin impl to Project instead of ProjectUpdate
2018-03-16 09:58:34 -04:00
Wayne Witzel III
6231742f71 Move RelatedJob mixin to Project 2018-03-16 09:42:32 -04:00
Wayne Witzel III
c628e9de0a Filter active jobs by WFT/JT 2018-03-16 09:32:42 -04:00
Wayne Witzel III
c54d9a9445 Fix query using self -> self.project and fix imports 2018-03-16 09:24:46 -04:00
Wayne Witzel III
f594f62dfc Project needs to expose all of its ProjectUpdate jobs in an active state 2018-03-16 09:12:20 -04:00
Chris Meyers
0689cea806 Merge pull request #1572 from chrismeyersfsu/fix-instance_removed_from_group
handle unicode things in task logger
2018-03-15 16:25:13 -04:00
Chris Meyers
0cf1b4d603 Merge pull request #1535 from chrismeyersfsu/fix-protect_tower_group
prevent tower group delete and update
2018-03-15 16:02:36 -04:00
chris meyers
1f7506e982 prevent tower group delete and update
* related to https://github.com/ansible/ansible-tower/issues/7931
* The Tower Instance group is special. It should always exist, so
prevent any delete to it.
* Only allow super users to associate/disassociate instances the 'tower'
instance group.
* Do not allow fields of tower instance group to be changed.
2018-03-15 15:23:06 -04:00
Chris Meyers
2640ef8b1c Merge pull request #1536 from chrismeyersfsu/fix-protect_instance_groups
prevent instance group delete if running jobs
2018-03-15 14:57:45 -04:00
John Mitchell
e7a0bbb5db implement users tokens sub list 2018-03-15 14:53:49 -04:00
chris meyers
5d5d8152c5 prevent instance group delete if running jobs
* related to https://github.com/ansible/ansible-tower/issues/7936
2018-03-15 14:25:49 -04:00
Matthew Jones
3928f536d8 Merge pull request #1571 from matburt/fixing_cluster_resources
Fixing some issues defining resource requests in openshift and k8s
2018-03-15 11:20:56 -07:00
Marliana Lara
84904420ad Pass results attr to list directive from instance groups list 2018-03-15 14:13:33 -04:00
chris meyers
2ea0b31e2b handle unicode things in task logger
Related to https://github.com/ansible/ansible-tower/issues/7957

* Problem presented itself as Instances falling out of Instance Groups.
This was due to the cluster membership policy decider erroring out on a
logger message with unicode.
* Fixed up potential other unicode logger unicode issues in tasks.py
2018-03-15 14:04:39 -04:00
Antony PERIGAULT
8cf1c1a180 Fix nginx configuration to avoid ipv6 resolutions errors 2018-03-15 17:54:51 +01:00
Matthew Jones
192dc82458 Update documentation for default pod resource requests
Including information on how to override the default resources
2018-03-15 12:01:02 -04:00
Matthew Jones
3ba7095ba4 Fixing some issues defining resource requests in openshift and k8s
* Allow overriding all container resource requests by setting defaults/
* Fix an issue where template vars were reversed in the deployment config
* Remove `limit` usage to allow for resource ballooning if it's available
* Fix type error when using templated values in the config map for resources
2018-03-15 12:00:53 -04:00
AlanCoding
43aef6c630 allow normal users to relaunch jobs w survey answers 2018-03-15 07:43:03 -04:00
Michael Abashian
597874b849 Merge pull request #1489 from mabashian/169-workflow-nodes
Implemented new workflow node prompting
2018-03-14 16:58:35 -04:00
mabashian
9873bab451 Removed unused/commented code 2018-03-14 16:26:02 -04:00
Matthew Jones
cec77964ac Merge pull request #1563 from matburt/container_cluster_capacity
Implement container-cluster aware capacity determination
2018-03-14 12:06:25 -07:00
Christian Adams
2abf4ccf3b Merge pull request #1562 from rooftopcellist/python_saml_upgrade
add xmlsec flag to docker installs
2018-03-14 14:53:26 -04:00
Matthew Jones
b0cf4de072 Implement container-cluster aware capacity determination
* Added two settings values for declaring absolute cpu and memory
  capacity that will be picked up by the capacity utility methods
* installer inventory variables for controlling the amount of cpu and
  memory container requests/limits for the awx task containers
* Added fixed values for cpu and memory container requests for other
  containers
* configmap uses the declared inventory variables to define the
  capacity inputs that will be used by AWX to correspond to the same
  inputs for requests/limits on the deployment.
2018-03-14 14:35:45 -04:00
Shane McDonald
2af085e1fe Merge pull request #1552 from jffz/devel
Add ca_trust_dir to local docker installations
2018-03-14 14:32:55 -04:00
adamscmRH
8d460490c1 add xmlsec flag to docker installs 2018-03-14 14:28:35 -04:00
John Mitchell
5eed816c4d Merge pull request #1558 from ansible/jlmitch5-patch-2
encode username and password when sending login POST from ui
2018-03-14 11:29:34 -04:00
John Mitchell
17cdbef376 encode username and password when sending login POST from ui
fixes #1553
2018-03-14 11:12:50 -04:00
Alexander Bauer
709cb0ae2b fixup! Add local_docker facility for bind-mounting ca-trust 2018-03-14 10:52:36 -04:00
Alexander Bauer
db8df5f724 Add local_docker facility for bind-mounting ca-trust
This implements one possible solution for #411, but does not solve it for
Kubernetes or Openshift installations.

# Conflicts:
#	installer/inventory
2018-03-14 10:52:36 -04:00
Alan Rominger
5c0a52df16 Merge pull request #1533 from AlanCoding/count_events
Track emitted events on model
2018-03-14 10:30:43 -04:00
John Mitchell
ea5ab2df7f Merge pull request #1453 from jlmitch5/licenseInSettingsUi
[Tower only] Make pendo license settings opt out whenever license is added
2018-03-14 10:26:08 -04:00
jeff
4fa0d2406a Remove unneeded jinja endif 2018-03-14 15:16:26 +01:00
Alan Rominger
92b8fc7e73 Merge pull request #1554 from AlanCoding/poly_who
fix bugs with UJT optimizations
2018-03-14 09:11:57 -04:00
Matthew Jones
63f0082e4d Merge pull request #1543 from matburt/k8s_helm_instructions
Adding information on Kubernetes RBAC considerations for Helm
2018-03-14 05:52:12 -07:00
AlanCoding
5170fb80dc fix bugs with UJT optimizations 2018-03-14 08:19:53 -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
Alan Rominger
0db584e23e Merge pull request #1530 from AlanCoding/inv_env_vars
More restrictive inventory env vars management
2018-03-14 07:23:42 -04:00
jeff
f9f91ecf81 Add ca_trust_dir to task image 2018-03-14 11:41:10 +01:00
jeff
aca74d05ae Add 'ca_trust_dir' variable to allow Custom CA sharing between host and containers 2018-03-14 11:40:56 +01:00
Matthew Jones
b646e675d6 Merge pull request #1544 from matburt/sorting_region_choices
Sort cloud regions in a stable way
2018-03-13 18:02:31 -07:00
Matthew Jones
4a5f458a36 Merge pull request #1542 from matburt/adding_more_extra_vars
Adding more helpful job extra vars
2018-03-13 17:53:44 -07:00
John Mitchell
04bc044340 Merge pull request #1437 from jlmitch5/appCrudUi
implements application crud ui
2018-03-13 18:07:10 -04:00
John Mitchell
c65342acc9 make call to pendo setting and set check box based on that when license already exists 2018-03-13 15:41:45 -04:00
Matthew Jones
acde2520d0 Sort cloud regions in a stable way
* All comes first
* Then US regions
* Then all other regions alphabetically
2018-03-13 15:31:28 -04:00
Wayne Witzel III
4b27b05fd2 Merge pull request #1541 from wwitzel3/devel
Fix member_role parent to include credential_admin_role
2018-03-13 13:52:58 -04:00
Matthew Jones
dcf0b49840 Adding information on Kubernetes RBAC considerations for Helm 2018-03-13 13:48:10 -04:00
John Mitchell
f8c6187007 add back in comments describing license type payload 2018-03-13 13:34:03 -04:00
John Mitchell
d9f5eab404 add separator above checkbox 2018-03-13 13:34:03 -04:00
John Mitchell
8b10d64d73 update code formatting based on feedback 2018-03-13 13:34:02 -04:00
John Mitchell
2b4a53147e turn pendo tracking off in settings when checkbox is unchecked 2018-03-13 13:34:02 -04:00
John Mitchell
5f4f4a2fb9 make pendo license settings opt out whenever license is added 2018-03-13 13:34:00 -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
Wayne Witzel III
db38cf8f93 Fix member_role parent to include credential_admin_role 2018-03-13 12:20:40 -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
paihu
dfea3a4b95 fix: broken backward compatibility
fix: param hex_color isn't optional

Signed-off-by: paihu <paihu_j@yahoo.co.jp>
2018-03-13 18:04:47 +09:00
John Mitchell
9d6fab9417 update edit controller to PUT app instead of POST
remove old applications tokens code
2018-03-12 17:40:08 -04:00
Christian Adams
f995b99af6 Merge pull request #1531 from rooftopcellist/application_description
add description to app serializer
2018-03-12 17:19:54 -04:00
Chris Meyers
724ca23685 Merge pull request #1534 from chrismeyersfsu/fix-4_job_limit
autoscale celery up to 50 workers
2018-03-12 15:45:01 -04:00
chris meyers
a4859a929c autoscale celery up to 50 workers 2018-03-12 15:36:15 -04:00
adamscmRH
91214aa899 add description to app serializer 2018-03-12 15:07:59 -04:00
John Mitchell
80db90b34c reduce delete prompting cruft for app ui 2018-03-12 14:35:03 -04:00
AlanCoding
3566140ecc more restrictive inventory env vars management 2018-03-12 13:35:22 -04:00
John Mitchell
3cf447c49b remove N_ dependency in favor strings files 2018-03-12 13:31:19 -04:00
John Mitchell
a22f1387d1 adjust user tokens list labeling 2018-03-12 13:31:19 -04:00
John Mitchell
8a28d7c950 remove permissions subview code from applications ui crud 2018-03-12 13:31:18 -04:00
John Mitchell
8031337114 add applications.edit.organization route 2018-03-12 13:31:18 -04:00
John Mitchell
8d2c0b58e1 remove unnecessary conditional 2018-03-12 13:31:18 -04:00
John Mitchell
f4ad9afc5e add app crud ui 2018-03-12 13:31:18 -04:00
Marliana Lara
c19bb79587 Merge pull request #1499 from marshmalien/style/display_invalid_items
Add border between invalid and active template flags
2018-03-12 12:37:42 -04:00
Ryan Petrello
6d9b386727 Merge pull request #1529 from ryanpetrello/new-dateutil
bump python-dateutil to latest
2018-03-12 12:34:02 -04:00
Ryan Petrello
44adab0e9e bump python-dateutil to latest
this change provides support for numerous bug fixes, along with
support for parsing TZINFO= from rrule strings

related: https://github.com/ansible/ansible-tower/issues/823
related: https://github.com/dateutil/dateutil/issues/614
2018-03-12 12:20:03 -04:00
mabashian
8aa9569074 In the JT form, moved options from its own line to in-line 2018-03-12 10:56:36 -04:00
mabashian
982b83c2d3 Fixed several workflow prompting and edge type bugs 2018-03-12 10:50:33 -04:00
Matthew Jones
346c9fcc8a Merge pull request #1514 from wenottingham/a-period-piece
Add some periods.
2018-03-12 07:40:16 -07:00
Matthew Jones
eaff7443d2 Merge pull request #1522 from therealmaxmouse/patch-1
Update INSTALL.md
2018-03-12 07:39:48 -07:00
Matthew Jones
8a9397a997 Merge pull request #1528 from jffz/devel
Fix project_data_dir templating for local_docker install
2018-03-12 07:37:11 -07:00
jeff
4972755ccb Fix project_data_dir templating for local_docker install 2018-03-12 14:50:44 +01:00
Ryan Petrello
6d43b8c4dd Merge pull request #1527 from ryanpetrello/oauth2-filter
restrict API filtering on oauth-related fields
2018-03-12 09:43:05 -04:00
Ryan Petrello
a61187e132 restrict API filtering on oauth-related fields
related: https://github.com/ansible/awx/issues/1354
2018-03-12 09:16:37 -04:00
paihu
9b5e088d70 support slack color notification #1490
Signed-off-by: paihu <paihu_j@yahoo.co.jp>
2018-03-12 14:14:44 +09:00
therealmaxmouse
54ae039b95 Update INSTALL.md
fixing typo
2018-03-11 11:45:35 -04:00
Bill Nottingham
7b2b71e3ef ... update string in tests as well. 2018-03-09 17:49:46 -05:00
Bill Nottingham
fb05eecee0 Add some periods. 2018-03-09 17:23:52 -05:00
Ryan Petrello
dcab97f94f Merge pull request #1504 from ryanpetrello/oauth2-swagger
properly categorize OAuth2 endpoints for swagger autogen
2018-03-09 15:27:02 -05:00
Ryan Petrello
397b9071a6 properly categorize OAuth2 endpoints for swagger autogen 2018-03-09 15:07:50 -05:00
Shane McDonald
7984bd2824 Merge pull request #1493 from jffz/devel
Fix for dns and dns_search templating
2018-03-09 12:52:10 -05:00
Marliana Lara
6f7cb0a16e Add border between invalid and active indicators 2018-03-09 12:21:46 -05:00
Marliana Lara
bfbbb95256 Merge pull request #1475 from marshmalien/feat/style_upgrade_page
Style migrations-pending page
2018-03-09 11:47:34 -05:00
Marliana Lara
882ed4d05a Merge pull request #1497 from marshmalien/feat/display_invalid_items_onPrompt
Denote invalid template when no inventory and no prompt-for-inventory
2018-03-09 10:38:20 -05:00
Christian Adams
cee12c4e6c Merge pull request #1378 from rooftopcellist/no_patch_app
disallow changing token-app
2018-03-09 10:33:24 -05:00
Marliana Lara
c2a3e82d29 Check Inventory ask_inventory_on_launch value when verifying template validity 2018-03-09 10:08:39 -05:00
Chris Meyers
181af03ab9 Merge pull request #1495 from chrismeyersfsu/fix-celery_rollback
more celery rollback
2018-03-09 09:31:31 -05:00
chris meyers
e2ed1542e6 more celery rollback
* Setting reload code calls a celery 4.x method signature. This changes
it back to a 3.x safe call.
2018-03-09 09:27:09 -05:00
jffz
ca27dee4fc Fix dns and dns_search templating
Fix templating for dns and dns_search entries for both `awx_web` and `awx_task` images.

Multiple entries were templated in a oneliner style while docker-compose wanted them in a list style.
2018-03-09 11:04:26 +01:00
mabashian
c98e7f6ecd Implemented workflow node prompting 2018-03-08 18:45:28 -05:00
Christian Adams
8a25342ce5 Merge pull request #1373 from rooftopcellist/oauth_doc_csrf
update docs
2018-03-08 18:15:04 -05:00
Alan Rominger
b41d9c4620 Merge pull request #1470 from AlanCoding/mo_exceptions
Include stack trace for delete_inventory logs
2018-03-08 17:18:40 -05:00
adamscmRH
91c0f2da6f simplifies detail serializer 2018-03-08 14:55:25 -05:00
Matthew Jones
b11b1acc68 Update middleware warning for latest minor version 2018-03-08 12:54:26 -05:00
adamscmRH
9b195bc80f fix oauth docs 2018-03-08 12:44:53 -05:00
adamscmRH
fd7c078a8b update docs 2018-03-08 12:10:29 -05:00
adamscmRH
06bacd7bdc add serializer for token detail 2018-03-08 12:03:50 -05:00
Marliana Lara
6f23147d98 Style migrations/pending page 2018-03-08 11:47:59 -05:00
Alan Rominger
3605dbfd73 Merge pull request #1472 from AlanCoding/more_deps
Add shade back into AWX requirements
2018-03-08 11:04:20 -05:00
Michael Abashian
599d84403b Merge pull request #1425 from mabashian/169-credentials
Added add/replace credential validation on jt launch and schedule
2018-03-08 10:57:27 -05:00
AlanCoding
4a01805a19 add shade back into AWX requirements
Last round of dependency updates showed that AWX
depended on packages which came implicitly from shade
decorator is added as an explicit dependency
and all of the rest of shade requirements are
added back in here.
2018-03-08 10:32:19 -05:00
Michael Abashian
c580146c77 Merge branch 'devel' into 169-credentials 2018-03-08 10:03:29 -05:00
mabashian
ce3dc40649 Edit schedule credential prompting code cleanup 2018-03-08 09:58:31 -05:00
Shane McDonald
5bf2e00d24 Merge pull request #1471 from shanemcd/devel
Fix container boots on AppArmor protected systems
2018-03-08 09:44:33 -05:00
Shane McDonald
02102f5ba8 Fix container boots on AppArmor protected systems
Link https://github.com/ansible/awx/issues/1297

Signed-off-by: Shane McDonald <me@shanemcd.com>
2018-03-08 09:41:04 -05:00
Shane McDonald
2861397433 Set imagePullPolicy to Always
Not sure why we werent doing this before.
2018-03-08 09:41:04 -05:00
AlanCoding
54a68da088 include stack trace for delete_inventory logs 2018-03-08 08:30:59 -05:00
Alan Rominger
044b85ce7a Merge pull request #1415 from AlanCoding/depgrades
Dependency Upgrades
2018-03-08 08:29:46 -05:00
Michael Abashian
b970452950 Merge pull request #1441 from marshmalien/feat/display_invalid_items
Denote invalid job templates and scheduled jobs
2018-03-07 15:26:13 -05:00
adamscmRH
f485a04dfc disallow changing token-app 2018-03-07 15:13:56 -05:00
mabashian
a5043029c1 Implemented the ability to specify credentials when creating a scheduled job run. Added validation for removing but not replacing default credentials. 2018-03-07 11:57:31 -05:00
Matthew Jones
61a48996ee Merge pull request #1459 from rooftopcellist/update_session_setting
add csrf & session settings
2018-03-07 08:41:17 -08:00
Jake McDermott
8f58d0b998 Merge pull request #1455 from ansible/jakemcdermott-patch-2
auto hide multi credential scrollbar
2018-03-07 11:33:29 -05:00
adamscmRH
0490bca268 add csrf & session settings 2018-03-07 09:32:24 -05:00
Christian Adams
095515bb56 Merge pull request #1458 from rooftopcellist/fix_expiration
Fix expiration
2018-03-07 08:13:25 -05:00
adamscmRH
efaa698939 fix token expiration time 2018-03-07 00:42:44 -05:00
AlanCoding
556e6c4a11 Dependency Updates
Upgrades of minor dependency upgrades
Inventory scripts were upgraded in separate commit

Major exclusions from this update
- celery was already downgraded for other reasons
- Django / DRF major update already done, minor bumps here
- asgi-amqp has fixes coming independently, not touched
- TACACS plus added features not needed

Removals of note
- remove shade from AWX requirements
- remove kombu from Ansible requirements

Other notes

Add note about pinning setuptools and pip,
done but not mentioned previously

Stop pinning gevent-websocket and twisted

upgrade Azure to Ansible core requirements

more detailed notes
https://gist.github.com/AlanCoding/9442a512ab6977940bc7b5b346d4f70b

upgrade version of Django for Exception
2018-03-06 16:04:01 -05:00
Matthew Jones
8421d2b0d2 Merge pull request #1457 from matburt/remove_old_migrations
Remove old south migrations from before a previous django upgrade
2018-03-06 12:59:32 -08:00
Jake McDermott
f8ca0a613f Update prompt.block.less 2018-03-06 14:56:38 -05:00
Christian Adams
db91e30464 Merge pull request #1449 from rooftopcellist/fix_exp_time
fix token expiration time
2018-03-06 14:55:38 -05:00
Matthew Jones
d19ef60d97 Remove old south migrations from before a previous django upgrade 2018-03-06 14:47:09 -05:00
Jake McDermott
5971d79a8f auto hide multi credential scrollbar 2018-03-06 14:33:28 -05:00
Wayne Witzel III
a3b2f29478 Merge pull request #1454 from wwitzel3/fix-role-summary
Fix role summary when role description is overloaded
2018-03-06 14:03:22 -05:00
adamscmRH
a80e3855cd fix token expiration time 2018-03-06 13:22:12 -05:00
Wayne Witzel III
8dce5c826c Fix role summary when role description is overloaded 2018-03-06 13:07:29 -05:00
Demin, Petr
f4a241aba2 Constrain requests 2018-03-06 12:47:34 -05:00
Jake McDermott
105b4982c4 Merge pull request #1451 from tburko/devel
Fix "System settings panel form is not rendering #1440"
2018-03-06 11:15:16 -05:00
Alan Rominger
cc33109412 Merge pull request #1445 from AlanCoding/platform
Add platform to ec2 group by options
2018-03-06 07:23:22 -05:00
Taras Burko
8a5cd3ec7d Fix "System settings panel form is not rendering #1440" 2018-03-06 14:03:36 +02:00
Ryan Petrello
d6af0bfd50 Merge pull request #1448 from ryanpetrello/fix-7923
normalize custom_virtualenv empty values to null
2018-03-05 17:25:51 -05:00
Ryan Petrello
8955e6bc1c normalize custom_virtualenv empty values to null
see: https://github.com/ansible/ansible-tower/issues/7923
2018-03-05 17:05:10 -05:00
Shane McDonald
61087940c5 Merge pull request #1446 from matburt/fix_kubernetes_configmap
Apply celery rollback changes to kubernetes configmap
2018-03-05 16:46:57 -05:00
Matthew Jones
e99184656e Apply rabbitmq and setting kubernetes changes post-celery rollback 2018-03-05 16:22:27 -05:00
AlanCoding
341e2c0fe2 add platform to ec2 group by options 2018-03-05 15:43:28 -05:00
Matthew Jones
105b82c436 Apply celery rollback changes to kubernetes configmap 2018-03-05 15:32:24 -05:00
Ryan Petrello
1596b2907b Merge pull request #1439 from ryanpetrello/fix-7923
add validation to InventorySource.inventory to avoid task manager death
2018-03-05 15:12:24 -05:00
Marliana Lara
18f3c79bc3 Denote invalid job templates and scheduled jobs by displaying a red invalid bar 2018-03-05 14:52:40 -05:00
Ryan Petrello
8887be5952 add validation to InventorySource.inventory to avoid task manager death
see: https://github.com/ansible/awx/issues/1438
2018-03-05 14:40:57 -05:00
Shane McDonald
44f6423af3 Merge pull request #1442 from ryanpetrello/devel
fix busted shippable builds
2018-03-05 14:38:35 -05:00
Chris Meyers
80a970288d Merge pull request #1443 from chrismeyersfsu/fix-named_urls
handle 404 returned by resolve()
2018-03-05 14:37:07 -05:00
chris meyers
ccfb6d64bf handle 404 returned by resolve()
* related to https://github.com/ansible/ansible-tower/issues/7926
* if 404 on url in migration loading middelware, do NOT short circuit
middleware. Simply call the normal middlware code path in this case.
2018-03-05 14:34:53 -05:00
Ryan Petrello
13672cc88c fix busted shippable builds 2018-03-05 14:16:42 -05:00
Shane McDonald
d5773c58d3 Merge pull request #1426 from chrismeyersfsu/fix-migration_in_progress
short-circuit middleware if migration loading url
2018-03-03 10:48:50 -05:00
Jake McDermott
5370c5e07d Merge pull request #1431 from wenottingham/check-check-check-it-out
Adjust some wording in the UI.
2018-03-02 21:07:18 -05:00
Bill Nottingham
1606380f61 Adjust some wording in the UI.
Attempt to make the 'scm update' vs 'scm checkout' more clear.
Remove 'future' from scheduling tooltips (superfluous).
2018-03-02 19:54:02 -05:00
Christian Adams
953850a0d7 Merge pull request #1427 from rooftopcellist/hide_client_secret
Hide client_secret from activity stream
2018-03-02 15:43:49 -05:00
adamscmRH
701a5c9a36 hides client_secret from act stream 2018-03-02 14:47:49 -05:00
chris meyers
36d59651af inherit rather than monkey patch
* Enable migration in progress page in ALL environments
2018-03-02 12:37:48 -05:00
Christian Adams
d1319b7394 Merge pull request #1414 from rooftopcellist/testing_oauth
fix token creation at `api/o/token`
2018-03-02 11:36:59 -05:00
chris meyers
746a2c1eea short-circuit middleware if migration loading url
* Had to monkey patch django middleware logic.
* Left checks to tell coders to use new middleware behavior in favor of
monkey patching.
2018-03-02 11:21:26 -05:00
Chris Meyers
9df76f963b Merge pull request #1412 from chrismeyersfsu/reap_new_nodes_too
reap all nodes that havn't checked in
2018-03-02 10:03:37 -05:00
chris meyers
17de084d04 perform the min needed DB ops to offline a node
* Don't do an extra save to the DB that could conflict with another
heartbeat when it isn't needed since we will be deleting the node
anyway.
2018-03-02 07:57:59 -05:00
Chris Meyers
f907995374 Merge pull request #1417 from chrismeyersfsu/fix-config_watcher
invoke main() in config watcher script
2018-03-01 17:11:58 -05:00
chris meyers
b69315f2eb fix up the config map watcher script
* invoke main() in config watcher script
* correctly call hash update by passing the filename
2018-03-01 17:06:07 -05:00
chris meyers
a3a618d733 call node init procedures as early as possible
* invoke the first heartbeat as early as possible. Results in a much
better user experience where when a user scales up an awx node, the node
appears with capacity earlier.
2018-03-01 17:05:58 -05:00
adamscmRH
fa7647f828 fix token creation 2018-03-01 16:19:58 -05:00
Chris Meyers
8c1ec37c80 Merge pull request #1411 from chrismeyersfsu/early_first_heartbeat
call node init procedures as early as possible
2018-03-01 13:01:37 -05:00
Jake McDermott
d7616accf5 Improve documentation for AWX E2E (#1381)
* Improve documentation for AWX E2E
2018-03-01 12:00:16 -05:00
chris meyers
5c647c2a0d call node init procedures as early as possible
* invoke the first heartbeat as early as possible. Results in a much
better user experience where when a user scales up an awx node, the node
appears with capacity earlier.
2018-03-01 11:24:45 -05:00
chris meyers
e94bd128b8 reap all nodes that havn't checked in
* Before this change we would exclude the reaping of new nodes. With
this change, new nodes will be considered for reaping just like old
nodes.
2018-03-01 11:21:54 -05:00
Alan Rominger
8d57b84251 Merge pull request #1353 from AlanCoding/dep_scripts
Update inventory scripts
2018-03-01 10:56:11 -05:00
Chris Meyers
f18d99d7a9 Merge pull request #1409 from chrismeyersfsu/openshift_runtime_rabbitmq_cookie
dynamically set rabbitmq cookie
2018-03-01 09:57:11 -05:00
chris meyers
9436e8ae25 dynamically set rabbitmq cookie 2018-03-01 09:23:45 -05:00
Wayne Witzel III
dba78e6bfb Merge pull request #1398 from wwitzel3/devel
Update to latest asgi-amqp
2018-02-28 15:20:55 -05:00
Wayne Witzel III
73f0a0d147 Update to latest asgi-amqp 2018-02-28 14:43:37 -05:00
Cédric Levasseur
a2d543eb3b Inserting a note about PostgreSQL minimal version 9.4 in installation doc (#1385)
* Minimal postgresql version

* moving the Postgresql minimal version note.

* moved to System requirements and 'minimal' replaced by 'minimum'.
2018-02-28 13:44:50 -05:00
Shane McDonald
7087341570 Merge pull request #1397 from shanemcd/devel
Fix celery 3 broker url reference in standalone docker install
2018-02-28 12:50:57 -05:00
Shane McDonald
0e9a8d5592 Fix celery 3 broker url reference 2018-02-28 12:47:05 -05:00
Alan Rominger
4fba2d61e6 Merge pull request #1394 from AlanCoding/text_type2
Prevent unicode bug in job_explanation
2018-02-28 12:42:11 -05:00
AlanCoding
54c0436959 prevent unicode bug in job_explanation 2018-02-28 11:01:20 -05:00
Alan Rominger
ee0e239a9e Merge pull request #1374 from AlanCoding/your_name
More consistent representations of model objects
2018-02-28 09:08:29 -05:00
Matthew Jones
dc4b9341da Merge pull request #1383 from jakemcdermott/401-on-invalid-login
issue a 401 on invalid login
2018-02-28 08:35:11 -05:00
Jake McDermott
75a27f2457 issue 401 on invalid login 2018-02-28 02:02:52 -05:00
Jake McDermott
ee20fc478b add test for invalid login 2018-02-28 02:02:39 -05:00
Jake McDermott
01ee2adf30 Merge pull request #1382 from jakemcdermott/cookie-settings
adding in default session cookie setting for docker stand alone
2018-02-27 20:42:46 -05:00
Jake McDermott
877cde9a7f add default cookie settings 2018-02-27 20:40:41 -05:00
Ryan Petrello
b5a46c346d Merge pull request #1379 from ryanpetrello/fix-1366
don't inject custom extra_vars for inventory updates
2018-02-27 17:00:22 -05:00
Christian Adams
6e39388090 Merge pull request #1380 from rooftopcellist/csrf_flag
adds csrf flag to support http
2018-02-27 16:36:23 -05:00
Christian Adams
47c4eb38df Merge pull request #1377 from rooftopcellist/remove_authtoken_model
Removes Auth token
2018-02-27 16:33:20 -05:00
adamscmRH
69f8304643 adds csrf flag to support http 2018-02-27 16:19:46 -05:00
adamscmRH
40d563626e removes authtoken 2018-02-27 16:12:13 -05:00
Ryan Petrello
b9ab06734d don't inject custom extra_vars for inventory updates
see: https://github.com/ansible/awx/issues/1366
2018-02-27 16:10:23 -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
6606a29f57 celery 4.x -> 3.x change route config name 2018-02-27 14:13:05 -05:00
Jake McDermott
f9129aefba Merge pull request #1361 from mabashian/1279-preview-credentials
Put credentials on their own line in the launch preview
2018-02-27 13:42:00 -05:00
AlanCoding
bacd895705 more consistent representations of model objects 2018-02-27 12:18:57 -05:00
chris meyers
148baf7674 add explicit awx_celery container version 2018-02-27 11:37:10 -05:00
chris meyers
5918fa5573 remove () from postgres port value
* awx task container uses postgres port to wait for postgres to become
available before the container init continues. The () are problematic
and are removed.
* () was originally added to fix an openshift issues. That error does
NOT occur with this fix.
2018-02-27 11:36:55 -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
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
Alan Rominger
6d7f60ea61 Merge pull request #1368 from AlanCoding/none_client
Fix server error with absent client_secret
2018-02-27 10:39:50 -05:00
Ryan Petrello
a4ab424134 Merge pull request #1362 from ryanpetrello/rdb-sdb
replace our rdb tooling w/ the sdb PyPI package
2018-02-27 10:06:21 -05:00
Ryan Petrello
3636a7c582 Merge pull request #1355 from ryanpetrello/devel
set $HOME via an API call so AWX_TASK_ENV isn't marked as readonly
2018-02-27 09:57:17 -05:00
AlanCoding
c900027f82 fix server error with absent client_secret 2018-02-27 09:23:36 -05:00
Ryan Petrello
d743b77353 replace our rdb tooling w/ the sdb PyPI package 2018-02-26 19:05:50 -05:00
Ryan Petrello
7741de5153 set $HOME via an API call so AWX_TASK_ENV isn't marked as readonly
see: https://github.com/ansible/awx/issues/1315
2018-02-26 16:35:36 -05:00
Michael Abashian
c3968ca2b6 Merge pull request #1357 from mabashian/1281-prompt-inv
Fixed bug preventing users from selecting non-default inventory on job launch
2018-02-26 16:18:42 -05:00
mabashian
c58ea0ea25 Put credentials on their own line in the launch preview and forced them to wrap 2018-02-26 16:06:52 -05:00
Bill Nottingham
4519013a13 Merge pull request #1356 from wenottingham/mongo-only-pawn
Remove some obsolete code.
2018-02-26 15:30:37 -05:00
Bill Nottingham
c1203942e0 Remove obsolete ansible_awx.egg-info. 2018-02-26 15:04:37 -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
mabashian
9ad8bdf8de Fixed bug preventing users from selecting non-default inventory on job launch 2018-02-26 14:50:31 -05:00
AlanCoding
b878a844d0 Update inventory scripts
ec2
- added support for tags and instance attributes
- allow filtering RDS instances by tags
- add option to group by platform
- set missing defaults
- make cache unique to script ran
- bug fixes
- implement AND'd filters
azure_rm
- minor python 3 upgrades
cloudforms
- minor regex fix
foreman
- several new configurables
- changes to caching
gce
- python 3 upgrades
- added gce_subnetwork param
openstack
- added `--cloud` parameter
ovirt4
- obtain defaults from env vars
vmware_inventory
- changed imports
- allow for custom filters
- changed host_filters
- error handling
- python 3 upgrades
2018-02-26 13:46:21 -05:00
AlanCoding
7b78a2ebcc update tests for new call pattern for capabilities prefetch 2018-02-26 12:13:41 -05: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
Christian Adams
9493b72f29 Merge pull request #904 from ansible/oauth_n_session
Implement session-based  and OAuth 2 authentications
2018-02-26 12:12:38 -05:00
Jake McDermott
7430856ac9 Merge pull request #1344 from jakemcdermott/e2e-updates
e2e / nightwatch updates
2018-02-26 11:58:29 -05:00
adamscmRH
407bcd0cbd fix def application test 2018-02-26 11:35:09 -05:00
Jake McDermott
350f25c6e5 Merge pull request #1343 from jakemcdermott/oauth_n_session
ui tooling fixes / updates for oauth changes
2018-02-26 10:42:04 -05:00
Jake McDermott
c786736688 add setup step for org lookup check 2018-02-25 19:40:22 -05:00
Jake McDermott
01a8b2771a add worker file push command 2018-02-25 19:40:19 -05:00
Jake McDermott
a23e4732b6 bump nightwatch and chromedriver versions 2018-02-25 19:40:15 -05:00
Jake McDermott
24fd4a360e use updated project when checking copy 2018-02-25 19:40:11 -05:00
Jake McDermott
8bf31600b0 stabilize local test runs 2018-02-25 19:40:08 -05:00
Jake McDermott
0e7db2a816 do searchability check last
This fixes a small race condition that sometimes occurs when running
locally by ensuring that the delayed paged scrolling that happens
from using search doesn't put the password reset button out of view
when the test runner is trying to find and click it.
2018-02-25 19:40:02 -05:00
Jake McDermott
59e278a648 ensure correct url is built for inventory hosts page 2018-02-25 19:39:38 -05:00
Jake McDermott
44acecf61e use basic auth by default for data setup 2018-02-25 14:28:09 -05:00
adamscmRH
30b473b0df remove default app creation 2018-02-24 21:34:07 -05:00
Jake McDermott
6bdcba307c fix missing comma 2018-02-24 13:59:55 -05:00
Marliana Lara
434cd31df8 Merge pull request #1338 from marshmalien/feat/multiple_venvs
Implement UI selects for Playbook, Project, and Organization Virtualenvs
2018-02-23 15:48:41 -05:00
Jake McDermott
2b4e631838 Merge pull request #1339 from jakemcdermott/use-navbar-in-smoke-test
use navbar when accessing project and template views
2018-02-23 15:36:46 -05:00
Jake McDermott
b0e0b8f0e3 use navbar when accessing project and template views 2018-02-23 15:08:44 -05:00
Marliana Lara
8a163b5939 Add error handling 2018-02-23 14:49:00 -05:00
Marliana Lara
23300003ab Add dropdown inputs for Job Template, Project, and Organization virtual
envs
2018-02-23 14:49:00 -05:00
adamscmRH
87350e1014 prelim update to docs 2018-02-23 14:10:29 -05:00
adamscmRH
2911dec324 fixes app token endpoint 2018-02-23 11:06:53 -05:00
adamscmRH
99989892cd fixs naming 2018-02-23 09:25:23 -05:00
Alan Rominger
ad8822bcfc Merge pull request #1314 from AlanCoding/fix_rescheduling
Correct permission check for job rescheduling
2018-02-22 16:04:04 -05:00
Ryan Petrello
c35c01e7b1 Merge pull request #1328 from ryanpetrello/devel
Revert "changes to license compliance"
2018-02-22 15:28:54 -05:00
adamscmRH
ecc61b62ca reverts cookie change 2018-02-22 15:18:12 -05:00
John Mitchell
09efc03163 update incorrect logic for auth service rootscope/cookie logged in status vars 2018-02-22 15:18:12 -05:00
John Mitchell
db748775c8 make auth function convert values from cookies to boolean 2018-02-22 15:18:12 -05:00
adamscmRH
310f37dd37 clears authtoken & add PAT 2018-02-22 15:18:12 -05:00
John Mitchell
88bc4a0a9c ui auth works on 8013 now 2018-02-22 15:18:12 -05:00
John Mitchell
976766e4a3 excise token-based auth from ui 2018-02-22 15:18:12 -05:00
Aaron Tan
1c2621cd60 Implement session-based and OAuth 2 authentications
Relates #21. Please see acceptance docs for feature details.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2018-02-22 15:18:12 -05:00
Ryan Petrello
35f629d42c Revert "changes to license compliance"
This reverts commit 218dfb680e.
2018-02-22 15:02:33 -05:00
Alan Rominger
db39ab1b0c Merge pull request #1322 from AlanCoding/check_version
Loosen overwrite_vars constraint for new feature
2018-02-22 14:26:30 -05:00
Shane McDonald
c612ab1c89 Merge pull request #1327 from marshmalien/fix/bump-angular-scheduler-version
Bump angular-scheduler version to 0.3.2
2018-02-22 13:55:07 -05:00
Shane McDonald
c0fe6866c4 Merge pull request #1070 from vrutkovs/installer-ocp-token
Allow authenticating with Openshift via a token
2018-02-22 13:40:01 -05:00
Marliana Lara
746b99046f Bump angular-scheduler version to 0.3.2 2018-02-22 13:35:33 -05:00
Wayne Witzel III
91c6d406c5 Rollback celery 2018-02-22 09:37:14 -05:00
AlanCoding
4727cda336 Loosen overwrite_vars constraint for new feature 2018-02-22 07:47:28 -05:00
Alan Rominger
2ebee58727 Merge pull request #1321 from AlanCoding/magic_credential
Alias filters by credential to credentials
2018-02-21 15:51:42 -05:00
AlanCoding
91e59ebd29 alias filters by credential to credentials 2018-02-21 14:57:26 -05:00
AlanCoding
992d7831b1 add test for ScheduleAccess prompts 2018-02-21 14:11:55 -05:00
Marliana Lara
88b67c894c Merge pull request #1231 from marshmalien/fix/tzid-schedules
Add support for TZID in schedule rrules
2018-02-21 13:55:31 -05:00
Marliana Lara
d71ecf1eee Fix jshint confusing semantics error 2018-02-21 13:18:43 -05:00
Marliana Lara
b9a2f7a87e Add debounce function to preview list to reduce overhead 2018-02-21 13:18:40 -05:00
Marliana Lara
e0cfd18aac Set local timezone dropdown to rrule TZID value 2018-02-21 13:18:39 -05:00
Marliana Lara
73916ade45 Filter dates with moment.js instead of built-in angular date filter 2018-02-21 13:18:38 -05:00
Marliana Lara
1768001881 Add support for TZID in schedule rrules 2018-02-21 13:18:33 -05:00
Chris Church
795681a887 Merge pull request #1311 from cchurch/fix-dummy-data
Fix dummy data generator for WFJT node credentials.
2018-02-21 10:19:50 -05:00
AlanCoding
de4e95f396 correct permission check for job rescheduling 2018-02-21 09:25:43 -05:00
Chris Church
4ec683efcb Fix dummy data generator for WFJT node credentials. 2018-02-21 08:55:43 -05:00
Chris Church
727ded2d4d Merge pull request #1308 from cclauss/patch-1
Py3 Syntax Errors: 0700 -> 0x700 and 0600 -> 0x600
2018-02-21 08:29:49 -05:00
cclauss
8967afc645 octal, not hex 2018-02-21 14:13:47 +01:00
cclauss
d66cad3e0e Py3 Syntax Errors: 0700 -> 0x700 and 0600 -> 0x600
$ __python3 -c "0700"__
```
  File "<string>", line 1
    0700
       ^
SyntaxError: invalid token
```
2018-02-21 12:18:52 +01:00
Ryan Petrello
7db05855de Merge pull request #1306 from ryanpetrello/isolated-fact-cache
support fact caching for isolated hosts
2018-02-20 15:50:49 -05:00
Ryan Petrello
7d9e4d6e2f support fact caching for isolated hosts
see: https://github.com/ansible/awx/issues/198
2018-02-20 15:00:47 -05:00
Ryan Petrello
662f4ec346 Merge pull request #1304 from ryanpetrello/devel
remove dead code
2018-02-20 14:44:52 -05:00
Ryan Petrello
ac3ce82eb1 remove dead code
the code that persists `set_stat` data for workflows now lives elsewhere

related: d57470ce49
2018-02-20 14:14:23 -05:00
Alan Rominger
1582fcbb50 Merge pull request #1277 from AlanCoding/inv_multicred
Use the m2m field for inventory source credentials
2018-02-20 14:08:22 -05:00
AlanCoding
bb6032cff6 docs and review change for IS multivault
Mention inventory sources /credentials/ endpoint in docs
Also change means of identifying projects for the purose
of injecting custom credentials
2018-02-20 12:34:58 -05:00
AlanCoding
9c4d89f512 use the m2m field for inventory source creds 2018-02-20 12:34:56 -05:00
Matthew Jones
8505783350 Merge remote-tracking branch 'tower/release_3.2.3' into devel
* tower/release_3.2.3:
  fix unicode bugs with log statements
  use --export option for ansible-inventory
  add support for new "BECOME" prompt in Ansible 2.5+ for adhoc commands
  enforce strings for secret password inputs on Credentials
  fix a bug for "users should be able to change type of unused credential"
  fix xss vulnerabilities - on host recent jobs popover - on schedule name tooltip
  fix a bug when testing UDP-based logging configuration
  bump templates form credential_types page limit
  Wait for Slack RTM API websocket connection to be established
  don't process artifacts from custom `set_stat` calls asynchronously
  don't overwrite env['ANSIBLE_LIBRARY'] when fact caching is enabled
  only allow facts to cache in the proper file system location
  replace our memcached-based fact cache implementation with local files
  add support for new "BECOME" prompt in Ansible 2.5+
  fix a bug in inventory generation for isolated nodes
  properly handle unicode for isolated job buffers
2018-02-20 12:22:25 -05:00
Ryan Petrello
76ff925b77 Merge pull request #1298 from sjenning/add-import-playbook
add import_playbook as a top-level playbook indicator
2018-02-20 09:54:23 -05:00
Seth Jennings
42ff1cfd67 add import_playbook as top-level playbook indicator 2018-02-19 16:03:08 -06:00
Ryan Petrello
90bb43ce74 Merge pull request #1292 from ryanpetrello/fix-1291
don't require credentials to relaunch a job
2018-02-19 12:01:42 -05:00
Ryan Petrello
56e3d98e62 don't require credentials to relaunch a job
see: https://github.com/ansible/awx/issues/1291
2018-02-19 11:15:55 -05:00
Matthew Jones
7d51b3b6b6 Merge pull request #1116 from bmduffy/bugfix-pem-validation
[bugfix-pem-validation]
2018-02-19 07:53:19 -05:00
Vadim Rutkovsky
5e25859069 Allow authenticating with Openshift via a token 2018-02-18 16:24:16 +01:00
Brian Duffy
4270e3a17b [bugfix] updated pem validation unit tests 2018-02-18 15:11:42 +00:00
Brian Duffy
098f4eb198 [bugfix-pem-validation] pass flake8 2018-02-18 01:46:31 +00:00
Jake McDermott
ae1167ab15 Merge pull request #1282 from ansible/jakemcdermott-patch-1
fix last run job variable reference
2018-02-16 16:35:35 -05:00
Jake McDermott
5b5411fecd fix last run job variable reference 2018-02-16 16:32:13 -05:00
Brian Duffy
235213bd3b updated regex 2018-02-16 16:06:33 +00:00
Wayne Witzel III
2c71a27630 Merge pull request #1123 from wwitzel3/new-permissions
New RBAC Roles
2018-02-15 16:56:03 -05:00
Alan Rominger
1a6819cdea Merge pull request #630 from AlanCoding/text_type
Fix unicode bugs with log statements
2018-02-15 15:52:29 -05:00
AlanCoding
465e605464 fix unicode bugs with log statements 2018-02-15 15:26:58 -05:00
Alan Rominger
22f1a53266 Merge pull request #1233 from AlanCoding/no_turning_back
Raise 400 error on removal of credential on launch
2018-02-15 14:11:57 -05:00
Ryan Petrello
733b4b874e Merge pull request #1255 from ryanpetrello/license-compliance
changes to license compliance
2018-02-15 09:30:41 -05:00
AlanCoding
3d433350d3 raise 400 error on removal of credential on launch
Definition of removal is providing a `credentials` list on launch
that lacks a type of credential that the job template has.
This assures that every category of credential the job template
has will also exist on jobs ran from that job template.
This restriction already existed, but this makes the endpoint
fail instead of re-adding the credentials.
This change makes manual launch congruent with saved launch
configurations.
2018-02-15 08:16:03 -05:00
Wayne Witzel III
30a5617825 Address PR feedback 2018-02-14 22:53:33 +00:00
Alan Rominger
5935c410e4 Merge pull request #629 from AlanCoding/export
Use --export option for ansible-inventory
2018-02-14 15:56:05 -05:00
Alan Rominger
c90cf7c5e2 Merge pull request #1253 from AlanCoding/group_vars
Use --export option for ansible-inventory
2018-02-14 15:52:00 -05:00
Ryan Petrello
218dfb680e changes to license compliance
now if a license is expired or over the managed node limit, it won't
prevent host creation or Job/JobTemplate launches

see: https://github.com/ansible/ansible-tower/issues/7860
2018-02-14 15:51:19 -05:00
AlanCoding
b01deb393e use --export option for ansible-inventory 2018-02-14 14:48:13 -05:00
Chris Church
410111b8c8 Merge pull request #1241 from cclauss/six.string_types_in_mixins.py
six.string_types in mixins.py
2018-02-14 13:38:44 -05:00
AlanCoding
05e6eda453 use --export option for ansible-inventory 2018-02-14 12:34:41 -05:00
Bill Nottingham
4a4b44955b Merge pull request #1247 from pkoro/anchor-link-fix
Fix in anchor link
2018-02-14 10:37:43 -05:00
Ryan Petrello
9d82098162 Merge pull request #1249 from ryanpetrello/no-travis
we don't use travis for tests; remove .travis.yml
2018-02-14 10:15:48 -05:00
Ryan Petrello
1c62c142f1 we don't use travis for tests; remove .travis.yml 2018-02-14 10:07:17 -05:00
Paschalis Korosoglou
5215bbcbf6 Fix in anchor link 2018-02-14 16:05:58 +02:00
Matthew Jones
0d2daecf49 Merge pull request #1243 from matburt/fix_clustering_isolated
Fix isolated instance clustering implementation
2018-02-14 08:32:24 -05:00
cclauss
552b69592c six.string_types in mixins.py 2018-02-14 08:35:14 +01:00
Matthew Jones
ffe5a92eb9 Update isolated instance capacity calculaltion 2018-02-13 21:51:50 -05:00
Matthew Jones
925d9efecf Fixing up isolated node execution after cluster changes
* Rework queue detection to include control groups and isolated instances
* Fix up development tooling around isolated nodes
* Update unit tests
2018-02-13 21:51:38 -05:00
Jake McDermott
c1b6595a0b Merge pull request #1201 from jakemcdermott/item_copy_ui
api-backed copy ui
2018-02-13 17:42:00 -05:00
Jake McDermott
d4e46a35ce get exact match on ids 2018-02-13 17:15:59 -05:00
Jake McDermott
bf0683f7fe replace usage of all and spread 2018-02-13 17:15:56 -05:00
Jake McDermott
0ff94c63f2 use edit capability for showing copy on most views 2018-02-13 17:15:52 -05:00
Jake McDermott
16153daa14 add e2e test for inventory script copy 2018-02-13 17:15:48 -05:00
Jake McDermott
a680d188c0 implement model based copy for inventory scripts 2018-02-13 17:15:44 -05:00
Jake McDermott
d56f1a0120 add e2e test for credential copy 2018-02-13 17:15:41 -05:00
Jake McDermott
50d95ddc3f implement model-based credential copy 2018-02-13 17:15:37 -05:00
Jake McDermott
21a32f90ce add e2e test for notification template copy 2018-02-13 17:15:34 -05:00
Jake McDermott
09d3e6cd98 implement model-based copy for notification templates 2018-02-13 17:15:30 -05:00
Jake McDermott
29f1d695ae add NotificationTemplate model 2018-02-13 17:15:26 -05:00
Jake McDermott
e0f3e4feb7 add e2e test for inventory copy 2018-02-13 17:15:20 -05:00
Jake McDermott
e9ce9621f2 implement model-based copy for inventories 2018-02-13 17:15:16 -05:00
Jake McDermott
a02eda1bea add e2e test for project copy 2018-02-13 17:15:12 -05:00
Jake McDermott
779385ddb6 implement model based copy for projects 2018-02-13 17:15:05 -05:00
Jake McDermott
e5fd483d06 implement model-based copy for job templates and workflow templates 2018-02-13 17:15:01 -05:00
Jake McDermott
8679651d4c add e2e test for template copy and delete warnings 2018-02-13 17:14:57 -05:00
Jake McDermott
4c988fbc02 add WorkflowJobTemplate model 2018-02-13 17:14:48 -05:00
Jake McDermott
c40feb52b7 add base model unit test 2018-02-13 17:14:43 -05:00
Jake McDermott
78b975b2a9 add copy to base model 2018-02-13 17:14:38 -05:00
Jake McDermott
cfba11f8d7 slight cleanup of templates list controller
lint / fix all of the indentation issues
smaller functions
use a variable for any string a user sees
2018-02-13 17:14:30 -05:00
Jake McDermott
73fa8521d0 add e2e test for job and workflow template copy 2018-02-13 17:14:18 -05:00
Jake McDermott
894f0cf2c5 update current workflow copy implementation to be compatible with recent api changes 2018-02-13 17:13:54 -05:00
Chris Church
67ec811e8d Merge pull request #1186 from cclauss/execfile-file-reduce-StandardError
Miscellaneous Python 3 changes: execfile(), file(), reduce(), StandardError
2018-02-13 15:11:24 -05:00
Chris Church
31d0e55c2a Merge pull request #1175 from cclauss/unicode-to-six-u
Change unicode() --> six.text_type() for Python 3
2018-02-13 15:11:11 -05:00
Ryan Petrello
3a0f2ce2fe Merge pull request #628 from ryanpetrello/sudo-become-adhoc
add support for new "BECOME" prompt in Ansible 2.5+ for adhoc commands
2018-02-13 14:38:30 -05:00
Ryan Petrello
613d48cdbc add support for new "BECOME" prompt in Ansible 2.5+ for adhoc commands
see: https://github.com/ansible/ansible-tower/issues/7850
2018-02-13 14:26:27 -05:00
Alan Rominger
39362aab4b Merge pull request #1204 from AlanCoding/default_omission
Omit placeholder vars with survey password defaults
2018-02-13 12:58:11 -05:00
Alan Rominger
6cb3267ebe Merge pull request #1214 from AlanCoding/fix_schedule_qs
Change schedule queryset logic to avoid server error
2018-02-13 12:54:05 -05:00
Bill Nottingham
f8c66b826a Merge pull request #1217 from wenottingham/eat-your-celery-messages
Tweak celery-related messages.
2018-02-13 11:48:21 -05:00
Bill Nottingham
7b288ef98a Tweak celery-related messages. 2018-02-13 10:52:14 -05:00
AlanCoding
58a94be428 Omit placeholder vars with survey password defaults
WFJT nodes & schedules (launch configs) will accept POST/PATCH/PUT
with variables in extra_data that have $encrypted$ for their value
if a valid survey default exists.

In this case, the variable is simply removed from the extra_data.
This is done so that it does not affect pre-existing value
substitution for $encrypted$ values from the config itself
2018-02-13 09:07:59 -05:00
AlanCoding
960845883d change schedule qs logic, avoid server error 2018-02-13 08:32:00 -05:00
Ryan Petrello
eda53eb548 Merge pull request #627 from ryanpetrello/fix-7898
enforce strings for secret password inputs on Credentials
2018-02-12 17:11:02 -05:00
Ryan Petrello
82e41b40bb enforce strings for secret password inputs on Credentials
see: https://github.com/ansible/ansible-tower/issues/7898
2018-02-12 17:03:32 -05:00
Alan Rominger
0268d575f8 Merge pull request #1193 from AlanCoding/no_sneaking_credential_in
Validation clause for WFJT node to follow credential prompt rule
2018-02-12 12:46:12 -05:00
Brian Duffy
6b5a6e9226 [bugfix-pem-validation] left a print statement in 2018-02-12 16:44:32 +00:00
Ryan Petrello
56d01cda6b Merge pull request #1205 from ryanpetrello/fix-pexpect-test
improve a bwrap test
2018-02-12 10:50:00 -05:00
Ryan Petrello
194c2dcf0b improve a bwrap test 2018-02-12 10:14:37 -05:00
Ryan Petrello
b38be89d1a Merge pull request #1203 from ryanpetrello/update-pexpect
upgrade to the latest pexpect
2018-02-12 09:49:26 -05:00
Ryan Petrello
2a168faf6a upgrade to the latest pexpect
see: https://github.com/ansible/awx/issues/417
2018-02-12 09:18:14 -05:00
Ryan Petrello
83b5377387 Merge pull request #1187 from ryanpetrello/file-your-vars-away-for-a-rainy-day
pass extra vars via file rather than via commandline
2018-02-12 08:48:19 -05:00
cclauss
2e623ad80c Change unicode() --> six.text_type() for Python 3 2018-02-11 21:09:12 +01:00
Ryan Petrello
7e42c54868 Merge pull request #1184 from cclauss/basestring-to-six.string_types
basestring to six.string_types for Python 3
2018-02-10 09:49:16 -05:00
Bill Nottingham
aa5bd9f5bf 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-02-10 09:27:24 -05:00
Wayne Witzel III
13e777f01b Rename migration files 2018-02-10 02:52:26 +00:00
Wayne Witzel III
819b318fe5 Add Org Execute 2018-02-10 02:52:26 +00:00
Wayne Witzel III
9e7bd55579 Add Notification Admin 2018-02-10 02:52:26 +00:00
Wayne Witzel III
fbece6bdde Updating and adding tests for new RBAC roles 2018-02-10 02:52:26 +00:00
Wayne Witzel III
9fdd00785f Add new RBAC role migrations 2018-02-10 02:52:26 +00:00
Wayne Witzel III
b478740f28 Add Workflow Admin 2018-02-10 02:52:25 +00:00
Wayne Witzel III
109841c350 Add Credential Admin role 2018-02-10 02:52:25 +00:00
Wayne Witzel III
6c951aa883 Add Inventory Admin role 2018-02-10 02:52:25 +00:00
Wayne Witzel III
e7e83afd00 Add Project Admin role 2018-02-10 02:52:25 +00:00
Brian Duffy
7d956a3b68 [bugfix-pem-validation] update from code review 2018-02-10 01:08:29 +00:00
AlanCoding
02ac139d5c validation clause for WFJT node to follow cred prompt rule 2018-02-09 16:17:21 -05:00
Jake McDermott
605a2c7e01 Merge pull request #1189 from jakemcdermott/fix-multivault-select
fix recent multi-vault select breakage
2018-02-09 13:47:17 -05:00
Jake McDermott
484caf29b6 fix recent multi-vault select breakage 2018-02-09 12:52:16 -05:00
Jake McDermott
b2b519e48d Merge pull request #1096 from mabashian/169-v1
UI support for prompting on job template schedules
2018-02-09 11:34:25 -05:00
Jake McDermott
e8e6f50573 Merge branch 'devel' into 169-v1 2018-02-09 11:32:40 -05:00
cclauss
260aec543e Misc Python 3 changes: execfile(), file(), reduce(), StandardError 2018-02-09 17:17:05 +01:00
Marliana Lara
7c95cd008f Merge pull request #1152 from marshmalien/feat/ui_clustering_bugs
Fix UI bugs related to UI Clustering
2018-02-09 11:13:59 -05:00
Ryan Petrello
0ff11ac026 Merge pull request #1185 from ryanpetrello/stop-it-uwsgi
fix celery pid restart issues
2018-02-09 11:07:01 -05:00
Ryan Petrello
605c5e3276 fix celery pid restart issues 2018-02-09 11:03:00 -05:00
cclauss
c371b869dc basestring to six.string_types for Python 3 2018-02-09 16:28:36 +01:00
Shane McDonald
476dbe58c5 Merge pull request #1183 from ryanpetrello/swagger
normalize dates in the Swagger output to minimize diffs
2018-02-09 10:18:19 -05:00
Ryan Petrello
3c43aaef21 normalize dates in the Swagger output to minimize diffs 2018-02-09 10:16:27 -05:00
Ryan Petrello
76d5c02e07 Merge pull request #1181 from ryanpetrello/swagger
move swagger doc metadata out of the awx repo
2018-02-09 10:09:03 -05:00
Ryan Petrello
fe02abe630 move swagger doc metadata out of the awx repo 2018-02-09 09:45:23 -05:00
Ryan Petrello
ce9cb24995 Merge pull request #1171 from cclauss/from-six-import-xrange
from six.moves import xrange for Python 3
2018-02-09 09:02:38 -05:00
Jake McDermott
6cb6c61e5c Merge pull request #1176 from jakemcdermott/stabilize-xss
use project details view to check permissions list
2018-02-08 17:32:39 -05:00
Jake McDermott
67e5d083b8 use project details view to check permissions list 2018-02-08 17:26:54 -05:00
Ryan Petrello
5932c54126 Merge pull request #1165 from ryanpetrello/remove_new_in
remove the `new_in_<version>` in API doc gen
2018-02-08 17:07:50 -05:00
cclauss
e1a8b69736 from six.moves import xrange for Python 3 2018-02-08 22:41:33 +01:00
Ryan Petrello
7472026cca remove the new_in_<version> in API doc gen
see: https://github.com/ansible/awx/issues/73
2018-02-08 16:21:22 -05:00
Jake McDermott
8475bdfdc4 Merge pull request #1170 from shanemcd/fix_standalone_docker_wait_fors
Fix wait_fors in standalone Docker installs
2018-02-08 16:08:31 -05:00
Ryan Petrello
bd2f1568fb Merge pull request #626 from ryanpetrello/release_3.2.3
fix a bug for "users should be able to change type of unused credential"
2018-02-08 15:59:22 -05:00
Alan Rominger
b3dcfc8c18 Merge pull request #903 from ansible/item_copy
Implement item copy feature
2018-02-08 15:51:16 -05:00
Ryan Petrello
72715df751 fix a bug for "users should be able to change type of unused credential"
see: https://github.com/ansible/ansible-tower/issues/7516
related: https://github.com/ansible/tower/pull/441
2018-02-08 15:44:14 -05:00
Shane McDonald
6b3ca32827 Fix wait_fors in standalone Docker installs 2018-02-08 15:08:44 -05:00
Ryan Petrello
1ccdb305e3 Merge pull request #1164 from cclauss/use-new-style-exceptions
Modernize Python 2 code to get ready for Python 3
2018-02-08 14:10:25 -05:00
Ryan Petrello
033bec693b Merge pull request #1166 from ryanpetrello/fix-system-job-stdout
properly handle STDOUT_MAX_BYTES_DISPLAY for system jobs
2018-02-08 13:55:59 -05:00
Ryan Petrello
f2c5859fde properly handle STDOUT_MAX_BYTES_DISPLAY for system jobs
see: https://github.com/ansible/ansible-tower/issues/7890
2018-02-08 11:37:05 -05:00
cclauss
e18838a4b7 Modernize Python 2 code to get ready for Python 3 2018-02-08 17:26:22 +01:00
Shane McDonald
48300da443 Merge pull request #1163 from ryanpetrello/swagger
add indention to swagger docs
2018-02-08 10:52:47 -05:00
Ryan Petrello
5b9dc41015 add indention to swagger docs
this will make it easier to spot changes as our APIs change
2018-02-08 10:51:42 -05:00
Alan Rominger
01c6463b1b Merge pull request #1162 from AlanCoding/remove_cred_sf
Remove credential from node and schedule summary fields
2018-02-08 10:37:46 -05:00
Alan Rominger
181399df7a Merge pull request #1159 from AlanCoding/reschedule_msg
Verbose error messages for failure to re-schedule
2018-02-08 10:28:11 -05:00
Ryan Petrello
9bc0a0743b Merge pull request #1161 from ryanpetrello/zone-names
update zoneinfo endpoint to be a list of dicts
2018-02-08 09:48:11 -05:00
Ryan Petrello
c1d0768e37 Merge pull request #1160 from ryanpetrello/fix-old-rrule-dtstart
add a few schedule RRULE parsing improvements
2018-02-08 09:47:59 -05:00
Marliana Lara
d743faf33e Fix UI bugs related to instance groups views
* Fix bug where capacity_adjustment sets to "1.00" when instance is toggled
* Hookup websockets for instance group jobs and instance jobs
* Add Wait spinner to Capacity_Adjuster, Instance association modal, and Instance group delete
* Add updateDataset event listener to update instance and instanceGroups list after smartSearch query
2018-02-08 09:33:24 -05:00
AlanCoding
0f66892d06 remove credential from node and schedule summary fields 2018-02-08 09:22:55 -05:00
Ryan Petrello
c866d85b8c update zoneinfo endpoint to be a list of dicts 2018-02-08 09:12:26 -05:00
Ryan Petrello
3c799b007e don't allow rrule values that contain both COUNT and UNTIL
see: https://github.com/ansible/ansible-tower/issues/7887
2018-02-08 08:59:52 -05:00
Ryan Petrello
887f16023a improve detection of expensive DTSTART RRULE values 2018-02-08 08:54:30 -05:00
AlanCoding
87b59903a5 verbose error messages for failure to re-schedule 2018-02-08 08:46:56 -05:00
Bill Nottingham
e982f6ed06 Merge pull request #1154 from wenottingham/namespaces-the-final-frontier
Have bubblewrap mount a new /proc in the wrapped environment.
2018-02-07 17:24:38 -05:00
Ryan Petrello
fb5428dd63 Merge pull request #1151 from ansible/jakemcdermott-patch-1-1
always return schema from get_default_schema
2018-02-07 16:56:48 -05:00
Alan Rominger
b38aa3dfb6 Merge pull request #1153 from AlanCoding/fix_wfjt_scheduling
fix bug scheduling WFJT without prompts
2018-02-07 15:49:13 -05:00
Bill Nottingham
c1a0e2cd16 Have bubblewrap mount a new /proc in the wrapped environment.
Since we're running with a new pid namespace, we should have
a new /proc that is in that namespace. Otherwise things will
be weird.
2018-02-07 15:47:03 -05:00
AlanCoding
fe69a23a4e fix bug scheduling WFJT without prompts 2018-02-07 14:34:25 -05:00
Jake McDermott
90f555d684 always return schema from get_default_schema 2018-02-07 13:42:01 -05:00
Matthew Jones
4002f2071d Adding instance group policy unit tests
also remove async call for applying topology change
2018-02-07 11:14:53 -05:00
Ryan Petrello
244dfa1c92 Merge pull request #1145 from ryanpetrello/swagger
fix a bad swagger-related import that breaks the build
2018-02-07 09:12:28 -05:00
Ryan Petrello
1adb4cefec fix a bad swagger-related import that breaks the build 2018-02-07 08:56:59 -05:00
Bill Nottingham
4abcbf949a Merge pull request #1142 from geerlingguy/fix-some-text
Fix grammar for tasks - replace 'state' with 'stage'.
2018-02-06 19:28:20 -05:00
Jeff Geerling
19f0b9ba92 Fix grammar for tasks - replace 'state' with 'stage'. 2018-02-06 16:57:59 -06:00
Ryan Petrello
b1c4c75360 Merge pull request #1141 from ryanpetrello/swagger
a bit of extra Swagger doc tinkering
2018-02-06 14:33:24 -05:00
Ryan Petrello
cc3659d375 fix a busted swagger import 2018-02-06 13:43:31 -05:00
Ryan Petrello
b1695fe107 add instructions for generating Swagger/OpenAPI docs 2018-02-06 13:37:33 -05:00
Jake McDermott
8cd0870253 Merge pull request #1135 from chrismeyersfsu/tests-recent_jobs_xss
xss test for per-host recent jobs popup
2018-02-06 11:51:05 -05:00
Ryan Petrello
84dc40d141 Merge pull request #1124 from ryanpetrello/swagger
add support for building swagger/OpenAPI JSON
2018-02-06 11:12:36 -05:00
Ryan Petrello
8b976031cb use VERSION_TARGET for Swagger doc generation 2018-02-06 10:48:51 -05:00
Chris Meyers
aaf87c0c04 xss test for per-host recent jobs popup 2018-02-06 10:37:00 -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
527594285f more Swagger template markup 2018-02-06 10:12:58 -05:00
Ryan Petrello
07dfab648c add some tests to prove that OpenAPI JSON compilation works 2018-02-06 10:12:58 -05:00
Ryan Petrello
10974159b5 add support for marking Swagger paths deprecated 2018-02-06 10:12:58 -05:00
Ryan Petrello
ac7c5f8648 clean up API markdown docs 2018-02-06 10:12:57 -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
c61efc0af8 Add information on enabled flag 2018-02-05 15:44:26 -05:00
Ryan Petrello
772fcc9149 Merge pull request #1097 from rbywater/feature/preferipv4
Add ability to select to prefer IPv4 addresses for ansible_ssh_host
2018-02-05 14:57:10 -05:00
Matthew Jones
8e94a9e599 Adding capacity docs
Updating capacity for callback jobs to include parent process impact
2018-02-05 09:49:01 -05:00
Shane McDonald
1e9b0c2786 Merge pull request #1130 from shanemcd/fix-etcd-template
Fix variable reference in k8s etcd template
2018-02-05 09:18:20 -05:00
Richard Bywater
5e5790e7d1 Use correct source_vars syntax 2018-02-05 12:45:52 +13:00
Richard Bywater
9f8b9b8d7f Fix unit test 2018-02-05 08:55:10 +13:00
Richard Bywater
6d69087db8 Add prefer_ipv4 to whitelist and add unit test for config value 2018-02-05 08:55:10 +13:00
Richard Bywater
a737663dde Add ability to select to prefer IPv4 addresses for ansible_ssh_host
Currently Cloudforms can return a mix of IPv4 and IPv6 addresses in the
ipaddresses field and this mix comes in a "random" order (that is the
first entry may be IPv4 sometimes but IPv6 other times). If you wish to
always use IPv4 for the ansible_ssh_host value then this is problematic.

This change adds a new prefer_ipv4 flag which will look for the first
IPv4 address in the ipaddresses list and uses that instead of just the
first entry.
2018-02-05 08:55:10 +13:00
Shane McDonald
dce934577b Fix variable reference in k8s etcd template 2018-02-03 10:29:53 -05:00
Jake McDermott
3d421cc595 Merge pull request #1078 from jakemcdermott/saml-ldap-updates
update configuration views for multiple LDAP servers, SAML 2FA, and SAML attribute mapping
2018-02-02 12:15:44 -05:00
Ryan Petrello
93c8cc9f8e Merge pull request #696 from jladdjr/awx_349_custom_cred_write_multiple_files
Feature: Multi-file support for Credential Types
2018-02-02 11:39:11 -05:00
Chris Meyers
1808559586 Merge pull request #1102 from chrismeyersfsu/tests-job_schedules_xss
add xss test for jobs schedules
2018-02-02 11:29:42 -05:00
Jim Ladd
d558299b1f Add test for injecting multiple files 2018-02-02 11:07:13 -05:00
Bill Nottingham
ef5b040f70 Merge pull request #1121 from jeis2497052/devel
Propose small spelling changes
2018-02-02 10:55:23 -05:00
John Eismeier
026cbeb018 Propose small spelling changes 2018-02-02 10:49:55 -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
ed1bacdc08 Merge pull request #1090 from ryanpetrello/awx-ansible-overview
add documentation for how awx uses/interacts with ansible
2018-02-02 08:44:11 -05:00
Jake McDermott
f39fa35d86 Merge pull request #1103 from mabashian/1091-status-icons
Tweaked smart status icon styling to prevent overlap with action buttons
2018-02-01 23:03:37 -05:00
Matthew Jones
9266444b19 Merge pull request #1117 from ryanpetrello/fatal-celery-reload
run the celery reload in a shell so the uwsgi hook isn't fatal on fail
2018-02-01 22:39:00 -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
Brian Duffy
68057560e5 [bugfix-pem-validation] added unit test to simulate catted data
Signed-off-by: Brian Duffy <bmduffy@gmail.com>
2018-02-02 01:20:31 +00:00
Brian Duffy
047ff7b55f [bugfix-pem-validation]
Signed-off-by: Brian Duffy <bmduffy@gmail.com>
2018-02-01 23:50:02 +00:00
Jake McDermott
ecacf64c28 Merge pull request #1105 from mabashian/1023-activity-stream-inv-link
Fixed inventory links in activity stream
2018-02-01 18:23:54 -05:00
Jake McDermott
d01e6ab8b6 Merge pull request #1106 from mabashian/1014-team-link-user-permissions
Fixed team links in users permissions tab
2018-02-01 18:23:00 -05:00
Jake McDermott
5653b47aa3 Merge pull request #1112 from mabashian/994-empty-list-text
Updated empty list text
2018-02-01 18:22:11 -05:00
Marliana Lara
d4a461e5b4 Switch Array.map() in favor of Array.forEach() 2018-02-01 16:57:10 -05:00
Marliana Lara
f9265ee329 Create an InstancePolicyList directive to replace the pre-existing
modal implementation

* Remove Instance-List-Policy controller
* Replace let with const when values aren't being reassigned
* Update CapacityAdjuster directive to use replace:true
* Assign less values that are specific to element
* Add more error handling
2018-02-01 16:57:10 -05:00
Marliana Lara
fa70d108d7 Apply UI feedback changes
* Remove input slider css mixin
* Remove unused dependencies
* Improve error handling by plugging in the ProcessErrors factory
2018-02-01 16:57:10 -05:00
Marliana Lara
e07f441e32 Add Instance enable/disable toggle to list 2018-02-01 16:57:10 -05:00
Marliana Lara
70786c53a7 Add capacity adjuster directive 2018-02-01 16:57:10 -05:00
Marliana Lara
342958ece3 Add stringToNumber directive 2018-02-01 16:57:09 -05:00
Marliana Lara
368101812c Add Instance and InstanceGroup models 2018-02-01 16:57:09 -05:00
Matthew Jones
70bf78e29f Apply capacity algorithm changes
* This also adds fields to the instance view for tracking cpu and
  memory usage as well as information on what the capacity ranges are
* Also adds a flag for enabling/disabling instances which removes them
  from all queues and has them stop processing new work
* The capacity is now based almost exclusively on some value relative
  to forks
* capacity_adjustment allows you to commit an instance to a certain
  amount of forks, cpu focused or memory focused
* Each job run adds a single fork overhead (that's the reasoning
  behind the +1)
2018-02-01 16:57:09 -05:00
Matthew Jones
6a85fc38dd Add scalable cluster kubernetes support 2018-02-01 16:57:09 -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
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
Matthew Jones
56abfa732e Adding initial instance group policies
and policy evaluation planner
2018-02-01 16:56:15 -05:00
Matthew Jones
c819560d39 Add automatic deprovisioning support, only enabled for openshift
* Implement a config watcher for service restarts
* If the configmap bind point changes then restart all services
2018-02-01 16:51:40 -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
Matthew Jones
624289bed7 Add support for directly managing instance groups
* Associating/Disassociating an instance with a group
* Triggering a topology rebuild on that change
* Force rabbitmq cleanup of offline nodes
* Automatically check for dependent service startup
* Fetch and set hostname for celery so it doesn't clobber other
  celeries
* Rely on celery init signals to dyanmically set listen queues
* Removing old total_capacity instance manager property
2018-02-01 16:46:44 -05:00
Matthew Jones
6ede1dfbea Update openshift installer to support rabbitmq autoscale
* Switch rabbitmq container out for one that supports autoscale
* Add etcd pod to support autoscale negotiation
2018-02-01 16:38:10 -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
7bc3d85913 Merge pull request #1114 from ryanpetrello/fix-dateutil-bug
work around a bug in dateutil that incorrectly parses Z dates
2018-02-01 16:06:13 -05:00
Ryan Petrello
0a8df7fde2 work around a bug in dateutil that incorrectly parses Z dates
related: https://github.com/dateutil/dateutil/issues/349
2018-02-01 15:51:59 -05:00
Ryan Petrello
b39269c4c2 Merge pull request #1113 from ryanpetrello/fix-schedule-related
fix a bug which can break the schedules list endpoint
2018-02-01 14:50:37 -05:00
Chris Meyers
09981c0020 Merge pull request #1107 from ansible/docs-saml2
Extend saml docs to include new fields added
2018-02-01 14:33:51 -05:00
Ryan Petrello
81bdbef785 fix a bug which can break the schedules list endpoint
see: https://github.com/ansible/ansible-tower/issues/7881
related: https://github.com/ansible/awx/pull/1095
2018-02-01 14:30:56 -05:00
Chris Meyers
3c541a4695 Merge pull request #1111 from ansible/jakemcdermott-update-ldap-docs
Updates to ldap documentation
2018-02-01 14:30:23 -05:00
Jake McDermott
5a1ae9b816 Update ldap.md 2018-02-01 13:57:07 -05:00
mabashian
8c261892ee Updated empty list text 2018-02-01 13:54:33 -05:00
Matthew Jones
b89d4349c0 Merge pull request #1080 from Xiol/feat-projects-vol
Allow AWX projects directory to be a volume
2018-02-01 13:17:34 -05:00
Jake McDermott
3e98363811 Merge pull request #1104 from ansible/doc-formatting
Update saml.md
2018-02-01 11:55:46 -05:00
John Mitchell
7e400413db Merge pull request #625 from jlmitch5/fixXSS
fix xss vulnerabilities
2018-02-01 11:49:35 -05:00
Chris Meyers
f24289b2ba Extend saml docs to include new fields added 2018-02-01 11:27:01 -05:00
mabashian
9170c557a7 Fixed team links in users permissions tab 2018-02-01 11:23:51 -05:00
Chris Meyers
a47b403f8d Update saml.md 2018-02-01 11:05:08 -05:00
mabashian
83aa7bfac4 Fixed inventory links in activity stream 2018-02-01 11:04:16 -05:00
Chris Meyers
290a296f9f add xss test for jobs schedules
* Test for tooltip regression on job schedules list entries
2018-02-01 10:55:13 -05:00
mabashian
db0b2e6cb6 Tweaked smart status icon styling to prevent overlap with action buttons 2018-02-01 10:44:08 -05:00
Ryan Petrello
f391b7ace4 Merge pull request #1095 from ryanpetrello/schedule-related-proj-inv
add related links to the inventory and project for a schedule
2018-01-31 15:53:13 -05:00
Ryan Petrello
008c9e4320 Merge pull request #1094 from ryanpetrello/leaky-mock
remove some leaky mock.patch() that were causing sporadic test failures
2018-01-31 15:52:58 -05:00
mabashian
e57d200d6e Implemented generic prompt modal for launching and saving launch configurations. Added UI support for prompting on job template schedules. 2018-01-31 15:40:23 -05:00
Ryan Petrello
8ddc1c61ef add related links to the inventory and project for a schedule
see: https://github.com/ansible/awx/issues/276
2018-01-31 15:18:11 -05:00
Ryan Petrello
0aa6c7b83f remove some leaky mock.patch() that were causing sporadic test failures 2018-01-31 15:12:59 -05:00
Jake McDermott
e43879d44e Merge pull request #1092 from dovshap/patch-1
Update INSTALL.md
2018-01-31 14:11:11 -05:00
Ryan Petrello
2a6f6111dc add documentation for how awx uses/interacts with ansible 2018-01-31 14:02:18 -05:00
dovshap
6b0659d63a Update INSTALL.md
fix bad link in contents
2018-01-31 11:00:03 -08:00
Jim Ladd
4c1dddcaf9 Respond to PR feedback 2018-01-31 11:22:01 -05:00
Shane McDonald
426e901cdf Merge pull request #1089 from KAMiKAZOW/patch-1
Fix CentOS typo in CONTRIBUTING.md
2018-01-30 21:11:10 -05:00
KAMiKAZOW
ac55f93cfb CentOS typo in CONTRIBUTING.md 2018-01-31 03:07:52 +01:00
Ryan Petrello
c32c3db35e Merge pull request #1086 from ryanpetrello/fix-enabled-sso-auth
fix a bug which causes /api/v2/auth/ to list disabled auth backends
2018-01-30 16:35:26 -05:00
John Mitchell
28596b7d5e fix xss vulnerabilities
- on host recent jobs popover
- on schedule name tooltip
2018-01-30 16:30:00 -05:00
Ryan Petrello
20a999f846 Merge pull request #1085 from ryanpetrello/fix-7876
fix a bug in custom venv support that breaks legacy `POST /api/v1/jobs`
2018-01-30 16:21:10 -05:00
Ryan Petrello
81af34fce3 fix a bug which causes /api/v2/auth/ to list disabled auth backends
see: https://github.com/ansible/awx/issues/1073
2018-01-30 16:20:29 -05:00
Ryan Petrello
8fed469975 fix a bug in custom venv support that breaks legacy POST /api/v1/jobs
see: https://github.com/ansible/ansible-tower/issues/7876
2018-01-30 15:29:11 -05:00
Jake McDermott
a2e274d1f9 Merge pull request #623 from jakemcdermott/fix-ansible-tower-7871
bump templates form credential_types page limit
2018-01-30 14:48:36 -05:00
Ryan Petrello
d96cc51431 Merge pull request #624 from ryanpetrello/release_3.2.3
fix a bug when testing UDP-based logging configuration
2018-01-30 10:27:39 -05:00
Dane Elwell
c6d4a62263 Allow AWX projects directory to be a volume
Signed-off-by: Dane Elwell <dane.elwell@ukfast.co.uk>
2018-01-30 09:49:44 +00:00
Jake McDermott
4cd6a6e566 add fields for saml + 2fa 2018-01-30 00:28:13 -05:00
Jake McDermott
ed138fccf6 add forms + select for additional ldap servers 2018-01-30 00:28:02 -05:00
Jake McDermott
44d223b6c9 add fields for team and organization saml attribute mappings 2018-01-30 00:27:51 -05:00
Ryan Petrello
a9b77eb706 Merge pull request #1066 from ryanpetrello/fix-schedules-without-inventories
fix a few bugs for scheduled jobs that run without inventories
2018-01-29 16:08:17 -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
b0a755d7b5 Merge pull request #1076 from ryanpetrello/rrule-until-changes
adhere to RFC5545 regarding UNTIL timezones
2018-01-29 13:31:17 -05:00
Ryan Petrello
6753f1ca35 adhere to RFC5545 regarding UNTIL timezones
If the "DTSTART" property is specified as a date with UTC time or a date with
local time and time zone reference, then the UNTIL rule part MUST be specified
as a date with UTC time.
2018-01-29 12:42:31 -05:00
Ryan Petrello
982539f444 fix a bug when testing UDP-based logging configuration
see: https://github.com/ansible/ansible-tower/issues/7868
2018-01-29 12:05:51 -05:00
Ryan Petrello
f8d9d5f51a Merge pull request #1067 from ryanpetrello/fix-7869
don't allow distant DTSTART values for schedules; it's slow
2018-01-29 12:00:36 -05:00
Wayne Witzel III
bad8c65321 Merge pull request #1074 from wwitzel3/devel
Load Celery inspector manually when needed
2018-01-29 12:00:24 -05:00
Ryan Petrello
6f0c937236 don't allow distant DTSTART values for schedules; it's slow
see: https://github.com/ansible/ansible-tower/issues/7869
2018-01-29 10:16:03 -05:00
Wayne Witzel III
55a616cba6 Load Celery inspector manually when needed 2018-01-29 14:57:03 +00:00
Jake McDermott
4c79e6912e bump templates form credential_types page limit 2018-01-28 21:50:30 -05:00
Jim Ladd
4b13bcdce2 Update tests for custom credentials 2018-01-28 21:02:48 -05:00
Jim Ladd
18178c83b3 Validate single and multi-file injection 2018-01-28 21:02:47 -05:00
Jim Ladd
7aa1ae69b3 Add backwards compatibility for injecting single file 2018-01-28 20:50:44 -05:00
Jim Ladd
286a70f2ca Add support for multi-file injection in custom creds 2018-01-28 20:50:43 -05:00
Shane McDonald
87365e5969 Merge pull request #1071 from jakemcdermott/set-selenium-container-image-tags
use selenium hub / node container image version '3.8.1-erbium'
2018-01-28 16:37:03 -05:00
Jake McDermott
7e829e3a9d use selenium hub / node container image version '3.8.1-erbium' 2018-01-28 16:05:29 -05:00
Shane McDonald
b8cba916a5 Merge pull request #1069 from tdgroot/develop-dockerfile_rsync
Add rsync to Dockerfile
2018-01-27 10:14:36 -05:00
Timon de Groot
dc96a1730e Add rsync to Dockerfile 2018-01-27 11:54:51 +01:00
Matthew Jones
d4983ea10d Merge pull request #856 from ewjoachim/docker-compose-491
Fixes #491: Adding Docker Compose installer
2018-01-26 08:33:40 -05:00
Joachim Jablon
209bdd00a1 related #491 Bacpkort #1007 2018-01-26 07:09:28 +01:00
Joachim Jablon
c4efbd62bc related #491 Docker Compose installer
Signed-off-by: Joachim Jablon <ewjoachim@gmail.com>
2018-01-26 07:09:28 +01:00
Joachim Jablon
287a3bc8d4 related #491 Documentation for Docker Compose
Signed-off-by: Joachim Jablon <ewjoachim@gmail.com>
2018-01-26 07:09:28 +01:00
Joachim Jablon
9fefc26528 related #491 Split local_docker docker into 2 task files
Signed-off-by: Joachim Jablon <ewjoachim@gmail.com>
2018-01-26 07:09:28 +01:00
Ryan Petrello
e2d4ef31fd Merge pull request #1061 from ryanpetrello/fix-1042
fix a unicode bug in the stdout endpoint when ?content_encoding=base64
2018-01-25 16:07:21 -05:00
Ryan Petrello
a15e257b9e fix a unicode bug in the stdout endpoint when ?content_encoding=base64
see: https://github.com/ansible/awx/issues/1042
2018-01-25 15:53:43 -05:00
Ryan Petrello
a56370fed5 Merge pull request #1059 from ryanpetrello/reload-celery
reload the entire celery worker pool when uwsgi reloads the Python app
2018-01-25 15:12:22 -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
Ryan Petrello
9860b38438 Merge pull request #1055 from ryanpetrello/lazybaron
only import the redbaron library on-demand
2018-01-25 13:09:58 -05:00
Ryan Petrello
ef80ecd3b6 only import the redbaron library on-demand
redbaron is a library we use to facilitate parsing local settings files;
at _import_ time it generates a parse tree and caches it to disk at
`/tmp`; this process is _really time consuming, and only necessary if
we're actually *using* the library

right now, we're importing this library and paying the penalty
_every_ time we load the awx application
2018-01-25 10:23:44 -05:00
Ryan Petrello
50290a9063 Merge pull request #1024 from ryanpetrello/fix-710-schedule-timezone
support TZID= in schedule rrules
2018-01-25 10:14:57 -05:00
Shane McDonald
fefa4a8bf4 Merge pull request #1049 from ansible/jakemcdermott-fix-1045
add minimum git version to install guide
2018-01-24 15:40:10 -05:00
Jake McDermott
546f88c74d add minimum git version 2018-01-24 15:12:58 -05:00
Matthew Jones
42098bfa6d Merge pull request #621 from ryanpetrello/set_stat_workflow_race_condition
don't process artifacts from custom `set_stat` calls asynchronously
2018-01-24 10:27:19 -05:00
Jake McDermott
afa1fb489c Merge pull request #1044 from jakemcdermott/fix-948
bump templates form credential_types page limit
2018-01-24 09:35:43 -05:00
Wayne Witzel III
b205630490 Merge pull request #622 from wwitzel3/release_3.2.3
Wait for Slack RTM API websocket connection to be established
2018-01-24 08:59:45 -05:00
Wayne Witzel III
aa469d730e Wait for Slack RTM API websocket connection to be established 2018-01-24 13:48:42 +00:00
Jake McDermott
3571abb42b bump templates form credential_types page limit 2018-01-23 18:28:59 -05:00
Ryan Petrello
d57470ce49 don't process artifacts from custom set_stat calls asynchronously
previously, we persisted custom artifacts to the database on
`Job.artifacts` via the callback receiver.  when the callback receiver
is backed up processing events, this can result in race conditions for
workflows where a playbook calls `set_stat()`, but the artifact data is
not persisted in the database before the next job in the workflow starts

see: https://github.com/ansible/ansible-tower/issues/7831
2018-01-23 17:09:23 -05:00
Jake McDermott
21425db889 Merge pull request #1041 from jakemcdermott/fix-multicred-bugs
Fix multicred bugs
2018-01-23 13:34:35 -05:00
Jake McDermott
cc64657749 use correct handle for modal tag deselect 2018-01-23 10:32:13 -05:00
Jake McDermott
7300c2ccc1 fix unexpected deselect when selecting no-vault-id vault credentials 2018-01-23 10:19:19 -05:00
Jake McDermott
7c596039c5 fix modal exit button close 2018-01-23 09:39:59 -05:00
Ryan Petrello
9857c8272e add more tests for weird timezone/DST boundaries in schedules
see: https://github.com/ansible/awx/pull/1024
2018-01-22 14:57:57 -05:00
Shane McDonald
797169317c Merge pull request #1037 from shanemcd/devel
Use newer version of git in dev image
2018-01-22 14:43:09 -05:00
Shane McDonald
67c6591f6f Use newer version of git in dev image
More fallout from #982
2018-01-22 13:57:44 -05:00
Ryan Petrello
15906b7e3c support TZID= in schedule rrules
this commit allows schedule `rrule` strings to include local timezone
information via TZID=NNNNN; occurrences are _generated_ in the local
time specific by the user (or UTC, if e.g., DTSTART:YYYYMMDDTHHMMSSZ)
while Schedule.next_run, Schedule.dtstart, and Schedule.dtend will be
stored in the UTC equivalent (i.e., the scheduler will still do math on
"what to run next" based on UTC datetimes).

in addition to this change, there is now a new API endpoint,
`/api/v2/schedules/preview/`, which takes an rrule and shows the next
10 occurrences in local and UTC time.

see: https://github.com/ansible/ansible-tower/issues/823
related: https://github.com/dateutil/dateutil/issues/614
2018-01-22 11:50:00 -05:00
Ryan Petrello
fdd2b84804 Merge pull request #1036 from ryanpetrello/fix-955
fix a bug that breaks workflows w/ a survey password + inventory sync
2018-01-22 10:55:51 -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
Shane McDonald
09d63b4883 Merge pull request #1029 from jakemcdermott/fix-navbar
fix navbar / breadcrumb issue
2018-01-19 13:54:56 -05:00
Jake McDermott
b96e33ea50 fix navbar / breadcrumb issue 2018-01-19 13:52:11 -05:00
Matthew Jones
71d23e8c81 Merge pull request #1007 from wallnerryan/alternate-dns-servers
support dns servers: fixes https://github.com/ansible/awx/issues/1004
2018-01-19 08:58:29 -05:00
Ryan Petrello
073feb74cb Merge pull request #1015 from ryanpetrello/fix-980
fix another bug that breaks the JT callback process
2018-01-18 14:26:48 -05:00
Ryan Petrello
43f19cc94b fix another bug that breaks the JT callback process
see: https://github.com/ansible/awx/issues/980
related: 17cd0595d7
2018-01-18 13:17:06 -05:00
Ryan Petrello
ef312f0030 Merge pull request #1011 from ryanpetrello/fix-1010
don't require an IRC password in the notification UI
2018-01-18 12:55:57 -05:00
Christian Adams
d0fec0f19c Merge pull request #1013 from rooftopcellist/rdb_docs
added RDB info to docs
2018-01-18 12:33:00 -05:00
adamscmRH
1e14221625 added RDB info to docs 2018-01-18 11:48:26 -05:00
Matthew Jones
b6a901ac51 Merge pull request #1012 from wwitzel3/devel
first-parent requires git >= 1.8.4
2018-01-18 11:36:33 -05:00
Wayne Witzel III
1af0ee2f8c first-parent requires git >= 1.8.4 2018-01-18 16:12:23 +00:00
Ryan Petrello
b62ac6fbe4 Merge pull request #1001 from ryanpetrello/fix-7852
refactor credential injection for builtin types
2018-01-18 10:49:03 -05:00
Ryan Petrello
e5aaeedc43 don't require an IRC password in the notification UI
see: https://github.com/ansible/awx/issues/1010
2018-01-18 09:14:22 -05:00
Wayne Witzel III
fc5c5400cd Merge pull request #1003 from wwitzel3/devel
Fix notification_data attempting to access name property of an int
2018-01-18 08:55:50 -05:00
Wayne Witzel III
95bead2bb2 Extend notification_data test 2018-01-18 13:30:12 +00:00
Ryan Wallner
bcbda23aee support dns servers 2018-01-18 07:46:09 -05:00
Jake McDermott
5a21783013 Merge pull request #976 from jakemcdermott/multivault-templates-form
multivault select for templates form
2018-01-17 23:20:44 -05:00
Jake McDermott
e33604de71 show credential kind icon on credential tags 2018-01-17 23:07:34 -05:00
Jake McDermott
c50c63a9ff default to machine credential type 2018-01-17 23:07:23 -05:00
Jake McDermott
916d91cbc7 use updated credentials endpoint 2018-01-17 23:07:10 -05:00
Jake McDermott
79bd8b2c72 show vault id 2018-01-17 22:02:54 -05:00
Jake McDermott
5939116b0a update e2e and smoke tests for multivault select 2018-01-17 22:02:43 -05:00
Jake McDermott
6759e60428 add working multivault select for templates form 2018-01-17 22:02:30 -05:00
Jake McDermott
ef8af79700 load multiselect list when vault kind is selected 2018-01-17 22:02:16 -05:00
Ryan Petrello
dbb4d2b011 refactor credential injection for builtin types
this cleanups up a _lot_ of code duplication that we have for builtin
credential types. it will allow customers to setup custom inventory
sources that utilize builtin credential types (e.g., a custom inventory
script that could use an AzureRM credential)

see: https://github.com/ansible/ansible-tower/issues/7852
2018-01-17 16:50:28 -05:00
Wayne Witzel III
4a28065dbb Fix notification_data attempting to access name property of an int 2018-01-17 21:46:49 +00:00
Ryan Petrello
5387846cbb Merge pull request #992 from ryanpetrello/optimize-output-event-filter
optimize OutputEventFilter for large stdout streams
2018-01-17 14:24:15 -05:00
Ryan Petrello
6b247f1f24 Merge pull request #1000 from ryanpetrello/fix-7853
fix a minor unicode handling bug in project names
2018-01-17 14:15:15 -05:00
Ryan Petrello
838b793704 fix a minor unicode handling bug in project names
see: https://github.com/ansible/ansible-tower/issues/7853
2018-01-17 13:37:06 -05:00
Ryan Petrello
3cb8c98a41 Merge pull request #998 from ryanpetrello/fix-980
fix a bug which broke the callback plugin launch process
2018-01-17 12:12:05 -05:00
Ryan Petrello
18f254fc28 Merge pull request #769 from rbywater/feature/cloudformssuffix
Add ability to append suffix to host names for Cloudforms Inventory
2018-01-17 11:43:10 -05:00
Michael Abashian
9c6c6ce816 Merge pull request #990 from mabashian/975-delete-template
Fixed delete on templates list
2018-01-17 11:40:42 -05:00
Chris Meyers
6699be95bf Merge pull request #995 from chrismeyersfsu/improvement-fact_cache_log_job
add job_id to fact cache log output
2018-01-17 11:30:57 -05:00
Ryan Petrello
17cd0595d7 fix a bug which broke the callback plugin launch process
see: https://github.com/ansible/awx/issues/980
2018-01-17 11:28:13 -05:00
Chris Meyers
0402064c0f expose ansible_facts_modified 2018-01-17 10:28:34 -05:00
Chris Meyers
e33265e12c add job_id to fact cache log output 2018-01-17 10:19:27 -05:00
Richard Bywater
b8c76301de Add validation to ensure leading fullstop for suffix 2018-01-17 13:20:59 +13:00
Ryan Petrello
51f7907a01 optimize OutputEventFilter for large stdout streams
update our event data search algorithm to be a bit lazier in event data
discovery; this drastically improves processing speeds for stdout >5MB

see: https://github.com/ansible/awx/issues/417
2018-01-16 14:41:35 -05:00
jlmitch5
1a98cedc0f Merge pull request #993 from ansible/jlmitch5-patch-1
update css so that scroll bar doesn't take padding from main content area
2018-01-16 14:28:14 -05:00
jlmitch5
db974d4fd4 update css so that scroll bar doesn't take padding from main content area 2018-01-16 14:22:08 -05:00
mabashian
d6e663eff0 Fixed delete on templates list 2018-01-16 08:36:38 -05:00
Christian Adams
ccb40c8c68 Merge pull request #986 from rooftopcellist/xtra_vars
extends JT xtra var error msg
2018-01-16 00:58:59 -05:00
Ryan Petrello
6eb04de1a7 Merge pull request #978 from ryanpetrello/fix-7841
fix a minor bug in the JT launch related to support for zero credentials
2018-01-15 20:35:28 -05:00
Shane McDonald
cad5c5e79a Merge pull request #987 from shanemcd/devel
Fix sdist builder image
2018-01-15 20:25:16 -05:00
Shane McDonald
97472cb91b Fix sdist builder image
Fallout from https://github.com/ansible/awx/pull/982
2018-01-15 15:39:48 -05:00
adamscmRH
0c63ea0052 extends JT xtra var error msg 2018-01-15 15:05:03 -05:00
Ryan Petrello
fa9c6287f7 Merge pull request #620 from ryanpetrello/fix-815
don't overwrite env['ANSIBLE_LIBRARY'] when fact caching is enabled
2018-01-15 13:55:42 -05:00
Ryan Petrello
2955842c44 don't overwrite env['ANSIBLE_LIBRARY'] when fact caching is enabled
see: https://github.com/ansible/awx/issues/815
see: https://github.com/ansible/ansible-tower/issues/7830
2018-01-15 13:39:46 -05:00
Ryan Petrello
64028dba66 Merge pull request #619 from ryanpetrello/file_based_tower_fact_cache
replace our memcached-based fact cache implementation with local files
2018-01-15 11:57:18 -05:00
Chris Meyers
2b1d2b2976 Merge pull request #805 from chrismeyersfsu/feature-saml_import_attr
allow for saml attributes to define team and org
2018-01-15 11:57:05 -05:00
Ryan Petrello
e1d50a43fd only allow facts to cache in the proper file system location 2018-01-15 11:45:49 -05:00
Shane McDonald
7d51b1cb9d Merge pull request #982 from shanemcd/devel
Use first parent commit when determining version from tags
2018-01-15 11:04:23 -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
Ryan Petrello
983b192a45 replace our memcached-based fact cache implementation with local files
see: https://github.com/ansible/ansible-tower/issues/7840
2018-01-15 09:16:44 -05:00
Richard Bywater
b5db652050 Clarify that leading fullstop needed 2018-01-14 14:05:34 +13:00
Jake McDermott
e699402115 Merge pull request #979 from mabashian/template-list-actions
Added old schedule/copy logic to template list
2018-01-12 20:19:31 -05:00
mabashian
d012f5cd99 Added old schedule/copy logic to template list until it can be refactored 2018-01-12 12:23:29 -05:00
Ryan Petrello
e0c04df1ee Merge pull request #618 from ryanpetrello/become_who_you_were_meant_to_be
add support for new "BECOME" prompt in Ansible 2.5+
2018-01-12 11:45:08 -05:00
Ryan Petrello
4a2ca20b60 fix a minor bug in the JT launch related to support for zero credentials
see: https://github.com/ansible/ansible-tower/issues/7841
2018-01-12 11:37:33 -05:00
Ryan Petrello
563f730268 add support for new "BECOME" prompt in Ansible 2.5+
see: https://github.com/ansible/ansible-tower/issues/7850
2018-01-12 10:40:40 -05:00
Chris Meyers
e49dfd6ee2 only run saml pipeline if saml social auth
* Do not trigger saml social auth pipeline methods if the user logging
in was not created by the saml social auth backend.
2018-01-11 16:20:49 -05:00
Jake McDermott
fb414802fa Merge pull request #970 from ansible/smoketest-fixes-for-lists
update test selector for add button dropdown arrow
2018-01-11 16:13:51 -05:00
Michael Abashian
00f400e839 Merge pull request #971 from mabashian/892-delete-inv-src
Fixed a few straggling success/error promises and replaced with then/catch
2018-01-11 14:51:29 -05:00
Chris Meyers
234e33df0e Merge pull request #959 from chrismeyersfsu/feature-multiple_ldap_servers
implement multiple ldap servers
2018-01-11 14:45:38 -05:00
mabashian
f9b0a3121f Fixed a few straggling success/error promises and replaced with then/catch 2018-01-11 13:59:46 -05:00
Jake McDermott
0afdca3674 update test selector for add button dropdown arrow 2018-01-11 13:48:03 -05:00
Matthew Jones
03cef6fea3 Merge pull request #969 from matburt/default_x_forwarded_for
Add X-Forwarded-For as a default source of remote host headers
2018-01-11 12:01:27 -05:00
Matthew Jones
7dc0fce1aa Use x-forwarded-for by default in openshift and kubernetes 2018-01-11 12:00:01 -05:00
Matthew Jones
648d27f28d Merge pull request #909 from scottp-dpaw/add-openshift-hint
Add REMOTE_HOST_HEADERS override to OpenShift template
2018-01-11 11:56:05 -05:00
jlmitch5
5a5e5bc121 Merge pull request #898 from jlmitch5/newTemplateList
implementation for expanded template list
2018-01-11 11:23:56 -05:00
John Mitchell
aea37654e2 updated template list to using new components 2018-01-11 11:20:12 -05:00
Ryan Petrello
89b9d7ac8b Merge pull request #617 from ryanpetrello/release_3.2.3
fix a bug in inventory generation for isolated nodes
2018-01-11 11:04:09 -05:00
Ryan Petrello
b8758044e0 fix a bug in inventory generation for isolated nodes
see: https://github.com/ansible/ansible-tower/issues/7849
related: https://github.com/ansible/awx/pull/551
2018-01-11 10:41:58 -05:00
Chris Meyers
2ed97aeb0c implement multiple ldap servers 2018-01-11 09:03:14 -05:00
Ryan Petrello
9431b0b6ff Merge pull request #962 from ryanpetrello/fix-7843
fix a unicode handling bug
2018-01-10 18:17:58 -05:00
Ryan Petrello
a5007ccd41 fix a unicode handling bug
see: https://github.com/ansible/ansible-tower/issues/7843
related: https://github.com/ansible/awx/pull/807
2018-01-10 15:56:31 -05:00
Michael Abashian
81fc4219ae Merge pull request #957 from mabashian/860-facts
Fixed display of host facts
2018-01-10 15:02:23 -05:00
Ryan Petrello
c3c4d79890 Merge pull request #958 from ryanpetrello/multivenv
add an example for custom virtualenv setup in containers
2018-01-10 14:24:42 -05:00
Ryan Petrello
b01b229fea add an example for custom virtualenv setup in containers 2018-01-10 13:48:55 -05:00
mabashian
984b7e066d Fixed display of host facts 2018-01-10 13:18:38 -05:00
Matthew Jones
67d927121d Merge pull request #940 from ryanpetrello/multivenv
implement support for per-playbook/project/org virtualenvs
2018-01-10 12:15:38 -05:00
Ryan Petrello
4c40791d06 properly handle unicode for isolated job buffers
from: https://docs.python.org/2/library/stringio.html#module-cStringIO
"Unlike the StringIO module, this module is not able to accept Unicode
strings that cannot be encoded as plain ASCII strings."

see: https://github.com/ansible/ansible-tower/issues/7846
2018-01-10 10:56:59 -05:00
Matthew Jones
ae06cff991 Merge pull request #938 from ansible/kubernetes_install_support
Kubernetes install support
2018-01-10 09:57:33 -05:00
Matthew Jones
7ea6d7bf4d Clean up documentation for kubernetes installer 2018-01-10 09:39:07 -05:00
Matthew Jones
fad4a549d0 Remove oc command usage from docker registry k8s reference 2018-01-10 09:38:00 -05:00
Matthew Jones
9365e477c5 Merge pull request #951 from ansible/remove_nodeport
Remove nodeport customization
2018-01-10 09:32:36 -05:00
Matthew Jones
d0b3cac72a Remove nodeport definition 2018-01-10 09:29:12 -05:00
Chris Meyers
de02138dfd spelling is hard 2018-01-10 09:26:11 -05:00
Matthew Jones
44f0b003fc Kubernetes install documentation 2018-01-10 09:25:59 -05:00
Matthew Jones
56aed597b2 Add initial support for kubernetes to the installer 2018-01-10 09:25:59 -05:00
Matthew Jones
f33ee03b98 Remove nodeport customization
This isn't strictly necessary for the Openshift routes and can
sometimes cause problems when the resource is already defined in openshift
2018-01-10 09:23:46 -05:00
Ryan Petrello
69a3b0def6 Merge pull request #946 from ryanpetrello/fix-7846
fix a handful of issues for playbooks that contain unicode
2018-01-10 09:16:40 -05:00
Matthew Jones
6504972d82 Merge pull request #741 from rbywater/bugfix/cloudformsinventory
Fix CloudForms enabled & id variable names - relates to #705
2018-01-10 00:22:58 -05:00
Ryan Petrello
4bb2b5768e properly compose stdout downloads that contain unicode 2018-01-09 23:52:02 -05:00
Ryan Petrello
c0a641ed52 properly handle unicode for isolated job buffers
from: https://docs.python.org/2/library/stringio.html#module-cStringIO
"Unlike the StringIO module, this module is not able to accept Unicode
strings that cannot be encoded as plain ASCII strings."

see: https://github.com/ansible/ansible-tower/issues/7846
2018-01-09 23:46:17 -05:00
Ryan Petrello
1e8c89f536 implement support for per-playbook/project/org virtualenvs
see: https://github.com/ansible/awx/issues/34
2018-01-09 22:47:01 -05:00
Shane McDonald
54d3412820 Merge pull request #942 from wwitzel3/devel
Update asgi-amqp requirement
2018-01-09 19:17:45 -05:00
Wayne Witzel III
1690938dfb Update asgi-amqp requirement 2018-01-09 23:54:30 +00:00
Chris Meyers
0a9d3d47b9 more efficiently determine saml team mapping 2018-01-09 12:16:07 -05:00
Ryan Petrello
2952b0a0fe Merge pull request #807 from AlanCoding/inv_update_name
Make inventory update name combination of inventory and source
2018-01-08 10:43:44 -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
97c040aaa1 Merge pull request #839 from AlanCoding/cache_settings_dict
Cache the global settings list, cProfile speedup
2018-01-08 10:35:00 -05:00
Ryan Petrello
818c95501a Merge pull request #920 from ryanpetrello/fix-914
add vault_id to launch endpoints default vault credentials
2018-01-08 10:31:31 -05:00
Chris Meyers
664bdec57f add documentation 2018-01-05 14:43:33 -05:00
Michael Abashian
92068930a6 Merge pull request #919 from ansible/jakemcdermott-add-dialog-slider-imports
add dialog and slider vendor imports
2018-01-05 08:48:11 -05:00
Chris Meyers
d07a946183 Merge pull request #921 from chrismeyersfsu/fix-handle_work_error-689
Fix handle_work_error()
2018-01-05 07:54:03 -05:00
Chris Meyers
9d58b15135 allow for saml attributes to define team and org
related to https://github.com/ansible/awx/issues/217

* Adds a configure tower in tower setting for users to configure a saml
attribute that tower will use to put users into teams and orgs.
2018-01-04 15:35:11 -05:00
Chris Meyers
a0038276a4 do not use a custom task exception
* Celery + json pickling do not handle custom Exceptions (and may never
do so). Mentioning of, if handling custom Exceptions then the code would
be susceptible to same arbitrary code execution that python pickle is
vulnerable to.
* So don't use custom Exceptions.
2018-01-04 15:30:52 -05:00
Chris Meyers
f0ff6ecb0a handle_work_error signature to work
* celery error callback signature isn't well defined. Thus, our error
callback signature is made to handle just about any call signature and
depend on only 1 attribute, id, existing.

See https://github.com/celery/celery/issues/3709
2018-01-04 15:23:13 -05:00
Ryan Petrello
60743d6ba6 add the vault_id to the response payload on the JT launch endpoint
see: https://github.com/ansible/awx/issues/914
2018-01-04 15:13:48 -05:00
Ryan Petrello
4707b5e020 Merge pull request #917 from ryanpetrello/more-stdout-event-polish
more stdout event polish
2018-01-04 14:54:46 -05:00
Jake McDermott
ed7d7fcf00 add dialog and slider vendor imports 2018-01-04 14:46:42 -05:00
Aaron Tan
6c2a7f3782 Merge pull request #906 from jangsutsr/refactor_named_url_tests
Refactor named URL unit tests
2018-01-04 14:20:27 -05:00
Ryan Petrello
47875c5f9a Merge pull request #916 from ryanpetrello/memcache-fact-cache-size-warning
make the fact caching plugin fail more gracefully for large payloads
2018-01-04 13:06:29 -05:00
Ryan Petrello
f28f7c6184 refactor job event signal generation code 2018-01-04 12:50:12 -05:00
Ryan Petrello
1494c8395b update websockets docs to reflect new event groups 2018-01-04 11:40:15 -05:00
Ryan Petrello
2691e1d707 make the fact caching plugin fail more gracefully for large payloads
related: https://github.com/ansible/ansible/pull/34424
2018-01-04 11:33:47 -05:00
Ryan Petrello
6d413bd412 Merge pull request #833 from ryanpetrello/stdout-events
generalize stdout event processing to emit events for all job types
2018-01-04 11:28:52 -05:00
Aaron Tan
54bf7e13d8 Refactor named URL unit tests
The original tests set no longer works after Django 1.11 due to more
strict rules against dynamic model definition. The refactored tests set
aims at each existing model that apply named URL rules,  instead of
abstract general use cases, thus significantly improves maintainability
and readability.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2018-01-03 14:00:30 -05:00
Ryan Petrello
c6b6a3ad89 send and subcribe to summary events for all new events 2018-01-03 09:09:45 -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
35b8e40d3c remove deprecation from the stdout endpoint; text downloads still use it 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
1369f72885 add new API endpoints and websocket emit for new job event types
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
Ryan Petrello
fc94b3a943 generalize stdout event processing to emit events for *all* job types
* introduces three new models: `ProjectUpdateEvent`,
  `InventoryUpdateEvent`, and `SystemJobEvent`
* simplifies the stdout callback management in `tasks.py` - now _all_
  job run types capture and emit events to the callback receiver
* supports stdout reconstruction from events for stdout downloads for
  _all_ job types
* configures `ProjectUpdate` runs to configure the awx display callback
  (so we can capture real playbook events for `project_update.yml`)
* ProjectUpdate, InventoryUpdate, and SystemJob runs no longer write
  text blobs to the deprecated `main_unifiedjob.result_stdout_text` column

see: https://github.com/ansible/awx/issues/200
2018-01-03 09:09:42 -05:00
Scott Percival
fde9099198 Add REMOTE_HOST_HEADERS override to OpenShift template
Signed-off-by: Scott Percival <scott.percival@dbca.wa.gov.au>
2018-01-03 09:53:17 +08:00
Michael Abashian
815cd829e0 Merge pull request #872 from mabashian/865-jquery-ui-upgrade-bug
Fixed spinners after jquery-ui upgrade
2018-01-02 13:18:51 -05:00
Aaron Tan
a2fd78add4 Implement item copy feature
See acceptance doc for implement details.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2018-01-02 10:20:44 -05:00
Ryan Petrello
28c612ae9c Merge pull request #871 from AlanCoding/dirty_extra_data
Fix bug when creating system job schedule
2018-01-02 09:22:07 -05:00
Bill Nottingham
d6ed6a856d Merge pull request #845 from wenottingham/he-sees-you-when-you're-sleeping
Tweak collected information.
2017-12-21 13:52:11 -05:00
mabashian
706b370f7e Fixed spinners after jquery-ui upgrade 2017-12-20 16:02:53 -05:00
AlanCoding
80a2d10742 fix bug when creating system job schedule 2017-12-20 15:30:57 -05:00
Jake McDermott
f7259a1e78 Merge pull request #844 from jakemcdermott/fix-package-json-backmerge-issue
package.json updates / restore ui watch functionality
2017-12-18 17:03:03 -05:00
AlanCoding
08570fe785 make inventory update name combination of inventory and source 2017-12-18 16:21:39 -05:00
Jake McDermott
987cdc6802 Bump versions of angular-codemirror, jquery-ui, and moment 2017-12-18 16:21:29 -05:00
Alan Rominger
6e27294e2b Merge pull request #846 from AlanCoding/encrypt_on_save
Encrypt password answers on config save
2017-12-18 16:20:08 -05:00
AlanCoding
3439ba5f3b allow WFJT nodes without required variables 2017-12-18 12:03:40 -05:00
AlanCoding
c8e10adc96 fix bug saving extra_data and follow prompts rules
display_extra_vars was not taking a copy of the data before
acting on it - this causes a bug where the activity stream will
modify the existing object on the model. That leads to new data
not being accepted.

Also moved the processing of extra_data to prior to the accept
or ignore kwargs logic so that we pass the right (post-encryption)
form of the variables.
2017-12-18 10:50:22 -05:00
Christian Adams
7e261b5246 Merge pull request #847 from rooftopcellist/contributing_typos
Fixed Typos
2017-12-15 11: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
Matthew Jones
5ec537bad2 Merge pull request #843 from ansible/remove_old_tests
Removing old unused tests
2017-12-14 23:55:12 -05:00
Bill Nottingham
568901af74 Tweak collected information. 2017-12-14 19:22:18 -05:00
adamscmRH
c2e9926330 Fixed Typos 2017-12-14 16:13:04 -05:00
Jake McDermott
c4ccfa1b27 restoring ui watch functionality 2017-12-14 14:23:46 -05:00
Matthew Jones
478bcc0b07 Removing old unused tests 2017-12-14 11:34:43 -05:00
AlanCoding
0bb9c58e25 cache the global settings list, cProfile speedup 2017-12-14 11:29:30 -05:00
Alan Rominger
9c783aa0ce Merge pull request #804 from AlanCoding/active_count
simplify query for active_count
2017-12-14 10:47:12 -05:00
Alan Rominger
526391a072 Merge pull request #838 from AlanCoding/no_unicode_loop_2
Avoid slowdown generating smart_filter (alternative 2)
2017-12-14 10:23:31 -05:00
AlanCoding
98f8faa349 simplify query for active_count 2017-12-14 09:53:26 -05:00
AlanCoding
8a2a5b0fb1 avoid slowdown generating smart_filter 2017-12-14 09:39:39 -05:00
Jake McDermott
07cfa6cba5 Merge pull request #834 from AlanCoding/jump-the-start-line 2017-12-13 22:43:54 -05:00
AlanCoding
e188692acf use Options models to consolidate field_names list 2017-12-13 22:39:38 -05:00
Jake McDermott
ad70754b6a Merge pull request #832 from mabashian/linting-error-cleanup
Fixed linting/leftover merge errors
2017-12-13 19:46:02 -05:00
AlanCoding
9fb24f1a4c add hack to TimingMiddlWare for Shippable tests 2017-12-13 18:49:26 -05:00
mabashian
aefa30e1e9 Fixed linting/leftover merge errors 2017-12-13 18:28:52 -05:00
Alan Rominger
7eb2d86890 Merge pull request #749 from AlanCoding/detail_opt
Apply list view optimizations to detail view
2017-12-13 18:19:00 -05:00
Matthew Jones
2fb0144914 Add libcurl-devel to official image build 2017-12-13 16:14:55 -05:00
AlanCoding
e3a731bb9e apply listview optimizations to detail view 2017-12-13 16:09:37 -05:00
Ryan Petrello
451e9a7504 Merge pull request #826 from AlanCoding/322flake
flake8 fixes from removal of re-encrypt test
2017-12-13 15:23:41 -05:00
Ryan Petrello
8311acfba2 Merge pull request #825 from AlanCoding/towervars
Add back in support of towervars lost in merge
2017-12-13 15:19:47 -05:00
AlanCoding
77a1c405a6 flake8 fixes from removal of reencrypt test 2017-12-13 14:32:34 -05:00
AlanCoding
1b0bca8229 add back in support of towervars lost in merge 2017-12-13 14:30:11 -05:00
Ryan Petrello
bd91e8eb54 Merge pull request #824 from ryanpetrello/devel
fix a few tests caused by fallout between 3.2.2 bugs and 3.3 multicred
2017-12-13 14:10:39 -05:00
Ryan Petrello
ea4cd99003 fix a few tests caused by fallout between 3.2.2 bugs and 3.3 multicred 2017-12-13 14:02:25 -05:00
Shane McDonald
00ce244716 Merge pull request #822 from jakemcdermott/fix-merge-issues
fix merge issue with inventory source service
2017-12-13 13:32:13 -05:00
Jake McDermott
3b791609cd fix merge issue with inventory source service 2017-12-13 13:23:15 -05:00
Matthew Jones
a8d4eb7c1d Merge pull request #821 from ryanpetrello/devel
more test cleanup from 3.2.2 merge
2017-12-13 13:15:59 -05:00
Ryan Petrello
d35bfafcf5 more test cleanup from 3.2.2 merge 2017-12-13 13:14:22 -05:00
Ryan Petrello
9f8ef4d1e5 Merge pull request #820 from ryanpetrello/devel
fix a number of failing unit tests related to the 3.2.2 merge
2017-12-13 13:04:55 -05:00
Ryan Petrello
a978d094b4 fix a number of failing unit tests related to the 3.2.2 merge 2017-12-13 13:03:17 -05:00
Shane McDonald
47e422ba7a Merge pull request #819 from ansible/jakemcdermott-patch-1
fix arg name clash in hosts list controller
2017-12-13 13:02:47 -05:00
Jake McDermott
4b86815275 fix arg name clash in hosts list controller 2017-12-13 13:01:11 -05:00
Alan Rominger
6c1c850c5f Merge pull request #816 from AlanCoding/ints
use credential property that returns integers
2017-12-13 12:56:07 -05:00
AlanCoding
f4f1e0fd3c use credential property that returns integers 2017-12-13 12:54:32 -05:00
Matthew Jones
ca84e1c654 Merge pull request #817 from ansible/jakemcdermott-patch-1
fix missing comma in package.json
2017-12-13 12:48:16 -05:00
Jake McDermott
6b6e898882 fix missing comma in package.json 2017-12-13 12:45:26 -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
Jake McDermott
40d1f2671f Merge pull request #811 from AlanCoding/i_wont_be_ignored
Fix bug creating inventory source schedules
2017-12-12 18:32:54 -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
Jared Tabor
2c64a2ce63 Merge pull request #783 from jaredevantabor/notification-toggle
fixing url used for determining which notification to toggle on/off
2017-12-12 11:31:48 -08:00
Jared Tabor
86eb0353c5 fixing url used for determining which notification to toggle on/off
for #711
2017-12-12 11:07:21 -08:00
Matthew Jones
282290e151 Fix an issue referencing postgres port from openshift deployment 2017-12-12 10:52:02 -05:00
Alan Rominger
8d348f916b Merge pull request #794 from AlanCoding/hide_config_pass
Hide survey passwords in saved launch configs
2017-12-12 10:37:41 -05:00
AlanCoding
659d31324d hide survey passwords in saved launch configs 2017-12-12 09:35:46 -05:00
Ryan Petrello
1bc2d83403 Merge pull request #789 from ryanpetrello/multivault-acceptance
add some more tests and acceptance docs to wrap up multivault support
2017-12-11 20:35:27 -05:00
Ryan Petrello
8c90d36290 add some more tests and acceptance docs to wrap up multivault support
see: https://github.com/ansible/awx/issues/352
2017-12-11 16:56:02 -05:00
Greg Considine
fac7fd45f8 Merge pull request #614 from gconsidine/ui/fix/toggle-button-container
Adjust style of toggle button to accommodate text that exceeds 42px
2017-12-11 16:09:44 -05:00
Bill Nottingham
9be438a60a Merge pull request #788 from wenottingham/no-country-for-old-python
Don't bother checking for python 2.6 in the venv
2017-12-11 14:57:25 -05:00
Bill Nottingham
c62430c282 Drop python2.6 checks. 2017-12-11 13:59:00 -05:00
Alan Rominger
1be3c77ac6 Merge pull request #787 from AlanCoding/workflow_system_jobs
allow using SystemJobTemplates in workflows
2017-12-11 13:21:33 -05:00
Matthew Jones
34c206fab0 Bump psql-container pg version to 9.6 2017-12-11 12:01:28 -05:00
gconsidine
a2f64f1053 Adjust style of toggle button to accommodate text that exceeds 42px 2017-12-11 11:47:21 -05:00
Shane McDonald
334d47f3ab Pull updated translations 2017-12-11 09:42:06 -05:00
AlanCoding
4adfb9804e allow using SystemJobTemplates in workflows 2017-12-11 08:58:45 -05:00
Alan Rominger
64ac1ee238 Merge pull request #746 from AlanCoding/i_forgot
Intentionally forget start_args when job is done
2017-12-11 08:08:27 -05:00
AlanCoding
0bf06479d5 add migration to remove old start_args 2017-12-10 12:08:59 -05:00
AlanCoding
1f8cab4171 intentionally forget start_args when job is done 2017-12-10 12:08:54 -05:00
Jake McDermott
526bcc4a68 Merge pull request #785 from jakemcdermott/stored-xss-test-update
fix lint error and stabilize stored xss test case
2017-12-10 12:07:46 -05:00
Jake McDermott
9dcdf20fb0 stabilize template form stored xss test case 2017-12-10 11:41:41 -05:00
Jake McDermott
be0f66fd94 fix linting error in stored xss test 2017-12-10 11:39:13 -05:00
Alan Rominger
2135291f35 Merge pull request #740 from AlanCoding/configs_rebased5
Feature: saved launchtime configurations
2017-12-08 16:55:00 -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
Ryan Petrello
4724b6a3d6 Merge pull request #613 from ryanpetrello/release_3.2.2
change how we detect the current user at LDAP login to avoid a nuanced recursion error
2017-12-08 15:46:32 -05:00
Ryan Petrello
ce94ba4c83 change how we detect the current user to avoid a nuanced recursion error
see: https://github.com/ansible/ansible-tower/issues/7802
2017-12-08 15:35:47 -05:00
AlanCoding
905ff7dad7 fix bugs where ask_ var was checked on node 2017-12-08 13:57:33 -05:00
AlanCoding
e59a724efa fix bug that broke combining WFJT and node vars 2017-12-08 13:48:45 -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
98df442ced combine launch config and multi-cred migrations 2017-12-08 13:45:21 -05:00
AlanCoding
5ada021a6e Tweak validation to allow multiple vault credentials
support providing vault passwords based on id
include needed passwords in launch serializer defaults
2017-12-08 13:43:43 -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
Marliana Lara
cd8a4b4669 Merge pull request #645 from marshmalien/feature/retry_failed_hosts
Feature - Retry failed hosts
2017-12-07 12:54:11 -05:00
Ryan Petrello
0dc4fa975b Merge pull request #612 from ryanpetrello/release_3.2.2
fix a race condition in "host.last_job" when jobs are deleted
2017-12-06 13:43:45 -05:00
Ryan Petrello
1fb890f4eb fix a race condition in "host.last_job" when jobs are deleted
see: https://github.com/ansible/ansible-tower/issues/7815
2017-12-06 11:30:19 -05:00
Matthew Jones
7fc896e183 Merge pull request #774 from matburt/jupyter_for_devel
Adding jupyter notebook support to the AWX development environment
2017-12-06 09:49:07 -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
Matthew Jones
9488105381 Merge pull request #773 from shanemcd/devel
Add m2r to setup requirements file
2017-12-05 15:38:31 -05:00
Shane McDonald
ec14ae1930 Add m2r to setup requirements file
We `pip download` this file for offline installs. Automat lists this package as a setup_requires, but `pip download` doesn’t resolve these dependencies (distutils will attempt to install them via easy_install when setup.py is invoked).
2017-12-05 15:26:56 -05:00
Shane McDonald
15e8fd5eca Pull updated translations 2017-12-05 14:17:18 -05:00
Greg Considine
e1e225d6a0 Merge pull request #771 from gconsidine/ui/fix/input-replace-revert
Ui/fix/input replace revert
2017-12-05 13:43:32 -05:00
gconsidine
3ad174b15b Add e2e test case to verify revert/replace 2017-12-05 12:25:48 -05:00
gconsidine
b5644ed65b Fix replace/revert functionality on secret input fields 2017-12-05 10:39:15 -05:00
Ryan Petrello
06e751fea1 Merge pull request #611 from ryanpetrello/release_3.2.2
more unit tests for survey default handling
2017-12-05 09:18:48 -05:00
Ryan Petrello
fe93ef5488 more unit tests for survey default handling 2017-12-05 09:04:57 -05:00
Jake McDermott
13d84b8d35 Merge pull request #768 from tchia04/fix_typo_credential_types
Fix typo: Failed to get credential tpyes
2017-12-04 22:26:52 -05:00
Richard Bywater
9b05a41eec Add ability to append suffix to host names for Cloudforms Inventory
Allows for use of a suffix that will be appended to host names returned
from Cloudforms API if that suffix is not present.

For example with a suffix of 'example.org', the following results would
be shown for a particular Cloudforms host name:
someexample -> someexample.example.org
someexample.example.org -> someexample.example.org

The main use-case for this is, when one Inventory Source is returning
names that have a FQDN name whilst others are returning a shortname, to
ensure that the hosts in an inventory aren't effectively duplicated.
2017-12-05 14:47:33 +13:00
Tony Chia
9275b024de Update main.js
Changed "credential tpyes" to "credential types"
2017-12-04 16:27:46 -08:00
Jared Tabor
4f8d4994cf Merge pull request #765 from jaredevantabor/fix-764
Update error handling on host service after angular upgrade
2017-12-04 14:28:41 -08:00
Jared Tabor
a3144ee234 Update error handling on host service after angular upgrade 2017-12-04 13:52:34 -08:00
Alan Rominger
7fe22e9c53 Merge pull request #757 from AlanCoding/vault_cred_noop
allow no-op case for vault_credential
2017-12-04 16:01:00 -05:00
Alan Rominger
42d8368596 Merge pull request #763 from AlanCoding/remember_where_you_came_from
add AWX meta extra_vars for workflow + schedule
2017-12-04 15:52:30 -05:00
Ryan Petrello
2c12f1b66e Merge pull request #610 from ryanpetrello/faster-result-stdout-cleanup
don't fetch stdout when purging jobs - it's slow and causes OOMs
2017-12-04 15:41:16 -05:00
AlanCoding
eecf997856 add AWX meta extra_vars: WFJT + schedule 2017-12-04 15:33:05 -05:00
Ryan Petrello
33dedc88c8 don't fetch stdout when purging jobs - it's slow and causes OOMs
see: https://github.com/ansible/ansible-tower/issues/7751
2017-12-04 15:14:55 -05:00
Alan Rominger
759867c863 Merge pull request #609 from AlanCoding/more_encryption_tests
encryption tests around the contract with survey functionality
2017-12-04 14:20:30 -05:00
Alan Rominger
d4613d448c Merge pull request #608 from AlanCoding/empty_string_defaults
allow password default reuse with empty default
2017-12-04 14:19:32 -05:00
Matthew Jones
21bdea05a0 Merge pull request #762 from matburt/fix_pg_port
Make sure we define postgres port customization during install
2017-12-04 14:16:09 -05:00
AlanCoding
dbd68c5747 encryption tests around the contract with survey functionality 2017-12-04 11:45:07 -05:00
Matthew Jones
a3071c2a1f Make sure we define postgres port customization during install 2017-12-04 11:08:40 -05:00
AlanCoding
d23d7c422d allow password default reuse with empty default 2017-12-04 10:49:36 -05:00
Ryan Petrello
4b793dc58a Merge pull request #606 from ryanpetrello/test-7806
improve validation for empty default passwords
2017-12-04 10:19:06 -05:00
Ryan Petrello
112757e202 properly handle JT launch POST for required survey fields w/ no default
see: ansible/ansible-tower#7805
2017-12-04 09:45:21 -05:00
Ryan Petrello
12380fe1b1 add more tests for survey default encryption
see: https://github.com/ansible/ansible-tower/issues/7805
see: https://github.com/ansible/ansible-tower/issues/7806
see: https://github.com/ansible/ansible-tower/issues/7807
2017-12-04 09:45:14 -05:00
Matthew Jones
cf0cc2e2f2 Add system requirements to install docs 2017-12-04 07:56:34 -05:00
Ryan Petrello
b987b7daa0 Merge pull request #605 from ryanpetrello/release_3.2.2
fix another survey encryption-related bug
2017-12-01 17:30:43 -05:00
Ryan Petrello
6c7851b51f fix another survey encryption-related bug 2017-12-01 17:11:00 -05:00
Aaron Tan
1ff0591553 Merge pull request #603 from jangsutsr/fix-7737-1
Follow up fix #542
2017-12-01 16:07:14 -05:00
Aaron Tan
58ad214dcf Follow up fix #542
Relates
https://github.com/ansible/ansible-tower/issues/7737#issuecomment-348566452

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-12-01 15:58:33 -05:00
Ryan Petrello
a71cee9300 Merge pull request #604 from ryanpetrello/survey_spec_validation_refactor
refactor survey spec validation into a separate testable function
2017-12-01 15:44:07 -05:00
Ryan Petrello
1057b93570 refactor survey spec validation into a separate testable function 2017-12-01 15:34:07 -05:00
Alan Rominger
e0edfeac7c Merge pull request #602 from AlanCoding/clean_defaults
block user from entering encrypted as bare default
2017-12-01 14:54:42 -05:00
AlanCoding
47f45bf9b3 block user from entering encrypted as bare default 2017-12-01 14:44:06 -05:00
Ryan Petrello
8d162f9044 Merge pull request #601 from ryanpetrello/flake8-fixes
backport a few fixes from awx to address busted ci
2017-12-01 12:48:06 -05:00
AlanCoding
6269b43456 update tests to new Ansible core code 2017-12-01 12:31:56 -05:00
AlanCoding
67867cf0c8 flake8: comply with new E722 rule 2017-12-01 12:16:44 -05:00
Ryan Petrello
7538b4ce15 Merge pull request #600 from ryanpetrello/fix-7800-migration
upgrade survey encryption migration to work around an old survey bug
2017-12-01 12:13:18 -05:00
Ryan Petrello
e7918ad637 Merge pull request #752 from ryanpetrello/multivault
support specifying multiple vault IDs for a playbook run
2017-12-01 11:43:39 -05:00
Ryan Petrello
8c6a1e348d upgrade survey encryption migration to work around an old survey bug
see: https://github.com/ansible/ansible-tower/issues/7800
2017-12-01 11:34:47 -05:00
AlanCoding
dfc154ed95 allow no-op case for vault_credential 2017-12-01 10:29:23 -05:00
Ryan Petrello
a1f8f65add support specifying multiple vault IDs for a playbook run
see: https://github.com/ansible/awx/issues/352
2017-11-30 16:55:17 -05:00
Shane McDonald
3cd80ef67a Update pot files 2017-11-30 15:29:29 -05:00
Wayne Witzel III
f3310236e4 Merge pull request #599 from wwitzel3/release_3.2.2
Fix git project sync bug.
2017-11-30 11:22:29 -05:00
Wayne Witzel III
ed28faa3db Use TMP instead of TMPDIR and only set it in RunProjectUpdate 2017-11-30 16:10:12 +00:00
Alan Rominger
fde5a8850d Merge pull request #748 from AlanCoding/no_job_in_relaunch
Do not show job serialization in relaunch GET
2017-11-30 09:58:35 -05:00
AlanCoding
c359c072c4 do not show job serialization in relaunch GET 2017-11-30 08:47:35 -05:00
Jake McDermott
ee0aa40542 Merge pull request #743 from jakemcdermott/gcp-service-file
fix submit when no input object defined
2017-11-29 20:50:24 -05:00
Jake McDermott
81f2184aa7 fix submit when no input object defined 2017-11-29 19:50:46 -05:00
Jake McDermott
96c66b1e20 Merge pull request #712 from jakemcdermott/gcp-service-file
add input field for gcp service account json file
2017-11-29 18:41:23 -05:00
Jake McDermott
dbb9ffbaf4 use settings when setting up user data 2017-11-29 18:27:46 -05:00
Jake McDermott
06a7c024fe add e2e test for gcp service account file input 2017-11-29 18:27:34 -05:00
Jake McDermott
1229a10f35 add gcp service account file input 2017-11-29 18:27:24 -05:00
Jake McDermott
f15b1ae549 disable textarea drag and drop when field is disabled 2017-11-29 18:27:12 -05:00
Jake McDermott
71fea2e360 allow for programmatic input to text and textarea-secret fields 2017-11-29 18:26:59 -05:00
Jake McDermott
5baa371739 add unit test for file input component 2017-11-29 18:26:47 -05:00
Jake McDermott
cc8b5bc808 add file input component 2017-11-29 18:26:36 -05:00
Alan Rominger
53c6248a6d Merge pull request #647 from AlanCoding/no_sql
remove raw SQL in visible_roles
2017-11-29 16:46:09 -05:00
Ryan Petrello
fc4b02b79f Merge pull request #597 from ryanpetrello/jenkins-no-like-unicode
removing some cruft we thought would help us catch bugs (it didn't)
2017-11-29 16:39:20 -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
AlanCoding
c4bc310271 remove raw SQL in visible_roles 2017-11-29 16:04:31 -05:00
Richard Bywater
079abc162f Fix CloudForms enabled & id variable names
On Cloudforms (Version 2.0 at least), the dictionary that gets passed to
the inventory_import has a top-level 'cloudforms' dictionary element
that contains the 'id' and 'power_state' rather than those elements
being at the top-level of the dictionary.

This change adds in the 'cloudforms' into the expected name.
2017-11-30 09:30:23 +13:00
Ryan Petrello
d773d163f7 Merge pull request #595 from ryanpetrello/fix-workflow-survey-encrypt
more survey password encryption bug squashing
2017-11-29 15:09:40 -05:00
Chris Meyers
1899795d08 Merge pull request #721 from chrismeyersfsu/feature-2_factor
allow support for saml + 2-factor
2017-11-29 14:54:57 -05:00
Alan Rominger
43c58b5bf5 Merge pull request #731 from AlanCoding/enabled_fix
fix inventory import bug with enabled_var
2017-11-29 14:46:16 -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
AlanCoding
2c06bfc9ce fix inventory import bug with enabled_var 2017-11-29 14:12:03 -05:00
Aaron Tan
4c43afda19 Merge pull request #586 from jangsutsr/fix-7768
Supress exception with concurrent deletion
2017-11-29 13:40:45 -05:00
Alan Rominger
5602b5d2d7 Merge pull request #733 from AlanCoding/credentials_in_list
Show credentials in list view
2017-11-29 12:09:52 -05:00
Chris Meyers
032318494b added tests for new settings field type 2017-11-29 11:52:00 -05:00
Bill Nottingham
40c22dcec8 Merge pull request #643 from wenottingham/whitespace-the-final-frontier
Fix extra whitespace in callback URL.
2017-11-29 11:29:45 -05:00
Alan Rominger
04f682bf7a Merge pull request #694 from AlanCoding/credentials_not_a_thing
adjust assertions about JT credentials to be correct
2017-11-29 10:41:48 -05:00
Alan Rominger
070a12a10c Merge pull request #692 from AlanCoding/vault_credential_check
Modify JT access tests to reflect new vault_credential reality
2017-11-29 10:40:35 -05:00
Ryan Petrello
91cc4689c9 Merge pull request #594 from ryanpetrello/fix-sosreport-venv
fix incorrect virtualenv path for sosreport plugin
2017-11-29 10:07:12 -05:00
Hideki Saito
febfcf709d fix incorrect virtualenv path for sosreport plugin 2017-11-29 09:57:41 -05:00
Wayne Witzel III
53460db4d7 Merge pull request #736 from ewjoachim/fix-social-core
Fix import of social_core.exceptions in sso/pipeline.py
2017-11-29 09:26:43 -05:00
AlanCoding
37a44c439e show credentials in list view 2017-11-29 08:14:45 -05:00
Joachim Jablon
6609f38fa2 Fix import of social_core.exceptions in sso/pipeline.py
Signed-off-by: Joachim Jablon <ewjoachim@gmail.com>
2017-11-29 14:08:58 +01:00
Alan Rominger
8f5be46d52 Merge pull request #730 from AlanCoding/list_bug
fix bug with inventory update queryset
2017-11-28 18:41:39 -05:00
Ryan Petrello
cf1d5a29f6 Merge pull request #593 from ryanpetrello/fix-7796
fix another encrypted survey password bug
2017-11-28 17:08:35 -05:00
Ryan Petrello
1425021106 fix another encrypted survey password bug
properly encrypt extra_vars that overlap with survey passwords when
`ask_variables_on_launch=true`

see: https://github.com/ansible/ansible-tower/issues/7796
2017-11-28 16:52:47 -05:00
Bill Nottingham
3866dcaaae Merge pull request #732 from wenottingham/quote-fu
Remove stray quote from help string.
2017-11-28 15:38:42 -05:00
Ryan Petrello
7b42316366 Merge pull request #592 from ryanpetrello/fix-7793
fix a bug which caused v1 cred backwards-compat to apply to v2 requests
2017-11-28 14:49:54 -05:00
Bill Nottingham
8cede51bac Remove stray quote from help string. 2017-11-28 14:32:39 -05:00
AlanCoding
a880f47925 fix bug with inventory update queryset 2017-11-28 14:13:35 -05:00
Chris Meyers
383c3cfe3e add more saml fields 2017-11-28 13:49:35 -05:00
Shane McDonald
32fcb84cf6 Merge pull request #722 from jakemcdermott/tools-awx-pycrypto
add pycrypto distro package to tools awx container image
2017-11-28 13:42:02 -05:00
Ryan Petrello
ce9d75c2e4 Merge pull request #591 from ryanpetrello/rename-ovirt
rename oVirt4 to Red Hat Virtualization
2017-11-28 13:10:58 -05:00
Ryan Petrello
26845642f0 fix a bug which caused v1 cred backwards-compat to apply to v2 requests
see: https://github.com/ansible/ansible-tower/issues/7793
2017-11-28 13:05:13 -05:00
Jake McDermott
34195a1b35 add pycrypto distro package to tools awx container image 2017-11-28 12:45:53 -05:00
Ryan Petrello
6fa0d9d4ed rename oVirt4 to Red Hat Virtualization
see: https://github.com/ansible/ansible-tower/issues/7790
2017-11-28 11:02:42 -05:00
Greg Considine
c723ba5289 Merge pull request #717 from gconsidine/ui/bump-dependency-versions
Update dependency versions to pull in latest 1.x Angular version
2017-11-28 10:11:12 -05:00
gconsidine
3ff9fa9931 Remove test on async fn with no callback and no returned promise 2017-11-28 09:54:54 -05:00
Ryan Petrello
7accac2f63 Merge pull request #590 from ryanpetrello/fix-7784
fix a bug in survey password default validation within workflows
2017-11-27 18:04:30 -05:00
Ryan Petrello
044c047ac6 fix a bug in survey password default validation
see: https://github.com/ansible/ansible-tower/issues/7046
see: https://github.com/ansible/ansible-tower/issues/7764
see: https://github.com/ansible/ansible-tower/issues/7784
2017-11-27 17:25:45 -05:00
Wayne Witzel III
3202e77b57 Merge pull request #720 from wwitzel3/devel
Update to asgi_amqp 1.0.1
2017-11-27 14:57:39 -05:00
Wayne Witzel III
a858093db8 Update to asgi_amqp 1.0.1 2017-11-27 19:41:30 +00:00
Chris Meyers
5a2ecd25e7 Merge pull request #589 from ansible/fix-project_update_cascade_fast
correctly cascade job cancel
2017-11-27 13:21:25 -05:00
Chris Meyers
6c89935521 correctly cascade job cancel
* Check the reason for a dependent project update failure. If it's
because of a cancel, then let the normal cancel mechanisms update the
jobs status and explanation. Do not update the dependent job's status
for a project update that was canceled, in the run code.
2017-11-27 12:34:55 -05:00
gconsidine
86a559caef Update dependency versions to pull in latest 1.x Angular version 2017-11-27 11:12:45 -05:00
Michael Abashian
33ff10728d Merge pull request #680 from mabashian/delete-warning-text
Tweaked language on delete warning modal
2017-11-22 15:02:55 -05:00
mabashian
ff1f322c88 Removed unused string from credentials strings 2017-11-22 13:29:52 -05:00
mabashian
d3da899459 Defined delete string in the base with the ability to pass the resource name in 2017-11-22 13:28:02 -05:00
AlanCoding
9fe524cd20 adjust assertions about JT credentials to be correct 2017-11-21 10:03:57 -05:00
AlanCoding
1481a62b23 modify JT access tests to reflect new vault_credential reality 2017-11-21 08:40:04 -05:00
Alan Rominger
ce6d96feda Merge pull request #687 from AlanCoding/new_kill
allow deletion of new jobs
2017-11-21 07:20:05 -05:00
AlanCoding
6c57a3bb68 allow deletion of new jobs 2017-11-20 11:19:22 -05:00
Aaron Tan
0641c6b0a6 Supress exception with concurrent deletion
Relates https://github.com/ansible/ansible-tower/issues/7768

This issue, as well as
https://github.com/ansible/ansible-tower/issues/7622, both rooted in a
concurrency issue of Django ORM:
https://github.com/ansible/ansible-tower/issues/762://code.djangoproject.com/ticket/28806

The solution related deals specifically with the related issue, but is
not a general solution. A general workaround can be found in
https://github.com/ansible/tower/pull/500.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-11-17 16:29:08 -05:00
mabashian
565b0b82dd Tweaked language on delete warning modal 2017-11-17 12:45:01 -05:00
Alan Rominger
4ea27e0d1b Merge pull request #587 from AlanCoding/computed_self
update original when updating computed fields
2017-11-17 12:23:43 -05:00
Wayne Witzel III
79c196fc08 Merge pull request #588 from wwitzel3/release_3.2.2
Include all previously run operations to satisfy Django migration planner
2017-11-17 12:12:21 -05:00
Wayne Witzel III
249a5e5e4d Include all previously run operations to satisfy Django migration planner. 2017-11-17 12:02:07 -05:00
AlanCoding
51c73cb357 update original when updating computed fields 2017-11-17 10:16:49 -05:00
Chris Meyers
98f2d936d9 allow support for saml + 2-factor
* python-social-auth has SOCIAL_AUTH_SAML_SECURITY_CONFIG, which is
forwarded to python-saml settings configuration. This commit exposes
SOCIAL_AUTH_SAML_SECURITY_CONFIG to configure tower in tower to allow
users to set requestedAuthnContext, which will disable the requesting of
password type auth from the idp. Thus, it's up to the idp to choose
which auth to use (i.e. 2-factor).
2017-11-17 09:25:50 -05:00
Ryan Petrello
8d35b71321 Merge pull request #585 from ryanpetrello/fix-wfjt-survey-encryption
re-encrypt WFJT.survey_spec and WorkflowJob.extra_vars too
2017-11-17 08:52:54 -05:00
Ryan Petrello
a80d5b1b39 reencrypt WFJT.survey_spec too
https://github.com/ansible/ansible-tower/issues/7046
2017-11-16 23:00:22 -05:00
Wayne Witzel III
e5d86419c8 Merge pull request #582 from AlanCoding/smart_computed2
update smart inventory computed fields
2017-11-16 19:36:08 -05:00
Greg Considine
54a98ff612 Merge pull request #581 from gconsidine/ui/fix/disabled-button-opacity
Update disabled button color to match style guide
2017-11-16 16:40:06 -05:00
Matthew Jones
9b5371f2ab Merge pull request #670 from chrismeyersfsu/job_events_docs
add docs for job events
2017-11-16 13:46:35 -05:00
Ryan Petrello
e7077185bf Merge pull request #584 from ryanpetrello/release_3.2.2
make settings.AWX_ISOLATED_KEY_GENERATION readonly
2017-11-16 13:42:00 -05:00
Ryan Petrello
4187d02b8a make settings.AWX_ISOLATED_KEY_GENERATION readonly
see: https://github.com/ansible/ansible-tower/issues/7380
2017-11-16 13:35:37 -05:00
Matthew Jones
457359322f Merge pull request #583 from ansible/nicer_error_tower_inventory
Present the tower inventory sync failure in a better way
2017-11-16 13:16:22 -05:00
Matthew Jones
8a65c6e1c8 Present the tower inventory sync failure in a better way
This allows it to be handled better by ansible 2.4+
2017-11-16 12:59:12 -05:00
Chris Meyers
c4e6fc23fc add docs for job events
* Focus on the ordering of Job Event creation. Important to know when
thinking through different Ansible execution strategies.
2017-11-16 12:48:48 -05:00
AlanCoding
fb29f68efc update smart inventory computed fields 2017-11-16 11:57:30 -05:00
Alan Rominger
71127c039d Merge pull request #668 from AlanCoding/null_cred_okay2
Do not filter out JTs with null credentials
2017-11-16 11:18:16 -05:00
gconsidine
1fcddba558 Update disabled button color to match style guide 2017-11-16 11:15:23 -05:00
AlanCoding
127da5525c do not filter out JTs with null credentials 2017-11-16 10:20:41 -05:00
Alan Rominger
0f52ab47a0 Merge pull request #665 from AlanCoding/prefetch_credentials
prefetch UnifiedJob related credentials
2017-11-16 09:57:22 -05:00
Matthew Jones
b06a508ceb Merge pull request #651 from tumbl3w33d/646_configurable_search_domains
Make DNS search domain configurable for awx containers
2017-11-15 23:32:16 -05:00
AlanCoding
8cb5ce8307 prefetch UnifiedJob related credentials 2017-11-15 22:35:10 -05:00
Benjamin Wenzel
c1aa4129f9 Make DNS search domain configurable for awx containers
related #646
2017-11-15 21:11:56 +01:00
Matthew Jones
d6b10b7f44 Merge pull request #657 from ansible/openshift_fixes
Openshift fixes
2017-11-15 13:29:41 -05:00
Shane McDonald
e2aa9dc599 Merge pull request #658 from shanemcd/devel
Enable image stream lookups in AWX OpenShift Project
2017-11-15 13:21:51 -05:00
Shane McDonald
a043369d07 Enable image stream lookups in AWX OpenShift Project
See the OpenShift docs on this for more info: https://docs.openshift.com/container-platform/3.6/dev_guide/managing_images.html#using-is-with-k8s

If you are not using OpenShift’s internal registry you will need to manually set awx_task_openshift_image and awx_web_openshift_image.
2017-11-15 13:15:56 -05:00
Matthew Jones
03eca250d9 Fix an openshift issue writing the inventory file
Openshift was throwing an error here, though I'm not sure why it makes
a whole lot of difference to call fdopen() vs open(). This was
introduced when this method was unified under the new
ansible-inventory system. This fixes it for all cases. mkstemp(),
while not necessary, is a useful addition to keep from leaking
inventory details unnecessarily.
2017-11-15 13:12:54 -05:00
Matthew Jones
65d01d508b Fix an issue with handler tasks after celery upgrade
There's a bug in celery 4.X when using bound tasks as error
handlers. We don't actually need it to be bound especially since the
request object is now available in the function signature
2017-11-15 13:12:06 -05:00
Chris Meyers
e20599d7bb Merge pull request #580 from chrismeyersfsu/fix-project_update_cascade_tower
cascade cancel proj update when job canceled
2017-11-15 11:19:35 -05:00
Chris Meyers
9288b53015 cascade cancel proj update when job canceled
* Implicit project update, launch_type='sync', get "associated" with a
job via project_update. When a job is canceled, so should this implicit
project update. This change enforces that logic.
2017-11-15 11:17:52 -05:00
Ryan Petrello
82be0a8af2 Merge pull request #579 from ryanpetrello/fix-survey-encryption-migration-failure
fix a bug in the survey reencryption migration
2017-11-15 10:38:35 -05:00
Ryan Petrello
35c374fc79 fix a bug in the survey reencryption migration
see: https://github.com/ansible/ansible-tower/issues/7046
2017-11-15 10:26:46 -05:00
Alan Rominger
dbe135991b Merge pull request #575 from AlanCoding/single_cancel
do not propogate cancel of inventory sync back up to project
2017-11-15 09:46:41 -05:00
Ryan Petrello
3a2ec25fb4 Merge pull request #649 from ryanpetrello/multicred
fix a permissions bug for credentials specified at JT launch time
2017-11-15 08:49:08 -05:00
Ryan Petrello
fa09d68603 add a few minor optimizations and some refactoring for multi-cred 2017-11-14 16:47:28 -05:00
Ryan Petrello
eb140d9e69 fix a permissions bug for credentials specified at JT launch time
hat tip to @alancoding for spotting this one
2017-11-14 16:21:05 -05:00
Bill Nottingham
64f89b3fce Merge pull request #578 from wenottingham/protect-our-environment
Remove some environment variables the callback plugin doesn't actually use
2017-11-14 16:10:53 -05:00
Bill Nottingham
aaaae87aa7 Remove some environment variables the callback plugin doesn't actually use. 2017-11-14 15:57:49 -05:00
Jared Tabor
5852c16ba6 Merge pull request #613 from jaredevantabor/fix-569
removing codemirror instantiation from $transition event
2017-11-14 11:09:41 -08:00
Ryan Petrello
ebd8941439 Merge pull request #595 from ryanpetrello/multicred
replace all Job/JT relations with a single M2M credentials relation
2017-11-14 14:07:18 -05:00
Jared Tabor
32cb18fc85 removing codemirror instantiation from $transition event 2017-11-14 10:24:36 -08:00
Marliana Lara
aeb8eb3d1e Fix jshint errors 2017-11-14 13:23:05 -05:00
Marliana Lara
6654cc35f7 Add relaunch component to Completed Jobs list 2017-11-14 13:04:20 -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
Bill Nottingham
0558bd82bb Fix extra whitespace in callback URL. 2017-11-14 12:03:52 -05:00
Ryan Petrello
f887aaa71f Merge pull request #637 from ryanpetrello/fix-django-settings-bug
undo an optimization in django.conf.settings that breaks awx settings
2017-11-14 11:56:24 -05:00
Marliana Lara
69ada03b7b Add relaunch component to Job Results panel 2017-11-14 11:51:53 -05:00
Marliana Lara
ee6beae50a Add relaunchButton component and styles 2017-11-14 11:41:46 -05:00
Matthew Jones
799feac0e1 Merge pull request #638 from shanemcd/devel
Fix OpenShift configmap
2017-11-14 11:40:12 -05:00
Shane McDonald
0d86678a44 Fix OpenShift configmap
These variables changed in 8faf588775
2017-11-14 11:32:05 -05:00
Ryan Petrello
38f893c124 undo an optimization in django.conf.settings that breaks awx settings 2017-11-14 11:03:50 -05:00
Greg Considine
a2b444f179 Merge pull request #625 from gconsidine/ui/fix/home-dashboard-popover
Revert versions of D3 used by awx and ansible/nvd3
2017-11-14 10:48:40 -05:00
Matthew Jones
f46bacdeaa Merge pull request #636 from ansible/fix_celery_inspector
Delay instantiation of the celery app for the inspector
2017-11-14 10:42:10 -05:00
Matthew Jones
9ee77a95c6 Delay instantiation of the celery app for the inspector
This keeps the instance from re-using a pool that might have already
expired and is unusable for the inspector that needs to run as part of
the task manager
2017-11-14 10:33:47 -05:00
Alan Rominger
93b80307db Merge pull request #624 from AlanCoding/dev_super
get development supervisor use working again
2017-11-14 10:14:11 -05:00
Alan Rominger
0a883edd4d Merge pull request #632 from AlanCoding/some_test_fixes
do not use expensive visible_roles for Activity Stream filter
2017-11-14 09:56:27 -05:00
gconsidine
4cd9556f7b Revert versions of D3 used by awx and ansible/nvd3 2017-11-14 09:47:25 -05:00
Wayne Witzel III
9ed2a0da8f Merge pull request #627 from wwitzel3/devel
Fix image_build
2017-11-14 08:53:21 -05:00
AlanCoding
7eac219eae do not use expensive visible_roles for Act Stream filter 2017-11-14 08:37:14 -05:00
AlanCoding
805170ffd7 get development supervisor use working again 2017-11-13 20:31:32 -05:00
Wayne Witzel III
d696f6c3f6 Fix image_build 2017-11-13 19:11:58 -05:00
Wayne Witzel III
3cdeb446c4 Merge pull request #622 from wwitzel3/devel
Using metavar with a flag is not allowed or useful
2017-11-13 17:12:03 -05:00
Wayne Witzel III
58737a8e28 Using metavar with a flag is not allowed or useful 2017-11-13 16:05:54 -05:00
Wayne Witzel III
2fb74f5b02 Merge pull request #621 from wwitzel3/devel
Fix mgmt cmds, use real types not strings
2017-11-13 15:38:19 -05:00
Wayne Witzel III
768a3f62f1 Fix mgmt cmds, use real types not strings 2017-11-13 15:32:31 -05:00
Bill Nottingham
b03a64dd53 Merge pull request #567 from wenottingham/the-source--not-just-a-magazine
Assorted updates to project_update.yml
2017-11-13 15:18:42 -05:00
Ryan Petrello
44a2d7a346 Merge pull request #577 from ryanpetrello/release_3.2.2
render survey_spec for display purposes in a safe manner
2017-11-13 15:18:09 -05:00
Shane McDonald
386382c456 Merge pull request #619 from wwitzel3/devel
Fix installer references to asgi_amqp
2017-11-13 14:10:58 -05:00
Wayne Witzel III
d9f8f7721a Fix installer references to asgi_amqp 2017-11-13 13:39:39 -05:00
Wayne Witzel III
d2711f4af0 Merge pull request #618 from wwitzel3/devel
Silence models.E006 until rename the Project and InventorySource
2017-11-13 13:23:15 -05:00
Wayne Witzel III
77fd7ea4a8 Silence models.E006 until we can rename the Project and InventorySource models 2017-11-13 13:19:29 -05:00
Ryan Petrello
be00b1ca96 render survey_spec for display purposes in a safe manner
survey_spec is a nested dict, so if we don't `deepcopy()` it, updates
to the individual fields could corrupt the original data structure;
this was causing a bug whereby activity stream updates converted
encrypted survey password defaults -> `$encrypted$`, but inadvertently
modified the originating model due to shared references

see: https://github.com/ansible/ansible-tower/issues/7769
2017-11-13 13:01:56 -05:00
Wayne Witzel III
faa5a5e024 Merge pull request #600 from wwitzel3/django111
Upgrade AWX major dependencies
2017-11-13 12:26:04 -05:00
Wayne Witzel III
798d27c2cb Fix task_manager test 2017-11-13 12:02:00 -05:00
Wayne Witzel III
5b4dc9e7ee Disable group sending in consumer (Issue ansible/awx#615) 2017-11-13 10:19:14 -05:00
AlanCoding
33574d70c8 do not propogate cancel of inventory sync back up to project 2017-11-13 08:44:00 -05:00
Wayne Witzel III
f118e27047 Flake8 fixes and URL updates 2017-11-10 17:04:33 -05:00
Michael Abashian
2ab33467d8 Merge pull request #601 from mabashian/275-delete-warnings
More verbose delete warnings
2017-11-10 16:40:12 -05:00
mabashian
42a6757a10 Pass params in object to request function 2017-11-10 16:14:40 -05:00
gconsidine
aa38c1123c Check for null resource and update e2e model usage 2017-11-10 15:59:38 -05:00
gconsidine
5fcff09aae Update string-related component tests 2017-11-10 12:33:27 -05:00
Ryan Petrello
bc705ad8ce Merge pull request #574 from ryanpetrello/fix-7764
properly perform validation on encrypted survey defaults
2017-11-10 12:07:54 -05:00
mabashian
5e2ecda413 Define type in delete jt unit test 2017-11-10 11:55:41 -05:00
mabashian
25dc3f8778 Update delete modals and fixed unit test failures 2017-11-10 11:31:11 -05:00
Michael Abashian
2957f5bc7f Merge pull request #1 from gconsidine/275-delete-warnings
275 delete warnings
2017-11-10 11:28:33 -05:00
Ryan Petrello
78961c8037 properly perform validation on encrypted survey defaults
see: https://github.com/ansible/ansible-tower/issues/7764
2017-11-10 10:52:09 -05:00
gconsidine
8713e38c44 Update the base model to use string service instead of each sub model 2017-11-10 10:42:05 -05:00
Wayne Witzel III
96904968d8 Fix migration issues, tests, and templates 2017-11-09 17:29:48 -05:00
Wayne Witzel III
6d6bbbb627 Update URL strucuture, fixed string based calls 2017-11-09 17:24:04 -05:00
Wayne Witzel III
14c5123fda Update celery environ and tasks 2017-11-09 17:21:19 -05:00
Wayne Witzel III
de376292ba Update management commands 2017-11-09 17:18:18 -05:00
Wayne Witzel III
8faf588775 Update package versions, settings, and tooling 2017-11-09 17:17:30 -05:00
gconsidine
e8fd40ace0 Update model request interface and references 2017-11-09 17:01:32 -05:00
Bill Nottingham
a2b18a9f6e Add test to short-circuit checkout if revision is already checked out.
Move role checkout to a separate play, to work with this.
2017-11-08 18:29:59 -05:00
Jake McDermott
8f6289707b Merge pull request #596 from jakemcdermott/stored-xss-test
add test suite for stored xss
2017-11-08 16:47:03 -05:00
mabashian
4cd2f93c31 Updated delete warnings to indicate resources that may be invalidated as a result of deletion 2017-11-08 16:38:34 -05:00
Alan Rominger
e22486ada8 Merge pull request #573 from AlanCoding/7765
[3.2.2] fix bug of system auditor 404 viewing job
2017-11-08 11:16:28 -05:00
AlanCoding
0051da95c9 fix bug of system auditor 404 viewing job 2017-11-08 10:44:41 -05:00
Ryan Petrello
122142c040 Merge pull request #572 from ryanpetrello/isolated-debug-toolkit
add some useful tools for isolated connectivity debugging
2017-11-08 10:08:05 -05:00
Ryan Petrello
91ad0a9f89 add a useful tool for isolated connectivity debugging 2017-11-08 09:27:33 -05:00
Jake McDermott
79f450df8e add stored xss test suite 2017-11-07 13:43:20 -05:00
Jake McDermott
aab66b8ce8 add namespacing, schedules, and sources to fixtures 2017-11-07 13:43:05 -05:00
Jake McDermott
0afe94c4d4 add navigateTo command 2017-11-07 13:42:41 -05:00
Ryan Fitzpatrick
6ea3ecbb26 Merge pull request #567 from rmfitzpatrick/tower_inv_source_filter_wording
Provide more specificity to Tower inventory filter help text
2017-11-07 10:55:30 -05:00
Chris Church
6c1919273b Merge pull request #551 from cchurch/🥓
Include JSON string in temporary inventory script with %r
2017-11-06 17:46:12 -05:00
Alan Rominger
1ed3a8f0e9 Merge pull request #566 from AlanCoding/no_can_read
Fix bug where system gets 404 viewing job detail view
2017-11-06 15:23:30 -05:00
Michael Abashian
7dc30ab866 Merge pull request #554 from mabashian/274-right-click-new-tab
Fixed most lists so that name links can be opened in a new tab
2017-11-06 15:18:11 -05:00
mabashian
8f82fc26a2 Removed commented line from schedule list config 2017-11-06 14:46:31 -05:00
Jared Tabor
e87dce023b Merge pull request #568 from jaredevantabor/source-deletion
When deleting a source, delete the source's groups too
2017-11-06 11:27:46 -08:00
Matthew Jones
89a05e9bbc Handle json decoder errors from tower inventory source 2017-11-06 14:15:53 -05:00
Matthew Jones
74c9b9cf6a Adding pycrypto distro package
Without this a lot of things break and it's no longer marked as a
dependency for the ansible core project
2017-11-06 11:18:45 -05:00
Jared Tabor
96fbc9ea27 Merge pull request #571 from jaredevantabor/6551
Band aid for rapidly deleting groups
2017-11-03 16:28:22 -07:00
Jared Tabor
e70d377a53 feedback from PR: launch both DELETE calls at the same time
for both groups and hosts.
2017-11-03 16:26:00 -07:00
Jared Tabor
f65ef9f75c prolong removing the delete modal until after the list refreshes, post-delete 2017-11-03 15:25:39 -07:00
Bill Nottingham
632ff959ff Merge pull request #573 from wenottingham/going-up-for-some-headers
Preformatted text doesn't actually work in our popovers; don't try to use it.
2017-11-03 15:23:05 -04:00
Bill Nottingham
19d093f7aa Preformatted text doesn't actually work in our popovers; don't try to use it. 2017-11-03 13:25:58 -04:00
Wayne Witzel III
7149c41804 Merge pull request #570 from wwitzel3/release_3.2.2
Handle ProgrammingError in squashed helpers
2017-11-03 10:45:09 -04:00
Wayne Witzel III
1a5b5c32b8 Handle ProgrammingError in squashed helpers 2017-11-03 10:34:25 -04:00
Wayne Witzel III
1b44ca8ef4 Merge pull request #569 from wwitzel3/release_3.2.2
Handle programming error when evaluating the replaces list for 320
2017-11-03 09:02:58 -04:00
Wayne Witzel III
d7f4707044 Handle programming error when evaluating the replaces list for 320 2017-11-03 08:53:53 -04:00
AlanCoding
270a41443c fix bug of system auditor 404 viewing job 2017-11-03 08:20:15 -04:00
Jared Tabor
9d39ac83f9 When deleting a source, delete the source's groups too 2017-11-02 15:59:09 -07:00
Wayne Witzel III
ce393da6fd Merge pull request #564 from wwitzel3/squashbillies
Squashbillies - Fixing direct upgrades from 3.0/3.1 bug fix revisions.
2017-11-02 16:19:26 -04:00
Wayne Witzel III
2f86774006 3.2.0 should not have any replacements defined unless 0005a or 0005b migrations have been run previously 2017-11-02 16:11:45 -04:00
Jake McDermott
8666512d99 Merge pull request #550 from jakemcdermott/run_both_unit_test_suites
run both ui unit test suites and linting tasks, collect results for shippable
2017-11-02 15:40:30 -04:00
Ryan Fitzpatrick
e2c63c41e7 Provide more specificity to Tower inventory filter help text 2017-11-02 15:01:03 -04:00
Bill Nottingham
c827e73dac Update comments and task names. 2017-11-02 14:11:48 -04:00
Wayne Witzel III
f9685717b8 Move post 3.0 migrations to pre 3.1 position in migration files 2017-11-02 14:06:36 -04:00
Wayne Witzel III
47a3ba9bd5 Rename squash 300 to 30 2017-11-02 14:06:36 -04:00
Wayne Witzel III
af3e6f792c Rename squash 310 to 31 2017-11-02 14:06:35 -04:00
Wayne Witzel III
fc56a1c170 Fix 3.0 to 3.2 migration paths 2017-11-02 14:06:35 -04:00
Wayne Witzel III
84fb908261 Fix 3.1 to 3.2 migration paths 2017-11-02 14:06:33 -04:00
jlmitch5
cb4a38d7a7 Merge pull request #566 from ansible/click-to-close
Add close logic to clicking outside of the bounds of a lookup modal
2017-11-02 13:33:03 -04:00
John Mitchell
9518c38bb8 add close logic to clicking outside of the bounds of a lookup modal 2017-11-02 12:20:53 -04:00
Matthew Jones
5e37d6ea7e Remove unused TOWER_HOST and AWX_HOST env vars
These were conflicting with the new Tower credential
2017-11-02 10:44:06 -04:00
Matthew Jones
b70f7bd866 Merge pull request #549 from cchurch/allow-non-fqdn-for-ldap-server-uri
Allow non-FQDN for AUTH_LDAP_SERVER_URI.
2017-11-02 08:57:04 -04: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
93f35b037d remove unused config 2017-11-01 15:31:00 -04:00
mabashian
d056cb22ef Fixed most lists so that name links can be opened in a new tab 2017-11-01 14:26:48 -04:00
Jake McDermott
4883876dc5 run both unit test suites and linting tasks 2017-11-01 13:36:34 -04:00
Chris Church
863b5e2e8e Output repr() of JSON in temporary inventory script to prevent Python from devouring escape sequences. 2017-11-01 12:59:49 -04:00
Chris Church
0f8e073d10 Allow non-FQDN for AUTH_LDAP_SERVER_URI. 2017-11-01 12:51:41 -04:00
jlmitch5
54e76b2534 Merge pull request #565 from ansible/no_placeholder_select2_typeahead
munge placeholder from select2 typeahead search bar
2017-11-01 12:45:29 -04:00
Alan Rominger
0579db1162 Merge pull request #439 from AlanCoding/retry_subset
Feature: retry on subset of jobs hosts
2017-11-01 11:33:15 -04:00
Bill Nottingham
7f20118d48 Merge pull request #547 from wenottingham/its-time-for-an-audit
Add system auditor placeholder.
2017-11-01 11:32:15 -04:00
Bill Nottingham
89d0f90e27 Add system auditor placeholder. 2017-11-01 10:46:39 -04:00
AlanCoding
41c84b4652 update retry-on-failed acceptance docs
Relaunching by other status values is tabled for later.
2017-11-01 10:24:46 -04:00
AlanCoding
0ae9283fba Feature: retry on subset of jobs hosts 2017-11-01 10:22:52 -04:00
Matthew Jones
f1813c35ed Merge pull request #528 from AlanCoding/fix_dep_update
fix bug with dependent SCM inv updates
2017-11-01 09:03:11 -04:00
Matthew Jones
0c5978715e Merge pull request #523 from AlanCoding/wfjt_spec_fix
fix admin edit of WFJT survey spec
2017-11-01 09:02:36 -04:00
Matthew Jones
5c1a6b7d6d Merge pull request #535 from matburt/fix_pgdata_issue
Specify a PGDATA directory to prevent container re-create issues
2017-11-01 08:46:24 -04:00
Jim Ladd
84c439b774 Merge pull request #542 from jladdjr/awx_349_acceptance_doc
Update custom credential document for mult-file injection
2017-10-31 19:14:37 -04:00
Jim Ladd
655759a5fc Update custom credential document for mult-file injection 2017-10-31 16:34:03 -04:00
Jake McDermott
6c85902ce8 Merge pull request #541 from jakemcdermott/update-credentials-title-selector
fix credentials form title selector
2017-10-31 16:30:00 -04:00
Jake McDermott
ef0c2086eb fix credentials form title selector when running container chrome 2017-10-31 16:11:44 -04:00
Matthew Jones
ffb148aaa9 Merge pull request #534 from dleehr/fix-install-2.3
Updates INSTALL.md to reflect Ansible 2.4 requirement
2017-10-31 15:07:06 -04:00
jlmitch5
b8ed41fa82 munge placeholder from select2 typeahead search bar 2017-10-31 14:39:25 -04:00
Michael Abashian
fbd03287ea Merge pull request #549 from mabashian/7697-smart-inv-pagination
Only pass host filter param to smart inv shortcut form
2017-10-31 13:29:52 -04:00
Michael Abashian
7919433288 Merge pull request #548 from mabashian/7752-host-list
Fixed related host list linking
2017-10-31 13:29:35 -04:00
Matthew Jones
bf281f6ea9 Specify a PGDATA directory to prevent container re-create issues 2017-10-31 10:20:08 -04:00
Ryan Petrello
3568be84c8 Merge pull request #561 from ryanpetrello/idle-hands
improve the callback worker's ability to deal with idle/disconnected DB
2017-10-31 10:05:29 -04:00
Ryan Petrello
8d2ab3de42 improve the callback worker's ability to deal with idle/disconnected DB
if database connectivity is lost, callback workers currently raise an
uncaught exception and hang; this can cause the entire process to stop
handling callback events

see: https://github.com/ansible/ansible-tower/issues/7660
2017-10-31 09:51:13 -04:00
Dan Leehr
641897713f Updates INSTALL.md to reflect Ansible 2.4 requirement 2017-10-30 22:41:58 -04:00
Jared Tabor
4c4cbaef9f Merge pull request #562 from jaredevantabor/timezone
Changing angular-tz-extensions branch
2017-10-30 14:21:19 -07:00
Jared Tabor
aef224732c changing angular-tz to point to a branch with a patch for UTC timezones
and also patching angular-scheduler to point to angular 1.4.14
and also patching angular-codemirror to point to angular 1.4.14,
and adding fsevents:"*" to the package.json, and regenerating
npm-shrinkwrap.json for the new dependencies and their branches.
2017-10-30 14:20:24 -07:00
Jake McDermott
b0c1be7338 Merge pull request #563 from jakemcdermott/bug-7718
append credential types documentation link to popovers
2017-10-30 16:24:19 -04:00
Jake McDermott
14a3a6073e append credential types documentation link to help popovers 2017-10-30 15:23:27 -04:00
AlanCoding
d7ae95684c fix bug with dependent SCM inv updates
This change causes all SCM inventory updates to run a local
project sync unless they were specifically marked as a
dependency of an already-existing project update, as
opposed to just doing so on manual launch types.

This should be a more robust criteria.
2017-10-30 11:59:33 -04:00
AlanCoding
8b39b3b41a fix admin edit of WFJT survey spec 2017-10-29 16:27:16 -04:00
Jake McDermott
fc7c2117e9 Merge pull request #553 from jakemcdermott/bug-5449
use abbreviated month name for dashboard chart
2017-10-27 17:01:47 -04:00
Ryan Petrello
0876d7825c Merge pull request #520 from ryanpetrello/phantom-version-comment
help people avoid mistakenly inputting their version info as a comment
2017-10-27 14:59:11 -04:00
Ryan Petrello
3953366a9e help people avoid mistakenly inputting their version info as a comment 2017-10-27 14:43:20 -04:00
Alan Rominger
d7f5ef6564 Merge pull request #511 from AlanCoding/wrong_type_error
raise error for invalid type lookup
2017-10-27 14:14:11 -04:00
Matthew Jones
63cf681369 Merge pull request #418 from Comradephate/patch-1
Divorce the "local docker install" portion of the install playbook from the image build + push logic
2017-10-27 12:31:09 -04:00
Aaron Tan
962de13965 Merge pull request #503 from jangsutsr/fix-7712
[3.2.2]Special handle host related_search_fields
2017-10-27 11:16:09 -04:00
Aaron Tan
7211ff22df Special handle host related_search_fields
Relates #7712 of ansible-tower.

UI uses `related_search_fields` list to populate help text for resourse
search, `ansible_facts` is searchable via UI but the general pickup
logic would ignore it. So make it a corner case.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-27 10:55:43 -04:00
Alan Rominger
003d7f0915 Merge pull request #543 from AlanCoding/urlencode_host_filter
[3.2.2] urlencode unquote host_filter on save
2017-10-27 08:50:39 -04:00
Matthew Jones
f019452207 Merge pull request #551 from ansible/tower_inventory_source
Tower inventory source
2017-10-27 08:41:24 -04:00
Alan Rominger
c323a2393a Merge pull request #552 from AlanCoding/retry_cleanup
[3.2.2] retry cleanup of build artifacts for bwrap race condition
2017-10-27 08:23:28 -04:00
Matthew Jones
85be3c7692 Align inventory variables with Ansible modules 2017-10-27 08:12:14 -04:00
Matthew Jones
5f3ebc26e0 Adding license checks for Tower inventory source
* For Tower the license must match between the source and destination
* For AWX the check is disabled
* Hosts imported from another Tower don't count against your license
  in the local Tower
* Fix up some issues with enablement
* Prevent slashes from being used in the instance filter
* Add &all=1 filter to make sure we pick up all hosts
2017-10-27 08:12:14 -04:00
Matthew Jones
d282966aa1 Use towervars to enable turning on remote tracking vars on Tower src
* This allows the local Tower to track enabled state and unique
  instance id for each host imported from the remote Tower
2017-10-27 08:12:14 -04:00
Matthew Jones
71e132ce0f Show instance filter ui element with tower inventory source 2017-10-27 08:12:14 -04:00
Jake McDermott
d6d84e8f5e use abbreviated month name for dashboard chart 2017-10-26 21:44:01 -04:00
Jared Tabor
a0f1c8fc7c Merge pull request #499 from jaredevantabor/project-based-nav
Adding Project Based Navigation of Job Templates
2017-10-26 18:11:34 -07:00
Jared Tabor
4fbfddaa93 changes from PR feedback: removing ghost action icon
and fixing a bug where the list of job templates was improperly
updated when a job was running and live events were received.
2017-10-26 16:50:12 -07:00
Alan Rominger
bc7793def1 Merge pull request #494 from AlanCoding/get_queryset_modest_refactor
Refactor get_queryset inside of access.py
2017-10-26 13:52:08 -04:00
Matthew Jones
fdc7f58bb4 Support passing instance filters to tower inventory src
* Switch ignore ssl errors to default on
* Application inventory source defaults for Tower src
2017-10-26 13:51:05 -04:00
Matthew Jones
6c597ad165 Adding initial credential and invsrc for Tower
* New credential type for Tower
* Inventory source definitions and migrations for Tower
* Initial Tower inventory source script
2017-10-26 13:51:05 -04:00
AlanCoding
48ec69c4f5 retry cleanup of build artifacts for bwrap race condition 2017-10-26 13:33:21 -04:00
AlanCoding
4e16b19ae6 Refactor access.py get_queryset into filtering method
Use BaseAccess class to enforce the superuser and system
  auditor conditions, as well as the optimizations.
Declare optimizations on access class as tuple.
Limit role of access class method narrowly to RBAC filtering.
2017-10-26 11:40:08 -04:00
Aaron Tan
1ea3d55167 Merge pull request #550 from jangsutsr/fix-7737-1
Follow up fix #7737
2017-10-26 11:29:05 -04:00
AlanCoding
b4a446dba0 raise error for invalid type lookup 2017-10-26 11:25:40 -04:00
Aaron Tan
7181bd1c9b Follow up fix #7737
The original fix introduced migration failure, this PR managed to fix
that.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-26 11:15:07 -04:00
Ryan Petrello
9e8ac3b09b Merge pull request #547 from ryanpetrello/fix-cleanup-memory-usage
[3.2.2] Backport (from awx) various memory optimizations for job cleanup
2017-10-26 10:39:58 -04:00
Aaron Tan
e24e1fc1f0 Merge pull request #542 from jangsutsr/fix-7737
[3.2.2]support `AZURE_CLOUD_ENVIRONMENT`
2017-10-26 10:20:14 -04:00
Aaron Tan
f28b48a473 support AZURE_CLOUD_ENVIRONMENT
Relates #7737 of ansible-tower.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-26 10:11:21 -04:00
Michael Abashian
4f58537949 Merge pull request #546 from mabashian/6209-license-readonly-auth-forms
Make codemirror ready-only when auth form field is disabled
2017-10-26 09:58:24 -04:00
mabashian
0512f65c8f Only pass host filter param to smart inv shortcut form 2017-10-26 09:55:36 -04:00
Alan Rominger
641b18fe13 Merge pull request #509 from AlanCoding/lib_test_fixes
update tests to new Ansible core code
2017-10-26 09:28:52 -04:00
Bill Nottingham
c680327ec3 Merge pull request #506 from wenottingham/its-log
Remove accidentally committed log files
2017-10-26 09:17:30 -04:00
AlanCoding
e5d2eb9f3d update tests to new Ansible core code 2017-10-26 08:34:00 -04:00
Bill Nottingham
da25f4104c Update .gitignore for npm log files. 2017-10-25 21:37:29 -04:00
Bill Nottingham
871dc81da3 Avoid task duplication by using default(omit). 2017-10-25 21:30:46 -04:00
mabashian
947bdeed3e Fixed related host list linking 2017-10-25 16:59:44 -04:00
Bill Nottingham
1285e8ffef Add blocks around the different SCMs, for clarity purposes. 2017-10-25 16:58:41 -04:00
Bill Nottingham
a8947c3b96 Remove accidentally committed log files 2017-10-25 16:38:56 -04:00
Greg Considine
565d116955 Merge pull request #505 from gconsidine/ui/fix/multiple-dependency-include
Update dependencies that share Angular as a dependency
2017-10-25 16:07:29 -04:00
Jake McDermott
1fe9f43690 Merge pull request #502 from jakemcdermott/update_test_config
test config cleanup and tooling updates
2017-10-25 15:39:55 -04:00
gconsidine
4a522fd10f Update dependencies that share Angular as a dependency 2017-10-25 14:48:18 -04:00
Jared Tabor
5e349590fd making JOB TEMPLATES tab the last tab on the projects form 2017-10-25 11:21:36 -07:00
Jared Tabor
625c0ad578 Adding Project Based Navigation of Job Templates
This adds a Job Templates tab onto the Project form that gives
the user the ability to see all the job templates using a project.
Clicking the add button on this list will take the user to the job
template form with the project field auto-filled with the project.
2017-10-25 11:21:36 -07:00
Mike McMahon
d3a7bec674 Backport (from awx) various memory optimizations for job cleanup
see: https://github.com/ansible/ansible-tower/issues/7751

0388568 Reduces the job to only looking at objects older than the cutoff date
0234311 missing colon and missing variable usage
399e0e5 switching to iterator and adding the missed Job cleanup
0cd34c1 jobs take count of gte cutoff, process only lt cutoff
2017-10-25 12:17:46 -04:00
Ryan Petrello
652facba9f Merge pull request #545 from ryanpetrello/fix-7746
work around an ansible bug that can cause project syncs to fail
2017-10-25 11:37:15 -04:00
mabashian
b1ef7506ea Make codemirror ready-only when auth form field is disabled 2017-10-25 11:30:26 -04:00
Ryan Petrello
c95d7d465a work around an ansible bug that can cause project syncs to fail
https://github.com/ansible/ansible-tower/issues/7746
https://github.com/ansible/ansible/issues/30064
2017-10-25 11:09:39 -04:00
Jake McDermott
3800a16f3e refactor e2e settings and config modules
This should make the settings and configuration logic less implicit and
a little easier to follow. Some familiarity with the configuration behavior
of nightwatch is still necessary in places - specifically, one should know
that all test_settings defined for non-default environments are treated as
overrides to the values defined for the default environment.
2017-10-25 10:58:39 -04:00
Jake McDermott
d70a0c8c24 cleanup e2e test development tooling and add readme examples 2017-10-25 10:22:18 -04:00
Aaron Tan
e999b35c42 Merge pull request #493 from jangsutsr/fix-474
Add protection against credential getattr
2017-10-25 09:45:25 -04:00
Michael Abashian
70919638ba Merge pull request #541 from mabashian/7608-adhoc-launch-modal
Made adhoc launch modal height dynamic
2017-10-24 14:07:32 -04:00
Michael Abashian
6ea48cd73e Merge pull request #540 from mabashian/6370-delete-inv-src
Delete inv source hosts before inv source
2017-10-24 14:07:08 -04:00
Michael Abashian
63ca8e4134 Merge pull request #538 from mabashian/7707-host-filter-remove-tags-v2
Fixed removing host filter search term with encoded character
2017-10-24 14:06:37 -04:00
Aaron Tan
725cc469cf Merge pull request #544 from jangsutsr/fix-7747
[3.2.2]Include vault credential check in job relaunch
2017-10-24 12:14:01 -04:00
Aaron Tan
553e81f888 Add protection against credential getattr
Relates #474.

Add protection in `__getattr__` method to prevent possible infinite
recursion loop.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-24 12:08:41 -04:00
Aaron Tan
665a4d83e3 Include vault credential check in job relaunch
Relates #7747 of ansible-tower.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-24 11:00:13 -04:00
AlanCoding
018514d657 urlencode unquote host_filter on save 2017-10-24 08:05:08 -04:00
Alan Rominger
73ece87e68 Merge pull request #487 from AlanCoding/E722
flake8: comply with new E722 rule
2017-10-23 14:58:27 -04:00
AlanCoding
90f63774f4 flake8: comply with new E722 rule 2017-10-23 14:36:48 -04:00
Marliana Lara
17aecc17d2 Merge pull request #472 from marshmalien/angular_upgrade_1_6_6
Upgrade to AngularJS v1.6.6
2017-10-23 14:13:11 -04:00
Marliana Lara
9157f53d43 Update angular-scheduler and angular-tz-extensions versions 2017-10-23 12:29:28 -04:00
Marliana Lara
9bb696aa6e Fix for input directive using strict comparison to determined "checked" row 2017-10-23 12:29:27 -04:00
Marliana Lara
32da686724 Handle errors with ProcessErrors 2017-10-23 12:29:26 -04:00
Marliana Lara
cee81e9df6 Fix any unhandled rejections 2017-10-23 12:29:25 -04:00
Ben Thomasson
b544922da1 Fix incorrect JS syntax 2017-10-23 12:29:24 -04:00
Ben Thomasson
b3c2f35358 Change success to then manually 2017-10-23 12:29:23 -04:00
Ben Thomasson
7d767f8f63 Automatically change .error to .catch.
Use this script to change .error to .catch using this linux script:

    #!/bin/bash -ex
    #Run in awx/awx/ui/client/src
    FILES=`grep -l -R "\.error(\s*function\s*(data,\s*status)\s*{" . | xargs`
    sed -i "s/\.error(\s*function\s*(data,\s*status)\s*{/.catch(({data, status}) => {/g" $FILES

    FILES=`grep -l -R "\.error(this\.error\.bind(this))" . | xargs`
    sed -i "s/\.error(this\.error\.bind(this))/\.catch(this\.catch\.bind(this))/g" $FILES

    FILES=`grep -l -R "\.error(\s*function\s*(error)\s*{" . | xargs`
    sed -i "s/\.error(\s*function\s*(error)\s*{/.catch(({error}) => {/g" $FILES

    FILES=`grep -l -R "\.error(\s*function\s*(obj,\s*status)\s*{" . | xargs`
    sed -i "s/\.error(\s*function\s*(obj,\s*status)\s*{/.catch(({obj, status}) => {/g" $FILES

    FILES=`grep -l -R "\.error(\s*function\s*(res,\s*status)\s*{" . | xargs`
    sed -i "s/\.error(\s*function\s*(res,\s*status)\s*{/.catch(({res, status}) => {/g" $FILES

    FILES=`grep -l -R "\.error(\s*function\s*(msg,\s*code)\s*{" . | xargs`
    sed -i "s/\.error(\s*function\s*(msg,\s*code)\s*{/.catch(({msg, code}) => {/g" $FILES

    FILES=`grep -l -R "\.error(\s*function\s*()\s*{" . | xargs`
    sed -i "s/\.error(\s*function\s*()\s*{/.catch(() => {/g" $FILES
2017-10-23 12:29:22 -04:00
Ben Thomasson
834e6c692c Automatically change instances of .success to .then with this linux script:
#Run in awx/awx/ui/client/src

    #!/bin/bash -ex
    FILES=`grep -l -R "\.success(\s*function\s*(data)\s*{" . | xargs`
    sed -i "s/\.success(\s*function\s*(data)\s*{/\.then(({data}) => {/g" $FILES

    FILES=`grep -l -R "\.success(\s*function\s*()\s*{" . | xargs`
    sed -i "s/\.success(\s*function\s*()\s*{/\.then(() => {/g" $FILES

    FILES=`grep -l -R "\.success(this\.success\.bind(this))" . | xargs`
    sed -i "s/\.success(this\.success\.bind(this))/\.then(this\.then\.bind(this))/g" $FILES
2017-10-23 12:29:21 -04:00
Ben Thomasson
fabdab78ef Upgrade AngularJS to 1.6.6 2017-10-23 12:29:10 -04:00
mabashian
71d428433f Made adhoc launch modal height dynamic 2017-10-23 12:09:25 -04:00
Michael Abashian
2f689fffbe Merge pull request #531 from mabashian/4796-workflow-resize-v2
Zoom workflow graph to fit screen on initial load
2017-10-23 10:47:14 -04:00
mabashian
3119d5ed22 Delete inv source hosts before inv source 2017-10-20 20:10:36 -04:00
Ryan Petrello
aab27e9b93 Merge pull request #539 from ryanpetrello/fix-7740
fix a unicode handling bug in inventory source name migration
2017-10-20 13:35:20 -04:00
Ryan Petrello
b60a30cbd4 fix a unicode handling bug in inventory source name migration
see: https://github.com/ansible/ansible-tower/issues/7740
2017-10-20 12:13:44 -04:00
Bill Nottingham
a313109b15 Merge pull request #475 from wenottingham/scm-tooltip
Update tooltip for update-on-launch.
2017-10-20 10:32:34 -04:00
Ryan Petrello
88acd95a72 Merge pull request #534 from ryanpetrello/release_3.2.2
store cloudforms inventory cache files in the proper location on disk
2017-10-20 09:41:05 -04:00
Ryan Petrello
7b36630f47 Merge pull request #460 from ryanpetrello/cloudforms-cache-path
store cloudforms inventory cache files in the proper location on disk
2017-10-20 09:40:02 -04:00
Jaron Rolfe
cc5f329d33 Explanation for image removal block and idiomatic handling of var that enables it 2017-10-19 21:43:37 -04:00
mabashian
c3fbb07535 Fixed removing host filter search term with encoded character 2017-10-19 19:31:41 -04:00
Bill Nottingham
31c1e1684d Update tooltip for update-on-launch.
This better describes how this setting is used.
2017-10-19 16:57:50 -04:00
Alan Rominger
083e56d97d Merge pull request #464 from AlanCoding/actiony_permissions
fix bug where JT admins could not edit spec
2017-10-19 16:22:14 -04:00
AlanCoding
098a407e25 fix bug where JT admins could not edit spec 2017-10-19 16:05:44 -04:00
Alan Rominger
6347db56c5 Merge pull request #473 from AlanCoding/test_fix_exc
fix test fallout from 321 merge
2017-10-19 16:05:01 -04:00
AlanCoding
e660879a00 fix test fallout from 321 merge 2017-10-19 15:47:51 -04:00
Matthew Jones
5635f5fb49 Merge branch 'release_3.2.1' into devel
* release_3.2.1:
  fallback to empty dict when processing extra_data
  fix migration problem from 3.1.1
  move 0005a migration to 0005b
  feedback on ad hoc prohibited vars error msg
  Fix the way we include i18n files in sdist
  Fix migrations to support 3.1.2 -> 3.2.1+ upgrade path
  fix missing parameter to update_capacity method
  fix WARNING log when launching ad hoc command
  Validate against ansible variables on ad hoc launch
  do not allow ansible connection type of local for ad_hoc
  work around an ansible 2.4 inventory caching bug
  fix scan job migration unicode issue
  Assert isolated nodes have capacity set to 0 and restored based on version
  Set capacity to zero if the isolated node has an old version
2017-10-19 13:30:26 -04:00
Michael Abashian
8d043e6f85 Merge pull request #532 from mabashian/7681-disassociate-help-popover
Disassociate host/group popover text
2017-10-19 11:12:28 -04:00
Michael Abashian
31602c4b28 Merge pull request #533 from mabashian/7720-adhoc-launch-error
Fixed error message when launching adhoc command
2017-10-19 11:11:44 -04:00
Ryan Petrello
57cd8adc2d Merge pull request #537 from ryanpetrello/ovirt4-auth-module
properly support authentication for ovirt4 ansible modules
2017-10-19 09:57:16 -04:00
Ryan Petrello
c1e20fe7a0 properly support authentication for ovirt4 ansible modules
see: https://github.com/ansible/ansible-tower/issues/6522
see: https://github.com/ansible/ansible-tower/issues/6522#issuecomment-337909863
2017-10-19 09:47:25 -04:00
Ryan Petrello
b1f5529aa4 Merge pull request #536 from ryanpetrello/fix-7741
properly follow symlinks for bwrap'd working directories
2017-10-19 08:58:16 -04:00
Jared Tabor
0497a4ba96 Merge pull request #396 from jaredevantabor/ui-router
Upgrade Angular UI Router to v1.0.7
2017-10-18 20:31:03 -07:00
Jared Tabor
275e02a8cf fixing issue with scrolling due to UI-router upgrade 2017-10-18 20:16:05 -07:00
Jared Tabor
887a09d052 fixing issue from UI-router upgrade where document title wouldn't update
with the name of the state.
2017-10-18 16:34:39 -07:00
Jared Tabor
02af117f51 adjusting unit tests to pass 2017-10-18 16:34:39 -07:00
Jared Tabor
6e2de1b4b0 changing "dyanmic" to "dynamic" 2017-10-18 16:34:39 -07:00
Jared Tabor
47f743e623 fixing removeTerm for smart search to work 2017-10-18 16:34:39 -07:00
Jared Tabor
4f0fa57a1b removing $urlMatcherFactory and $urlRouter b/c they're deprecated
in favor or $urlService
2017-10-18 16:34:39 -07:00
Jared Tabor
3d5f301a07 removing notify:false, it's deprecated 2017-10-18 16:34:39 -07:00
Jared Tabor
f9c991e660 replacing all stateChangeSuccess for $transition.onSuccess 2017-10-18 16:34:39 -07:00
Jared Tabor
6e3f4a7a6e fixing issues w/ lazyloaded states 2017-10-18 16:34:38 -07:00
Jared Tabor
07139820cb updating angular-ui-router to v. 1.0.7 2017-10-18 16:34:38 -07:00
Alan Rominger
350699eda8 Merge pull request #504 from AlanCoding/fk_error_msg
[3.2.2] tweak of error message for ForeignKey filters
2017-10-18 19:06:12 -04:00
Ryan Petrello
764356bf47 Merge pull request #459 from ryanpetrello/simplified-inventory-building
remove support for job-scoped auth tokens
2017-10-18 17:35:37 -04:00
Ryan Petrello
ea683344f5 remove support for job-scoped auth tokens
When Jobs and Adhoc Commands are launched, awx uses a job-scoped auth
token to dynamically fetch inventory via the awx REST API; this process
is complicated, hard to debug, and likely won't work going forward with
oauth2-based tokens in awx

see: https://github.com/ansible/awx/issues/21
2017-10-18 17:11:47 -04:00
Ryan Petrello
10a7544d68 properly follow symlinks for bwrap'd working directories
see: https://github.com/ansible/ansible-tower/issues/7741
2017-10-18 17:03:10 -04:00
Jared Tabor
d3eea5e694 generalizing class which is ignored when trying to drag the host-event-modal
it was only applied to .CodeMirror, which is only used by the JSON tab
2017-10-18 10:55:53 -07:00
Marliana Lara
8fd9fea113 Merge pull request #530 from marshmalien/fix/7702-job-stdout-wordwrap
Fix job standard out word-wrap
2017-10-18 13:51:36 -04:00
Jared Tabor
bff13e168a Merge pull request #461 from jaredevantabor/host-event-selecting
Fixing Host Event Modal Selecting
2017-10-18 09:23:46 -07:00
Wayne Witzel III
470a4b7746 Merge pull request #535 from wwitzel3/release_3.2.2
use getattr in social auth django strategy
2017-10-18 11:02:11 -04:00
Wayne Witzel III
38c2ea7025 use getattr in social auth django strategy 2017-10-18 10:20:44 -04:00
Jared Tabor
774a3da7f4 generalizing class which is ignored when trying to drag the host-event-modal
it was only applied to .CodeMirror, which is only used by the JSON tab
2017-10-17 16:03:39 -07:00
Bill Nottingham
5f3b4575de Merge pull request #456 from wenottingham/i-am-becoming
Set ANSIBLE_BECOME_ASK_PASS to avoid deprecation warning.
2017-10-17 18:11:33 -04:00
Ryan Petrello
5895654538 store cloudforms inventory cache files in the proper location on disk
with process isolation enabled (which is the awx default), cloudforms
caches inventory script results on disk; awx should direct cloudforms to
store these cache files in a location that's exposed to the isolated
environment

see: ansible/ansible#31760
2017-10-17 17:07:21 -04:00
Ryan Petrello
59f9967dba store cloudforms inventory cache files in the proper location on disk
with process isolation enabled (which is the awx default), cloudforms
caches inventory script results on disk; awx should direct cloudforms to
store these cache files in a location that's exposed to the isolated
environment

see: ansible/ansible#31760
2017-10-17 17:06:48 -04:00
Bill Nottingham
058475c131 Set ANSIBLE_BECOME_ASK_PASS to avoid deprecation warning. 2017-10-17 16:00:16 -04:00
mabashian
b402d9ba6d Fixed error message when launching adhoc command 2017-10-17 14:42:24 -04:00
Chris Meyers
3685cb5517 Merge pull request #440 from chrismeyersfsu/fix-callback_unit_tests
fixes ansible callback import json warning
2017-10-17 13:53:45 -04:00
mabashian
5db478a4a0 Zoom workflow graph to fit screen on initial load 2017-10-17 12:59:44 -04:00
mabashian
059347eec3 Made disassociate host/group titles more descriptive 2017-10-17 10:23:17 -04:00
mabashian
e8dbfa42cf Fixed disassociate host from group help text 2017-10-17 10:10:34 -04:00
Michael Abashian
3d12e040ed Merge pull request #528 from mabashian/5129-jt-spinner-v2
Moved wait stop calls on jt form so that they fire right before reloading state
2017-10-16 16:20:02 -04:00
Michael Abashian
fceca3bcae Merge pull request #527 from mabashian/7697-smart-inventory-shortcut
Fixed smart inv button bug navigating to page 2 of hosts.
2017-10-16 16:19:40 -04:00
Chris Meyers
4e2cf62e89 fixes ansible callback import json warning
[WARNING]: Failure using method (v2_runner_on_ok) in callback plugin
(<awx_display_callback.module.AWXDefaultCallbackModule object at
0x47f6090>):
'module' object has no attribute 'dumps'

The above error is thrown by ansible if callback plugins don't respect
the same import precedence configuration as Ansible. ansible callback/*
dir includes a json.py file. This is imported by ansible
callback/__init__.py when a callback plugin implementation imports from
Ansible callback base without setting the correct import precedence.
2017-10-16 10:29:41 -04:00
Jaron Rolfe
5e17d72922 Improve push capabilities and allow build playbook to push 2017-10-16 00:38:28 -04:00
Jaron Rolfe
67df298f21 Replace deprecated "include" with "include_tasks" 2017-10-15 22:15:11 -04:00
Alan Rominger
353a9a55c7 Merge pull request #406 from AlanCoding/variables_debt
Consolidation of variables parsing throughout codebase
2017-10-13 15:40:36 -04:00
Matthew Jones
0ac3598ca5 Merge pull request #431 from matburt/lower_awx_uid
Lower the default uid by which we'll rewrite passwd
2017-10-13 15:33:36 -04:00
Jake McDermott
06f06173b0 Merge pull request #408 from jakemcdermott/smoke-tests
add smoke test
2017-10-13 15:21:00 -04:00
Marliana Lara
fcd03fb1c2 Fix job standard out error message word-wrap 2017-10-13 14:59:57 -04:00
Matthew Jones
da5e6883d4 Lower the default uid by which we'll rewrite passwd
This fixes some issues with openshift under certain security policies
2017-10-13 14:27:30 -04:00
Matthew Jones
ef05df9224 Merge pull request #421 from carbonin/use_http_host_in_slash_redirect
Use $http_host in trailing slash redirect
2017-10-13 14:12:21 -04:00
Ryan Petrello
8b8c0e325f Merge pull request #430 from ryanpetrello/fix-isolated-version
stop hard-coding the awx version in the isolated development environment
2017-10-13 12:35:37 -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
AlanCoding
993fa9290d additional verbosity for vars parsing exceptions 2017-10-13 11:41:11 -04:00
Jim Ladd
5924571904 Merge pull request #384 from jladdjr/awx365_post_response_discrepancy
Address discrepancy in POST response between jobs launches and project / inventory source updates
2017-10-13 09:59:29 -04:00
Chris Meyers
9cc4520a34 Merge pull request #409 from chrismeyersfsu/replay_job_events
add job event replay awx-manage command
2017-10-13 09:39:28 -04:00
Chris Meyers
62987196cb add speedup support to event replay and stats
* add tests
* add verbosity support
2017-10-13 09:25:18 -04:00
Nick Carboni
cfa21af432 Use $http_host in trailing slash redirect
This allows the port from the request header to be used
rather than having the request redirected to the port
being used inside the container which may not be
accessible

Fixes #420
related #420

Signed-off-by: Nick Carboni <ncarboni@redhat.com>
2017-10-12 17:35:55 -04:00
Jim Ladd
6f1c7ee733 Update several endpoints to match JT launch POST response
Signed-off-by: Jim Ladd <jladd@redhat.com>
2017-10-12 17:35:34 -04:00
mabashian
2cab6982c1 Moved wait stop calls on jt form so that they fire right before reloading state 2017-10-12 17:01:32 -04:00
mabashian
3ede367df4 Fixed smart inv button bug navigating to page 2 of hosts. Added tooltip when button is disabled. 2017-10-12 16:56:21 -04:00
Aaron Tan
bcd2a8f211 Merge pull request #382 from jangsutsr/fix-264
Implement workflow job failure
2017-10-12 16:34:08 -04:00
Jaron Rolfe
ee15db4c7c allow for private registry without latest tag
The logic that sets awx_web_docker_actual_image and awx_task_docker_actual_image creates and pushes images to the private registry tagged with the awx version, which is appropriate, but then tries to pull with no tag. (so docker defaults to "latest", which does not exist)
2017-10-12 15:57:34 -04:00
Alan Rominger
f6bf0ad21f Merge pull request #521 from AlanCoding/update_isolated
[3.2.2] update isolated container requirements
2017-10-12 14:24:38 -04:00
Alan Rominger
ad0e43dc52 Merge pull request #379 from AlanCoding/awx160
Enforce max line length of 160 characters
2017-10-12 14:05:31 -04:00
Aaron Tan
5287e5c111 Implement workflow job failure
Relates #264.

This PR proposed and implemented a way of defining workflow failure
state:

A workflow job fails if one of the conditions below satisfies.
* At least one node runs into states `canceled` or `error`.
* At least one leaf node runs into states `failed`, but no child node is
  spawned to run (no error handler).

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-12 11:08:33 -04:00
Chris Meyers
e19a57c50a add job event replay awx-manage command
* awx-manage replay_job_event --job_id <id>
2017-10-12 09:40:30 -04:00
Jake McDermott
113d62a95f add smoke test 2017-10-11 18:28:56 -04:00
Jake McDermott
b5899c193a update object fields and commands 2017-10-11 18:28:36 -04:00
Greg Considine
817b397d20 Merge pull request #524 from gconsidine/ui/fix/remove-unsupported-query-tokens
Remove unsupported tokens from search generated queries
2017-10-11 17:54:26 -04:00
AlanCoding
8b41810189 Consolidation of variables parsing throughout codebase
* Remove attempted support of key=value pattern, because
  it is not actually allowed in practice
* Have variables validator defer to the utils variables parser
* Prune serializers of a handful of cases that previous
  attempts at cleanup have missed
2017-10-11 16:21:50 -04:00
Matthew Jones
f25ab7c6da Merge pull request #403 from jangsutsr/fix-391
Add extra encoding to ldap_dn verification
2017-10-11 14:35:35 -04:00
AlanCoding
f03b40aa50 enforce max line length of 160 characters 2017-10-11 12:38:39 -04:00
Aaron Tan
9dd4c7aaa3 Add extra encoding to ldap_dn verification
Relates #391.

Upstream `python-ldap` (surprisingly) does not support utf-8 DN. So
explicit encoding is needed.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-11 12:28:26 -04:00
jlmitch5
b61fdaf721 Merge pull request #526 from jlmitch5/hideWorkflowAndSurveyButtons
hide workflow and survey buttons from non-detail tabs
2017-10-11 11:35:35 -04:00
John Mitchell
1603106cb4 include workflow editor when showing buttons' 2017-10-11 10:58:38 -04:00
Aaron Tan
1454000b91 Merge pull request #522 from jangsutsr/ldap_docs
Add LDAP deploy instructions
2017-10-11 10:07:29 -04:00
Alan Rominger
b2e63d5e47 Merge pull request #510 from AlanCoding/event_accounting
add logger statement for number of events
2017-10-10 22:12:11 -04:00
Alan Rominger
e7ede6af4a Merge pull request #525 from AlanCoding/update_isolated_version
[3.2.2] update fallback isolated version to 3.2.2
2017-10-10 22:06:09 -04:00
Alan Rominger
5503d4efb4 Merge pull request #523 from AlanCoding/fix_isolated_capacity
[3.2.2] fix equation for isolated instance capacity
2017-10-10 22:04:03 -04:00
Jake McDermott
d4af743805 Merge pull request #397 from jakemcdermott/unit-linting
additional test de-linting
2017-10-10 20:56:40 -04:00
Jake McDermott
8b395c934c de-lint unit tests 2017-10-10 20:23:15 -04:00
Jake McDermott
ae0855614b update unit test file names 2017-10-10 20:18:05 -04:00
Jake McDermott
169cd1a466 Merge pull request #395 from gconsidine/ui/combine-test-dirs
Ui/combine test dirs
2017-10-10 18:33:12 -04:00
John Mitchell
54640dbca0 hide workflow and survey buttons from non-detail tabs
since the two are basically sub-states of the edit form (detail tab), they should only show up when that tab is selected
2017-10-10 17:08:04 -04:00
gconsidine
82f81752e4 De-lint test files and update test,build config 2017-10-10 16:59:42 -04:00
gconsidine
8b6cc0e323 Combine test directories 2017-10-10 16:59:42 -04:00
Greg Considine
c0996f5fb1 Merge pull request #394 from gconsidine/ui/fix/closing-curly-brace
Add closing curly brace in strings file
2017-10-10 16:58:41 -04:00
gconsidine
3998796bf0 Add closing curly brace in strings file 2017-10-10 16:42:56 -04:00
Matthew Jones
6fa283fc98 Merge branch 'release_3.2.0' into devel
* release_3.2.0: (66 commits)
  fix workflow maker lookup issues
  adding extra logic check for ansible_facts in smart search
  adding "admin_role" as a default query param for insights cred lookup
  changing insights cred lookup to not use hard coded cred type
  fix rounding of capacity percentage
  Catch potential unicode errors when looking up addrinfo
  fixing typo with adding query params for instance groups modal
  move percentage capacitty to variable
  Add unit test for inventory_sources_already_updated
  Check for inventory sources already updated from start args
  Fixed inventory completed jobs pagination bug by setting default page size
  Remove the logic blocking dependent inventory updates on callbacks
  fix instance group percentage
  Remove host-filter-modal import
  Fix partial hover highlight of host filter modal row
  Removed leading slash on basePath
  Fixed host nested groups pagination
  Added trailing slash to basePath
  Fixed nested groups pagination
  Fixed host_filter searching related fields
  ...
2017-10-10 16:09:43 -04:00
AlanCoding
eab82f3efa updated fallback isolated version to 3.2.2 2017-10-10 15:45:20 -04:00
gconsidine
9e3d90896b Remove unsupported tokens from search generated queries 2017-10-10 15:22:17 -04:00
AlanCoding
e66a1002ee fix equation for isolated instance capacity 2017-10-10 14:58:09 -04:00
Aaron Tan
82160e2072 Add LDAP deploy instructions
Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-10 14:54:53 -04:00
AlanCoding
e814f28039 add logger statement for number of events 2017-10-10 14:48:00 -04:00
AlanCoding
03e58523b2 tweak of error message for ForeignKey filters 2017-10-10 14:47:37 -04:00
AlanCoding
341ef411a4 update isolated container requirements 2017-10-10 14:46:41 -04:00
Aaron Tan
8d19555cf1 Merge pull request #519 from jangsutsr/fix-7726
Disable inventory var overwrite in inv import
2017-10-10 14:38:50 -04:00
Greg Considine
d23fd0515d Merge pull request #518 from gconsidine/ui/fix/credential-kind-list-display
Use credential_type to fetch associated types in list view
2017-10-10 14:38:50 -04:00
Aaron Tan
b9483c28b0 Disable inventory var overwrite in inv import
Relates #7726 of ansible-tower.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-10 14:38:50 -04:00
Alan Rominger
6f9fc0c3f8 Merge pull request #514 from AlanCoding/no_ordereddit
[3.2.2] prevent OrderedDict syntax in error message
2017-10-10 14:38:49 -04:00
gconsidine
766a088749 Use credential_type to fetch associated types in list view 2017-10-10 14:38:49 -04:00
Chris Church
2b539cab85 Merge pull request #511 from cchurch/ldap-filter-dash-support
[3.2.2] Support dash in LDAP attribute names in filters.
2017-10-10 14:38:49 -04:00
AlanCoding
2fb67a3648 prevent OrderedDict syntax in error message 2017-10-10 14:38:49 -04:00
Greg Considine
64c5e3994e Merge pull request #513 from gconsidine/ui/fix/lookup-component-empty-input
Set lookup value changed from something to nothing to be null
2017-10-10 14:38:49 -04:00
Alan Rominger
7b792926eb Merge pull request #509 from AlanCoding/max_ui_events
[3.2.2] add CTiT setting for max UI job events
2017-10-10 14:38:49 -04:00
Chris Church
c067788428 Support dash in LDAP attribute names in filters. 2017-10-10 14:38:49 -04:00
gconsidine
b7071a48c2 Set lookup value changed from something to nothing to be null 2017-10-10 14:38:49 -04:00
AlanCoding
dee4b72303 add CTiT setting for max UI job events 2017-10-10 14:38:49 -04:00
Alan Rominger
5994a77b84 Merge pull request #508 from AlanCoding/password_handholding
[3.2.2] reword error message about encrypted user input
2017-10-10 14:38:48 -04:00
Marliana Lara
f93506fe2c Merge pull request #491 from marshmalien/fix/7661-host-config-key-border
[3.2.2] Fix missing right border of lookup buttons
2017-10-10 14:38:48 -04:00
Alan Rominger
7c86e38b81 Merge pull request #506 from AlanCoding/active_job_period
[3.2.2] add period to active job conflict error
2017-10-10 14:38:48 -04:00
AlanCoding
1c374fba7d reword error message about encrypted user input 2017-10-10 14:38:48 -04:00
Marliana Lara
2cc9e2ca0b Fix hidden right border of form input lookup buttons 2017-10-10 14:38:48 -04:00
Alan Rominger
335dfd564a Merge pull request #505 from AlanCoding/v1_jt_vc_ct_sf
[3.2.2] Exclude credential type content from v1
2017-10-10 14:38:48 -04:00
AlanCoding
5380d57ce8 add period to active job conflict error
Rename StateConflict to ActiveJobConflict and used shared
message inside of that exception class.
2017-10-10 14:38:48 -04:00
AlanCoding
a01f80db5b Exclude credential type content from v1
credential_type_id was showing up in vault_credential
summary_fields in API v1
2017-10-10 14:38:48 -04:00
Aaron Tan
d7eba47adb Merge pull request #456 from jangsutsr/fix-7656
[3.2.2]Remove search term separators
2017-10-10 14:38:47 -04:00
Alan Rominger
5fffdec69d Merge pull request #490 from AlanCoding/many_deleter_320
[3.2.2] Delete all hosts or groups from inventory source
2017-10-10 14:38:47 -04:00
Aaron Tan
358ef76529 Remove search term separators
Relates #7656 in ansible-tower.

We have been using comma `,` and space ` ` to separate search terms in
query string `<field_name>__search=<search terms>`, however in general
we can always use `&` to achieve separation like
`<field_name>__search=<search term 1>&<field_name>__search=<search term
2>&...`. Using specific delimiters makes it impossible for search terms
to contain those delimiters, so they are better off being removed.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-10 14:38:47 -04:00
Aaron Tan
bb628c52ad Merge pull request #487 from jangsutsr/fix-7586
[3.2.2]Fix SAML auth behind load balancer issue.
2017-10-10 14:38:47 -04:00
AlanCoding
d2e0b26287 allow deleting hosts and groups from inv src sublists 2017-10-10 14:38:47 -04:00
Ryan Petrello
f2d46baf09 Merge pull request #496 from ryanpetrello/fix-6683
fix a bug when Tower is integrated with ipsilon SAML server
2017-10-10 14:38:47 -04:00
Ryan Petrello
c6fdadd7f2 Merge pull request #497 from ryanpetrello/fix-7259
properly sanitize encrypted default passwords in JT.survey_spec
2017-10-10 14:38:47 -04:00
Aaron Tan
cc8b115c6a Fix SAML auth behind load balancer issue.
Relates to #7586 of ansible-tower as a follow-up of fix #420 of tower.

The original fix works for Django version 1.9 and above, this PR
expanded the solution to Django verison 1.8 and below.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-10 14:38:47 -04:00
Ryan Petrello
82d05e0a10 properly sanitize encrypted default passwords in JT.survey_spec
see: https://github.com/ansible/ansible-tower/issues/7259
2017-10-10 14:38:47 -04:00
Ryan Petrello
9978b3f9ad Merge pull request #489 from ryanpetrello/release_3.2.2
fix busted 3.2.2 activity stream migration
2017-10-10 14:38:46 -04:00
Alan Rominger
4f4af058b3 Merge pull request #480 from AlanCoding/committed_cap
[3.2.2] add IG committed capacity to serializer
2017-10-10 14:38:46 -04:00
Ryan Petrello
b372cebf8d fix a bug when Tower is integrated with ipsilon SAML server
https://github.com/ansible/ansible-tower/issues/6683
2017-10-10 14:38:46 -04:00
Alan Rominger
3df8e2beb1 Merge pull request #494 from AlanCoding/wfjt_perm_fix2
[3.2.2] fix bug checking WFJT node for prompted resources
2017-10-10 14:38:46 -04:00
AlanCoding
c45fbcf2ee add IG committed capacity to serializer 2017-10-10 14:38:46 -04:00
Ryan Petrello
5efa50788f Merge pull request #481 from ryanpetrello/fix-7046
[3.2.2] encrypt job survey data
2017-10-10 14:38:46 -04:00
AlanCoding
3abbe87e10 fix bug checking WFJT node for prompted resources 2017-10-10 14:38:46 -04:00
Ryan Petrello
f26bdb3e96 migrate existing survey passwords to be encrypted
see: https://github.com/ansible/ansible-tower/issues/7046
2017-10-10 14:38:46 -04:00
Ryan Petrello
4be4e3db7f encrypt job survey data
see: https://github.com/ansible/ansible-tower/issues/7046
2017-10-10 14:38:46 -04:00
Alan Rominger
4ea92f0dcb Merge pull request #306 from AlanCoding/new_perf_logging
[3.2.2] new method of performance logging
2017-10-10 14:38:45 -04:00
Ryan Petrello
a0cfbb93e9 fix busted 3.2.2 activity stream migration
see: ansible/ansible-tower#7704
2017-10-10 14:38:45 -04:00
Aaron Tan
08a784d50c Merge pull request #474 from jangsutsr/fix-7386
Include Tower configurations into activity stream
2017-10-10 14:38:45 -04:00
AlanCoding
9ee18d02c8 new method of performance logging 2017-10-10 14:38:45 -04:00
Ryan Petrello
4fd190e4c8 Merge pull request #468 from ryanpetrello/smarter-credtype-migrations
[3.2.2] add new credential types in a more stable way in migrations
2017-10-10 14:38:45 -04:00
Aaron Tan
a11e33458f Include Tower configurations into activity stream
Relates #7386 of ansible-tower.

Due to the uniqueness of Tower configuration datastore model, it is not
fully compatible with activity stream workflow. This PR introduced
setting field for activitystream model along with other changes to make
Tower configuration a special case for activity streams.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-10 14:38:45 -04:00
Aaron Tan
84fdfbb898 Merge pull request #469 from jangsutsr/fix-7684
[3.2.2] Prevent slugify username from social sso backends
2017-10-10 14:38:45 -04:00
Ryan Petrello
f4a252a331 add new credential types in a more stable way in migrations
instead of writing individual migrations for new built-in credential
types, this change makes the "setup_tower_managed_defaults" function
idempotent so that it only adds the credential types you're missing
2017-10-10 14:38:45 -04:00
Ryan Petrello
d4fe60756b Merge pull request #466 from ryanpetrello/ovirt4-inv-source
don't install pycurl from pypi; use a system package instead
2017-10-10 14:38:45 -04:00
Aaron Tan
f4ab979b59 Prevent slugify username from social sso backends
Relates #7684 of ansible-tower.

Slugify username in python-social-auth means disallowing
any non-alphanumerial characters, which is an over-kill
for awx/tower, thus disabling it.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-10-10 14:38:45 -04:00
Ryan Petrello
3d3d79b6b3 Merge pull request #464 from ryanpetrello/ovirt4-inv-source
add ovirt sdk dependency for ovirt4 support
2017-10-10 14:38:44 -04:00
Ryan Petrello
e06d4d7734 don't install pycurl from pypi; use a system package instead
the ovirt4 sdk relies on pycurl, which is complicated to install w/ pip;
rely on pycurl to be provided by a system package instead
2017-10-10 14:38:44 -04:00
Ryan Petrello
ab18a4a440 Merge pull request #454 from ryanpetrello/ovirt4-inv-source
support ovirt4 as a built-in inventory source
2017-10-10 14:38:44 -04:00
Ryan Petrello
7438062b97 add ovirt sdk dependency for ovirt4 support 2017-10-10 14:38:44 -04:00
Ryan Petrello
4510cd11db Merge pull request #452 from ryanpetrello/fix-7609
disable GCE inventory caching w/ a .ini file
2017-10-10 14:38:44 -04:00
Ryan Petrello
74f2509482 support ovirt4 as a built-in inventory source
see: https://github.com/ansible/ansible-tower/issues/6522
2017-10-10 14:38:44 -04:00
Ryan Petrello
f84e42ed15 Merge pull request #451 from ryanpetrello/fix-7609
disable GCE inventory source cache
2017-10-10 14:38:44 -04:00
Ryan Petrello
94b4dabee2 disable GCE inventory caching w/ a .ini file
see: https://github.com/ansible/ansible-tower/issues/7609
see: https://github.com/ansible/tower/pull/451#pullrequestreview-64454393
2017-10-10 14:38:44 -04:00
Ryan Petrello
94d44e8791 disable GCE inventory source cache
by default, the GCE inventory script caches results on disk for
5 minutes; disable this behavior

see: https://github.com/ansible/ansible-tower/issues/7609
2017-10-10 14:38:44 -04:00
Ryan Petrello
d24166bd68 Merge pull request #442 from ryanpetrello/fix-7554
properly encode LDAP DN values on validation
2017-10-10 14:38:43 -04:00
Ryan Petrello
62f82e7a7e Merge pull request #441 from ryanpetrello/fix-7607
allow the credential type to be changed for unused credentials
2017-10-10 14:38:43 -04:00
Ryan Petrello
7a21a45781 properly encode LDAP DN values on validation
see: https://github.com/ansible/ansible-tower/issues/7554
2017-10-10 14:38:43 -04:00
Ryan Petrello
91ec0a4482 Merge pull request #430 from ryanpetrello/fix-7620
don't show polymorphic_ctype in unique validation error messaging
2017-10-10 14:38:43 -04:00
Ryan Petrello
c8f4320b58 allow the credential type to be changed for unused credentials
see: https://github.com/ansible/ansible-tower/issues/7607
2017-10-10 14:38:43 -04:00
Ryan Petrello
71a725c5f8 Merge pull request #432 from ryanpetrello/fix-7513
add awx meta variables to adhoc command extra_vars
2017-10-10 14:38:43 -04:00
Ryan Petrello
96572fe3d4 don't show polymorphic_ctype in unique validation error messaging
see: https://github.com/ansible/ansible-tower/issues/7620
2017-10-10 14:38:43 -04:00
Ryan Petrello
554a9586c6 add awx meta variables to adhoc command extra_vars
see: https://github.com/ansible/ansible-tower/issues/7513
2017-10-10 14:38:37 -04:00
Ryan Petrello
f41c8cf4f2 Merge pull request #426 from ryanpetrello/fix-7655
don't append to the activity stream on LDAP group disassociate
2017-10-10 14:38:18 -04:00
Ryan Petrello
f2f42c2c8a don't append to the activity stream on LDAP group disassociate
for organizations w/ a large number of ldap orgs/teams, this results in
a _huge_ number of extraneous activity stream entries

see: https://github.com/ansible/ansible-tower/issues/7655
2017-10-10 14:38:18 -04:00
Alan Rominger
70f8ec78de Merge pull request #517 from AlanCoding/vars_exception
fallback to empty dict when processing extra_data
2017-10-10 09:30:06 -04:00
AlanCoding
e2c398ade2 fallback to empty dict when processing extra_data 2017-10-10 08:13:45 -04:00
Matthew Jones
87e695ff6c Merge pull request #330 from Kickimanjaro/patch-1
Update INSTALL.md
2017-10-09 22:44:58 -04:00
Oliver Vollmer
8a8d710e20 moved note to Docker Prereqs, dropped extra OS specific commands 2017-10-09 19:13:55 -05:00
Alan Rominger
7365e4a63f Merge pull request #516 from AlanCoding/abc_migrations
Fix 3.1.1->3.2.1 migration error
2017-10-09 16:37:35 -04:00
AlanCoding
d4fc4bcd61 fix migration problem from 3.1.1 2017-10-09 15:49:38 -04:00
AlanCoding
4237b9ed5c move 0005a migration to 0005b 2017-10-09 15:48:52 -04:00
Alan Rominger
2dd2541550 Merge pull request #507 from AlanCoding/adhoc_word_smithing
[3.2.2] feedback on ad hoc prohibited vars error msg
2017-10-06 14:15:16 -04:00
AlanCoding
edda5e5420 feedback on ad hoc prohibited vars error msg 2017-10-06 14:07:38 -04:00
Matthew Jones
721674f0cd Merge pull request #502 from wwitzel3/release_3.2.1
[3.2.1] Fix broken migration from 3.1.1/3.1.2 -> 3.2.1
2017-10-06 13:19:34 -04:00
Shane McDonald
f97ca9c42f Fix the way we include i18n files in sdist 2017-10-06 11:57:08 -04:00
Wayne Witzel III
8f883d8d43 Fix migrations to support 3.1.2 -> 3.2.1+ upgrade path 2017-10-06 09:25:43 -04:00
Wayne Witzel III
5bcf704b76 Merge pull request #501 from wwitzel3/release_3.2.1
[3.2.1] Fix missing update_capacity paramenter
2017-10-06 00:37:07 -04:00
Wayne Witzel III
2818bb5833 fix missing parameter to update_capacity method 2017-10-06 00:23:12 -04:00
Alan Rominger
e8b79cde4a Merge pull request #499 from AlanCoding/adhoc_local
[3.2.1] Disallow Ansible vars in adhoc launch serializer + wayne's change
2017-10-05 15:30:06 -04:00
AlanCoding
81c14ce942 fix WARNING log when launching ad hoc command 2017-10-05 13:42:23 -04:00
AlanCoding
eacbeef660 Validate against ansible variables on ad hoc launch
Share code between this check for ad hoc and JT callback
2017-10-05 12:14:05 -04:00
Wayne Witzel III
02e3f45422 do not allow ansible connection type of local for ad_hoc 2017-10-04 17:55:36 -04:00
Chris Meyers
00afc87af1 Merge pull request #493 from chrismeyersfsu/fix-scan_job_migrations_unicode2
fix scan job migration unicode issue
2017-10-03 16:28:54 -04:00
Ryan Petrello
e48bebb761 Merge pull request #495 from ryanpetrello/fix-7713
work around an ansible 2.4 inventory caching bug
2017-10-03 16:26:41 -04:00
Ryan Petrello
4c5ec2fb3a work around an ansible 2.4 inventory caching bug
see: https://github.com/ansible/awx/issues/246
2017-10-03 15:45:11 -04:00
Chris Meyers
cad8710ac7 fix scan job migration unicode issue 2017-10-03 11:31:43 -04:00
Greg Considine
d02221702f Merge pull request #348 from gconsidine/ui/fix/disable-autofill-on-form
Add autocomplete attr to component form
2017-10-02 19:27:02 -04:00
gconsidine
4955dd9ab3 Add autocomplete attr to component form
Signed-off-by: gconsidine <greg@gregconsidine.com>
2017-10-02 17:06:07 -04:00
Marliana Lara
40f57b2552 Merge pull request #314 from marshmalien/test/side-nav
Side Nav Unit Tests
2017-10-02 15:36:36 -04:00
Marliana Lara
e19b4e0c8c Fix karma config and remove karma-ng-html2js-preprocessor 2017-10-02 15:10:36 -04:00
Wayne Witzel III
96fd07d0f3 Assert isolated nodes have capacity set to 0 and restored based on version 2017-10-02 14:43:19 -04:00
Wayne Witzel III
692007072d Set capacity to zero if the isolated node has an old version 2017-10-02 14:43:18 -04:00
Marliana Lara
2f8155763b Add Side Nav Item unit tests
Signed-off-by: Marliana Lara <mlara@redhat.com>
2017-10-02 13:36:06 -04:00
Marliana Lara
5c5293783d Add Side Nav directive unit tests 2017-10-02 13:35:32 -04:00
Marliana Lara
7486503a16 Add Layout directive unit tests 2017-10-02 13:35:31 -04:00
Greg Considine
e7f4e79248 Merge pull request #339 from gconsidine/ui/fix/document-reference-on-start
Use $document instead of document for on fn
2017-10-02 13:34:27 -04:00
gconsidine
f49ed838c7 Use $document instead of document for on fn
Signed-off-by: gconsidine <greg@gregconsidine.com>
2017-10-02 12:53:56 -04:00
Alan Rominger
8c117e9ef1 Merge pull request #337 from AlanCoding/admin_cancel
allow WFJT admins to cancel scheduled jobs
2017-10-02 11:33:46 -04:00
AlanCoding
681770e25a allow WFJT admins to cancel scheduled jobs 2017-10-02 10:25:49 -04:00
jlmitch5
06210624ce Merge pull request #486 from jlmitch5/fixModalOnModalBS
fix workflow maker lookup issues
2017-09-29 19:55:20 -04:00
John Mitchell
713c9614a9 fix workflow maker lookup issues 2017-09-29 19:50:17 -04:00
Kickimanjaro
cbb95b3bd4 Update INSTALL.md
Followed instructions to the letter from a new install and found that there was no mention that Docker service must be started. Tried to add this mention where it would have benefited me, but I am new to github and not sure if I'm doing this right.
2017-09-29 18:48:33 -05:00
Jared Tabor
f3c5607d6e Merge pull request #485 from jaredevantabor/smart-search
Smart Search fix for ansible_facts
2017-09-29 15:26:24 -07:00
Jared Tabor
c9ffc0e7c1 adding extra logic check for ansible_facts in smart search
a change related to related-group-searches caused a regression when
searching for ansible_facts
2017-09-29 15:02:50 -07:00
Jared Tabor
3d71c93262 Merge pull request #484 from jaredevantabor/insights
Insights
2017-09-29 12:42:38 -07:00
Jared Tabor
140af9ea47 adding "admin_role" as a default query param for insights cred lookup 2017-09-29 12:25:21 -07:00
Jared Tabor
8980e70918 changing insights cred lookup to not use hard coded cred type
and rather, do a comparison against the credential_type endpoint
2017-09-29 12:18:30 -07:00
Matthew Jones
ca4a1f37cd Merge pull request #323 from tvieira/doc_fix_link
Fix markdown link in CONTRIBUTING for enhancements list.
2017-09-29 13:31:39 -04:00
Matthew Jones
c234b9fb99 Merge pull request #321 from chrismeyersfsu/github_issues_template_include_awx_install_type
add awx install type to issue template
2017-09-29 13:26:58 -04:00
Matthew Jones
480e20136a Merge pull request #301 from romainrbr/devel
Changing the color option for hipchat to always be lowercase
2017-09-28 21:16:21 -04:00
Greg Considine
91bceefee7 Merge pull request #317 from gconsidine/ui/angular-manual-init-for-locale
Implement manual initialzation for Angular app
2017-09-28 19:31:58 -04:00
Tiago M. Vieira
b338959279 Fix markdown link in CONTRIBUTING for enhancements list. 2017-09-28 16:09:32 -04:00
gconsidine
d9e360e575 Add check if navigator.languages exists to use 2017-09-28 14:46:56 -04:00
Chris Meyers
a7ec5876ce add awx install type to issue template
* Recreation of user-issues increasing depends on the chosen install
path used. Thus, we need this information when recreating the issue
locally. Ask the user to include this information in the issue template.
2017-09-28 14:37:26 -04:00
Romain Brucker
cdc6096515 fixing indent 2017-09-28 11:37:07 -05:00
Romain Brucker
31e559b6a1 Checking if color is not None before setting it to lowercase 2017-09-28 11:33:45 -05:00
Romain Brucker
1bb72cc680 Adding a check to see if the color is 'None' before lowercasing it for @matburt 2017-09-28 11:15:14 -05:00
Matthew Jones
128eaaf60f Fix an issue where mercurial wasn't getting installed in the image
Also fixes an issue assigning proxy environment variables
2017-09-28 11:37:10 -04:00
John Mitchell
c57d39dcd9 fix rounding of capacity percentage 2017-09-28 11:18:55 -04:00
Matthew Jones
cd35704b0b Merge pull request #298 from st0ne-dot-at/proxy_fix
added proxy settings to docker runtimes
2017-09-28 08:46:38 -04:00
Steininger Robert, IR
46287f6923 proxy settings default omit 2017-09-28 10:11:29 +02:00
Matthew Jones
9219f0f682 Catch potential unicode errors when looking up addrinfo 2017-09-27 20:14:47 -04:00
Jared Tabor
feb0cd5e7c Merge pull request #479 from jaredevantabor/instance-groups-queryparams
fixing typo with adding query params for instance groups modal
2017-09-27 14:17:39 -07:00
jlmitch5
e877651a1e Merge pull request #476 from jlmitch5/fixIGPercentage
fix instance group percentage
2017-09-27 17:11:17 -04:00
Jared Tabor
3c29baea61 fixing typo with adding query params for instance groups modal
it was missing the query params for order_by and page_size
2017-09-27 13:57:02 -07:00
John Mitchell
b05925cc0e move percentage capacitty to variable 2017-09-27 16:53:31 -04:00
Matthew Jones
a5c028cd45 Merge pull request #477 from ansible/remove_callback_blocked_dependency
Remove the logic blocking dependent inventory updates on callbacks
2017-09-27 16:53:12 -04:00
Matthew Jones
3e38a0c17d Add unit test for inventory_sources_already_updated 2017-09-27 16:52:05 -04:00
Christopher Wang
e8b45d3be1 Merge pull request #478 from mabashian/inv-completed-jobs-pagination-fix
Fixed inventory completed jobs pagination bug by setting default page size
2017-09-27 16:46:59 -04:00
Matthew Jones
f4c9617f95 Check for inventory sources already updated from start args
In the case where the host didn't exist in the inventory source and
was found in the first inventory sync
2017-09-27 16:31:22 -04:00
mabashian
8a8a064821 Fixed inventory completed jobs pagination bug by setting default page size 2017-09-27 16:11:35 -04:00
Marliana Lara
0b11a0d642 Merge pull request #475 from marshmalien/fix/remove-host-filter-import
Remove host-filter-modal import
2017-09-27 16:06:07 -04:00
Matthew Jones
7861cda6fe Remove the logic blocking dependent inventory updates on callbacks 2017-09-27 16:00:05 -04:00
John Mitchell
32920739ef fix instance group percentage 2017-09-27 15:56:36 -04:00
Marliana Lara
0eadd69934 Remove host-filter-modal import 2017-09-27 15:47:27 -04:00
gconsidine
297904462d Implement manual initialzation for Angular app
Manual initialization allows for some asynchronous work to
finish ahead of Angular's startup. The initial motivation is
to be able to guarantee translation files have been fetched
before rendering content that needs translation. If a locale
isn't supported or if the request to get a json file fails,
the i18n service falls back to en.

Signed-off-by: gconsidine <gconsidi@redhat.com>
2017-09-27 15:12:03 -04:00
Marliana Lara
a886747676 Merge pull request #473 from marshmalien/fix/7691-host-filter-modal-hover
Fix partial hover highlight of host filter modal row
2017-09-27 14:59:26 -04:00
Marliana Lara
d4d2f04fc3 Fix partial hover highlight of host filter modal row 2017-09-27 14:38:19 -04:00
Michael Abashian
1e9b5824a4 Merge pull request #472 from mabashian/7688-groups-pagination
Fixed nested groups pagination
2017-09-27 13:00:30 -04:00
Michael Abashian
dcdb094c92 Merge pull request #471 from mabashian/7676-smart-inv-related-search
Fixed host_filter searching related fields
2017-09-27 12:06:34 -04:00
mabashian
cfe8a6580b Removed leading slash on basePath 2017-09-27 10:40:49 -04:00
mabashian
61b741030d Fixed host nested groups pagination 2017-09-27 10:34:55 -04:00
mabashian
6c19bbb6de Added trailing slash to basePath 2017-09-27 10:00:28 -04:00
mabashian
0193377d18 Fixed nested groups pagination 2017-09-27 09:54:00 -04:00
Jake McDermott
f3a8d612f3 Merge pull request #257 from mabashian/auditor-read-only-e2e
Added e2e tests for auditor read-only forms
2017-09-26 23:44:09 -04:00
Jake McDermott
fddecfdd25 use launch_url to specify awx host for workers 2017-09-26 23:26:54 -04:00
Jake McDermott
09a6a326d1 use fixture data in read-only form test 2017-09-26 21:54:47 -04:00
Jake McDermott
069ca1c755 add utils for bootstrapping test fixtures 2017-09-26 21:54:29 -04:00
Matthew Jones
e1804400ec Merge pull request #294 from matburt/official_awx_image_install
Add support for installing AWX from official images
2017-09-26 20:47:14 -04:00
Wayne Witzel III
e233926a4a Merge pull request #467 from wwitzel3/release_3.2.0
add --comment-only option to the migrate_to_database_settings mgmt cmd
2017-09-26 19:07:46 -04:00
mabashian
1752a97315 Fixed host_filter searching related fields 2017-09-26 16:51:08 -04:00
Matthew Jones
4d24318f70 Update install documentation with official image information 2017-09-26 14:56:46 -04:00
Wayne Witzel III
ba23f1728a add --comment-only option to the migrate_to_database_settings mgmt command 2017-09-26 14:51:59 -04:00
Alan Rominger
2ec675cf54 Merge pull request #465 from AlanCoding/retry_retry
broaden inventory deletion retry condition
2017-09-26 14:48:13 -04:00
mabashian
5b29e51a24 Moved form element selectors out into props in the form definition. Added checkAllFieldsDisabled to createFormSection. 2017-09-26 14:30:45 -04:00
Romain Brucker
e67549e4a1 Changing the color option for hipchat to always be lowercase (expected by the API)
Signed-off-by: Romain Brucker <romain.brucker@amalto.com>
2017-09-26 11:32:05 -05:00
AlanCoding
bfccd49a64 broaden inventory deletion retry condition 2017-09-26 10:45:30 -04:00
Steininger Robert, IR
5a95f2c793 added proxy settings to docker runtimes 2017-09-26 16:40:04 +02:00
Aaron Tan
723f4b0a7a Merge pull request #463 from jangsutsr/7666-fix
Restore SAML enterprise user auth logic
2017-09-26 10:03:08 -04:00
Matthew Jones
b89d1781a2 Modify openshift roles to support official AWX images 2017-09-26 09:58:07 -04:00
Aaron Tan
9bae656676 Restore SAML enterprise user auth logic
Connect #7666 of ansible-tower and follow up original fix tower #455.
The original fix solves the problem of duplicated db keys, but breaks a
rule of enterprise users that 'Enterprise users cannot be
created/authenticated if non-enterprise users with the same name has
already been created in Tower.'. This fix resumes that rule.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-09-26 09:51:42 -04:00
Greg Considine
45c516bf02 Merge pull request #291 from Zokormazo/fix-const
Use const instead of let on never reassigned var
2017-09-26 09:45:42 -04:00
Matthew Jones
2e7b4529f8 Add support for installing AWX from official images
* New options in the inventory file
* Add defaults to some variables
2017-09-25 21:52:23 -04:00
Chris Church
ddb689bded Merge pull request #293 from Zokormazo/fix-link
Fix link
2017-09-25 18:28:21 -04:00
John Mitchell
a6e6298575 remove notice from unnecessary partials 2017-09-25 18:08:58 -04:00
Julen Landa Alustiza
50b4002280 Fix broken link on LDAP group type help text
Signed-off-by: Julen Landa Alustiza <julen@zokormazo.info>
2017-09-25 23:43:41 +02:00
Julen Landa Alustiza
22887c47bc Use const instead of let on never reassigned var
Signed-off-by: Julen Landa Alustiza <julen@zokormazo.info>
2017-09-25 22:59:35 +02:00
Marliana Lara
2677a17c8a Merge pull request #213 from marshmalien/mobile-menu
Add mobile menu
2017-09-25 14:24:41 -04:00
Michael Abashian
8dae16bc98 Merge pull request #460 from mabashian/7675-jt-edit-permissions
Tweaked permissions logic to fix bug which prevented editing a JT without a default inv
2017-09-25 13:46:47 -04:00
Alan Rominger
4c0fd573c6 Merge pull request #459 from AlanCoding/special_treatment
always ignore deprecated_group if in groups
2017-09-25 13:35:55 -04:00
Alan Rominger
5bec43fc8e Merge pull request #462 from AlanCoding/bad_groups
handle additional cases of inv script output
2017-09-25 13:31:16 -04:00
Greg Considine
827cea53e4 Merge pull request #461 from gconsidine/ui/fix/wss-auth-token
Add quotes to auth token when stored as a cookie
2017-09-25 12:50:09 -04:00
John Mitchell
82b2fd102c add disassociate message to other modals 2017-09-25 12:24:39 -04:00
Matthew Jones
3201436edb Add image builder playbook for installer 2017-09-25 12:23:15 -04:00
AlanCoding
647d272a31 handle additional cases of inv script output 2017-09-25 12:20:21 -04:00
Marliana Lara
bb625264d4 Move DOM event listener to directive 2017-09-25 11:56:26 -04:00
gconsidine
8fff5db758 Add quotes to auth token when stored as a cookie 2017-09-25 11:45:52 -04:00
mabashian
37003a52cf Tweaked permissions logic to fix bug which prevented editing a JT without a default inv 2017-09-25 11:35:03 -04:00
AlanCoding
a4a17fe14c always ignore deprecated_group if in groups
If overwrite=True for an inventory source import, then this matters
creating a new inventory source through v1 API will not include
deprecated_group inside of the InventorySource groups m2m related
connection, but migrations from 3.1 will

In those migrated cases, this code will leave the deprecated_group
untouched, so as to not trigger its cascade delete
2017-09-25 11:22:12 -04:00
mabashian
101c1d7229 removed test-credentials-read-only.js 2017-09-25 10:41:28 -04:00
Greg Considine
2ad26008cc Merge pull request #458 from gconsidine/ui/fix/login-auth-token
Fix login and authorization token errors
2017-09-25 10:14:47 -04:00
Michael Abashian
c9ce751bf0 Merge pull request #447 from jaredevantabor/socket-fix
Final Socket Fix!
2017-09-25 10:09:08 -04:00
Chris Houseknecht
bd5e33c2f4 Clarify awx-logos location. Add 'docker' group note. 2017-09-25 09:48:59 -04:00
Chris Houseknecht
fa28d680c4 Synchronize breaks with localhost delegation 2017-09-25 09:48:59 -04:00
Matthew Jones
b9f2aa3437 Merge pull request #249 from matburt/preopulate_awx_user
Allow pre-populating the default AWX superuser account
2017-09-22 21:52:03 -04:00
gconsidine
4ad2af30cf Fix login and authorization token errors
* Remove extraneous quotes when authroization token is retrieved
from a cookie
* Fix thrown error when invalid creds are supplied on login due to
attempt to access property of an undefined value
2017-09-22 17:58:16 -04:00
John Mitchell
0bb7b0700d changed popover help text for overwrite sources 2017-09-22 17:31:28 -04:00
Wayne Witzel III
0b0afe91ab Merge pull request #457 from wwitzel3/release_3.2.0
get_or_create already saves, no need to call again
2017-09-22 16:42:47 -04:00
Greg Considine
3c062b36df Merge pull request #244 from gconsidine/ui/fix-schedules
Fix how global dependencies are loaded in the UI
2017-09-22 16:36:00 -04:00
Wayne Witzel III
39cc427668 get_or_create already saves, no need to call again 2017-09-22 16:25:55 -04:00
Wayne Witzel III
9e9692971f Merge pull request #455 from wwitzel3/release_3.2.0
Various SAML / auth fixes.
2017-09-22 16:10:49 -04:00
Wayne Witzel III
e9e027ecd7 Fix issue when the enterprise_auth has already been created 2017-09-22 15:58:39 -04:00
Wayne Witzel III
723449818d Fix issue when per user tokens are disabled 2017-09-22 15:58:26 -04:00
jlmitch5
851bccccee Merge pull request #256 from Zokormazo/fix-cutoff-days
Fix text visibility on cleanup facts modal
2017-09-22 14:36:14 -04:00
mabashian
75eace1b67 Added e2e tests for auditor read-only forms 2017-09-22 14:08:17 -04:00
jlmitch5
b2b45ddeda Merge pull request #443 from jlmitch5/instanceCapacityBarOffline
update instance capacity bar to be grey when instance or group is off…
2017-09-22 13:46:52 -04:00
jlmitch5
904cb4af34 Merge pull request #247 from Zokormazo/fix-chrome-survey-dnd
Set bigger dropping zone after last item on survey drag and drop list
2017-09-22 13:39:24 -04:00
Marliana Lara
8d9ef4445a Update webpack config to require webpack.test.js 2017-09-22 13:33:36 -04:00
Julen Landa Alustiza
913d65106a Fix text visibility on cleanup facts modal 2017-09-22 18:45:00 +02:00
Marliana Lara
851f01ddd2 Add mobile menu styles and click handlers
Signed-off-by: Marliana Lara <mlara@redhat.com>
2017-09-22 11:32:04 -04:00
gconsidine
34ca4e5623 Make asset hashes unique per file instead of per build 2017-09-22 10:51:39 -04:00
Aaron Tan
ba9668623a Merge pull request #254 from ansible/revert-211-fix_114
Revert "Add Tower Configuration setting AUTH_LDAP_GROUP_TYPE_MEMBER_ATTR"
2017-09-22 10:12:50 -04:00
Matthew Jones
73a37a281d Allow pre-populating the default AWX superuser account 2017-09-22 10:10:51 -04:00
John Mitchell
46eb1727ad add tooltip 2017-09-22 10:07:51 -04:00
Aaron Tan
93341d6108 Revert "Add Tower Configuration setting AUTH_LDAP_GROUP_TYPE_MEMBER_ATTR" 2017-09-22 09:48:32 -04:00
Alan Rominger
9662719660 Merge pull request #226 from AlanCoding/host_option
add back logic to re-call script for hostvars
2017-09-22 06:46:32 -04:00
Jared Tabor
a2e947ff70 turning off debug mode 2017-09-21 20:17:54 -07:00
Matthew Jones
55259b4445 Update minishift documentation relative to postgresql
Also bump the default claim value to 5G
2017-09-21 22:19:08 -04:00
Matthew Jones
d0a38816b5 Merge pull request #228 from mwasilew2/restart-policy-of-containers
auto restart containers created by the installer
2017-09-21 18:45:31 -07:00
Matthew Jones
523734a6af omit old unit tests from "test" make target 2017-09-21 21:33:34 -04:00
Chris Church
7a052e6f0c Merge pull request #238 from APenketh/devel
Added In Ansible Version Requirement Into Installation Doc
2017-09-21 20:38:02 -04:00
Julen Landa Alustiza
003e0e7a91 Set bigger dropping zone after last item on survey drag and drop list
Signed-off-by: Julen Landa Alustiza <julen@zokormazo.info>
2017-09-21 23:16:10 +02:00
Chris Meyers
bc7640e4ac Merge pull request #450 from chrismeyersfsu/fix-feature_cache2
2-level memoize
2017-09-21 16:37:16 -04:00
Alan Rominger
186d61aac4 Merge pull request #448 from AlanCoding/more_task_mgr_fixing
fix task manager running task structures
2017-09-21 16:27:32 -04:00
gconsidine
159fdfe7ad Fix how global dependencies are loaded in the UI
The UI has a handful of dependencies attached to window (angular,
jquery, lodash, etc). In the case of schedules, jquery was included
and extended as expected, but then clobbered by another module. This
prevented the Select2 dependency from working as expected.

Rather than relying on webpack to export particular dependencies as
global, that work is done in the vendor entry point now instead.
2017-09-21 15:52:19 -04:00
Chris Meyers
26d393e5c2 2-level memoize
* Allows for invalidating an entire function from the memoizer
2017-09-21 15:34:51 -04:00
Ryan Petrello
a298f797b5 Merge pull request #449 from ryanpetrello/fix-7668
fix a bug that causes azure inventory syncs w/ region='all' to fail
2017-09-21 15:17:32 -04:00
Michal Wasilewski
4236654b0c use unless-stopped instead always 2017-09-21 21:15:01 +02:00
Ryan Petrello
328b70ceb8 fix a bug that causes azure inventory syncs w/ region='all' to fail
see: https://github.com/ansible/ansible-tower/issues/7668
2017-09-21 15:08:54 -04:00
AlanCoding
dba83674a2 fix task manager running task structures
- prevent dual-entry for first item in running jobs due to
   setdefault syntax
 - fix issue where queues (celery tasks) only returned the last
   item in the inspector output due to looping problem
   this caused reaper bugs in production
2017-09-21 14:38:58 -04:00
John Mitchell
25e503219f tweaks to styling of capacity bar 2017-09-21 11:07:50 -04:00
Jared Tabor
44af8ac629 Merge pull request #446 from jaredevantabor/translations
Translations
2017-09-21 14:37:22 +00:00
Alex Penketh
6b6dcc46ca Added In Ansible Version Requirement Into Installation Doc
Signed-off-by: Alex Penketh <alex@apenketh.com>
2017-09-21 15:15:29 +02:00
Jared Tabor
4aa841f44b Final fix for socket connection when emitting messages before connection is open
using setTimeout
2017-09-20 20:07:17 -07:00
Jared Tabor
28c1718965 tagging ON/OFF toggles for translations 2017-09-20 17:58:52 -07:00
Jared Tabor
557780bf08 adding translation tag for "No records matched your search" 2017-09-20 17:52:13 -07:00
Jared Tabor
d0cb11acb3 Merge pull request #444 from jaredevantabor/socket-fix
send last socket message if last socket didn't go thru due to socket …
2017-09-20 23:04:43 +00:00
John Mitchell
2306c34689 update instance capacity bar to be grey when instance or group is offline 2017-09-20 17:49:02 -04:00
Shane McDonald
1e03654c0b Pull updated translations 2017-09-20 17:29:20 -04:00
Wayne Witzel III
7960525c20 Merge pull request #440 from wwitzel3/release_3.2.0
Merge pull request #224 from wwitzel3/fix-shared-deps
2017-09-20 16:50:08 -04:00
Michal Wasilewski
f00dc426e0 make containers start when docker daemon comes up 2017-09-20 22:29:44 +02:00
Alan Rominger
428eca1c35 Merge pull request #439 from AlanCoding/custom_hostvars
add back logic to re-call script for hostvars
2017-09-20 15:43:52 -04:00
AlanCoding
f1219ea001 add back logic to recall script for hostvars 2017-09-20 15:31:13 -04:00
Chris Meyers
0d08509e6d Merge pull request #437 from chrismeyersfsu/fix-feature_cache
cache license validation
2017-09-20 14:00:44 -05:00
Chris Meyers
062ff7153d resurrect cchurch's license feature caching 2017-09-20 14:57:24 -04:00
Wayne Witzel III
439beeab3b Merge pull request #224 from wwitzel3/fix-shared-deps
Fix job shared dependencies.
2017-09-20 14:56:22 -04:00
Jared Tabor
0b1d8ccd92 send last socket message if last socket didn't go thru due to socket not open 2017-09-20 18:40:37 +00:00
Wayne Witzel III
e6777577b6 Merge pull request #224 from wwitzel3/fix-shared-deps
Fix job shared dependencies.
2017-09-20 14:21:39 -04:00
Wayne Witzel III
095a93d895 remove duplicated get_latest calls 2017-09-20 13:57:01 -04:00
Chris Meyers
c265ed2722 Revert "use request response cache for license checks"
This reverts commit 93acae9367023fec153aa7980f2edd9f96822ba2.
2017-09-20 13:47:44 -04:00
Wayne Witzel III
0f4523fabf Fix up unit and functional tests 2017-09-20 13:22:41 -04:00
AlanCoding
80a944dd31 add back logic to recall script for hostvars 2017-09-20 13:20:04 -04:00
Wayne Witzel III
2889df8013 ensure project sync/inv updates are added to the dependencies 2017-09-20 13:15:02 -04:00
Wayne Witzel III
11b2bc33fe add scheduler module __init__ 2017-09-20 13:14:01 -04:00
Wayne Witzel III
1beaccb9c9 move TaskManager out of init 2017-09-20 13:13:10 -04:00
Alan Rominger
9db91b4344 Merge pull request #436 from AlanCoding/set_node_early
set execution_node right when jobs are accepted
2017-09-20 12:43:51 -04:00
AlanCoding
892ca98709 set execution_node right when jobs are accepted 2017-09-20 11:49:09 -04:00
Greg Considine
7268dd473d Merge pull request #212 from gconsidine/ui/eslint-refactor
Ui/eslint refactor
2017-09-20 11:35:50 -04:00
Jake McDermott
d6a6087ff9 Merge pull request #216 from jakemcdermott/fix-e2e-navbar-select
fix e2e navbar select
2017-09-20 09:43:35 -04:00
Wayne Witzel III
c868f7e91f Merge pull request #435 from wwitzel3/release_3.2.0
just fall through to the DjangoStrategy constructor
2017-09-20 09:02:58 -04:00
Wayne Witzel III
bab4cbbcf7 just fall through to the DjangoStrategy constructor 2017-09-20 08:50:39 -04:00
Wayne Witzel III
2ea1aee8ba Merge pull request #218 from subuk/devel
Fix typo in AWXDjangoStrategy constructor
2017-09-20 08:48:56 -04:00
Matvey Kruglov
4c7c1aa8b3 Fix typo in AWXDjangoStrategy constructor
Signed-off-by: Matvey Kruglov <kubuzzzz@gmail.com>
2017-09-20 11:47:18 +03:00
Jared Tabor
d31afdc749 Merge pull request #433 from jaredevantabor/socket-fix
using settimeout if socket.readyState = 0
2017-09-19 16:37:31 -07:00
Jared Tabor
44be46a436 using settimeout if connection not opened 2017-09-19 16:28:12 -07:00
Jared Tabor
55662efd4c Merge pull request #431 from jaredevantabor/delete-translations
taging some delete modals for translations
2017-09-19 13:45:50 -07:00
jlmitch5
e4fa0e8a39 Merge pull request #215 from Zokormazo/license-info-from-config
Move license checking logic to /api/v2/config
2017-09-19 16:39:50 -04:00
Jared Tabor
e23be23a83 Merge pull request #203 from jaredevantabor/i18n-initialization
initializing i18nInit module
2017-09-19 13:29:01 -07:00
Jared Tabor
ef4388f414 taging some delete modals for translations 2017-09-19 13:25:45 -07:00
Jake McDermott
1f083b57de fix e2e navbar select 2017-09-19 16:09:05 -04:00
gconsidine
b7d4f0b5ff Fix lint error after rebasing 2017-09-19 15:26:38 -04:00
Julen Landa Alustiza
9c2cf6b7ca Move license checking logic to /api/v2/config
Use license_info.features.ldap & license_info.feature.enterprise_auth from /api/v2/config for
auth providers button enabling instead of using info from /api/v2/settings/all

Signed-off-by: Julen Landa Alustiza <julen@zokormazo.info>
2017-09-19 21:24:07 +02:00
gconsidine
0b50794614 Update out of date karma and test dependencies 2017-09-19 14:53:23 -04:00
gconsidine
fad12e3a13 Update e2e tests after rebasing 2017-09-19 14:53:23 -04:00
gconsidine
777ef3fe90 Add more linter rules and de-lint 2017-09-19 14:53:23 -04:00
gconsidine
cec9507504 Use eslint on ui/lib and ui/features code 2017-09-19 14:53:23 -04:00
Matthew Jones
6b7126ab6b Updating contributing for What should I work on? 2017-09-19 13:46:45 -04:00
Marliana Lara
bb6fab08a3 Merge pull request #141 from marshmalien/side-nav-tooltips
Side navigation panel tooltips
2017-09-19 13:45:10 -04:00
Aaron Tan
ee762d4bbd Merge pull request #211 from jangsutsr/fix_114
Add Tower Configuration setting AUTH_LDAP_GROUP_TYPE_MEMBER_ATTR
2017-09-19 13:28:30 -04:00
Aaron Tan
d271757eba Fix issue #114
Add Tower Configuration setting AUTH_LDAP_GROUP_TYPE_MEMBER_ATTR.

Signed-off-by: Aaron Tan <jangsutsr@gmail.com>
2017-09-19 11:15:45 -04:00
Ryan Petrello
3fb6b5594d Merge pull request #429 from ryanpetrello/fix-6810
Fix an issue not populating the version metadata for isolated sdist
2017-09-19 10:44:41 -04:00
Alan Rominger
88ffb32d4f Merge pull request #427 from AlanCoding/inv_for_the_people
Inventory file suggestion adjustments from user feedback
2017-09-19 10:36:02 -04:00
Marliana Lara
9b7eb52772 Replace translate filter and retrieve tooltip text from strings file 2017-09-19 10:27:23 -04:00
Ryan Petrello
1af9c43b5b Fix an issue not populating the version metadata for isolated sdist
see: https://github.com/ansible/ansible-tower/issues/6810
2017-09-19 10:25:21 -04:00
Matthew Jones
b46c6e4aad Merge pull request #207 from matburt/add_krb_support
Add krb package dependencies to support windows connections
2017-09-19 06:55:47 -07:00
Matthew Jones
52aa38e742 Merge pull request #197 from ansible/fix_secret_key
Fix an issue where we ignored the secret key during install
2017-09-19 06:36:54 -07:00
Matthew Jones
476dae5418 Add krb package dependencies to support windows connections 2017-09-19 09:23:27 -04:00
Alan Rominger
bc4b622e6b Merge pull request #199 from AlanCoding/inv_no_yaml
Inventory file suggestion adjustments from user feedback
2017-09-19 08:40:20 -04:00
Jared Tabor
458779d897 Merge pull request #428 from jaredevantabor/socket-fix2
adding more console.logs for socket debugging
2017-09-18 20:25:25 -07:00
Jared Tabor
b593adcf84 adding more console.logs for socket debugging 2017-09-18 19:59:20 -07:00
Jared Tabor
3b83d6639a initializing i18nInit module 2017-09-18 16:29:49 -07:00
AlanCoding
f455f1b257 Inventory file suggestion adjustments from user feedback
- ditch yaml files as suggestions
 - automatically greenlight any hosts or inventory titled file
2017-09-18 15:29:03 -04:00
Matthew Jones
f5ccb51ef2 Fix an issue where we ignored the secret key during install 2017-09-18 15:11:04 -04:00
AlanCoding
120b5297e3 Inventory file suggestion adjustments from user feedback
- ditch yaml files as suggestions
 - automatically greenlight any hosts or inventory titled file
2017-09-18 14:28:29 -04:00
Marliana Lara
5c108bfa1b Add side nav panel tooltips 2017-09-18 13:53:21 -04:00
Bill Nottingham
710aaaa2c8 Merge pull request #195 from JeLuF/patch-1
Fix typo ("directory" misspelled)
2017-09-18 13:47:40 -04:00
JeLuF
1925a439d7 Fix typo ("directory" misspelled) 2017-09-18 19:34:56 +02:00
Michael Abashian
50d6981695 Merge pull request #410 from mabashian/7629-remove-deprecated-azure
Removed UI references to deprecated Azure inv source and cred
2017-09-18 13:08:25 -04:00
mabashian
c63c523089 Pull azure regions from azure_rm_region_choices not azure_region_choices
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-18 12:40:46 -04:00
mabashian
e6631d1516 Removed UI references to deprecated Azure inv source and cred
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-18 12:40:45 -04:00
Matthew Jones
87b58e6bc2 Apply ephemeral cache for some memoize tasks recently merged 2017-09-18 12:31:33 -04:00
Matthew Jones
84f9c49b6f Propogate cert validation to inventory updates for vmware 2017-09-18 12:21:27 -04:00
Matthew Jones
2fe5c2ac83 Merge pull request #424 from ansible/isolated_sdist_version
Fix an issue not populating the version metadata for isolated sdist
2017-09-18 08:57:48 -07:00
Ryan Petrello
21e3078853 Merge pull request #425 from ryanpetrello/release_3.2.0
remove support for azure classic
2017-09-18 11:26:55 -04:00
Matthew Jones
64415872a0 Merge branch 'release_3.2.0' into devel 2017-09-18 10:55:45 -04:00
Matthew Jones
0ee3b0e59b Fix an issue not populating the version metadata for isolated sdist 2017-09-18 10:51:56 -04:00
Ryan Petrello
cfe1f1e8e4 more legacy azure deprecation cleanup 2017-09-18 10:43:16 -04:00
Ryan Petrello
14b0f9aa24 remove reference to legacy rax credentials 2017-09-18 10:43:02 -04:00
Ryan Petrello
4dd265633e remove legacy azure inventory script
see: ansible/ansible-tower#7629
2017-09-18 10:41:49 -04:00
Alan Rominger
4c28e04e5e Merge pull request #191 from AlanCoding/step_parent
do not use parent_model with GenericAPIView
2017-09-18 10:36:59 -04:00
Chris Meyers
0b40331107 azure migrations
* delete azure credentials
* delete azure inventory sources
2017-09-18 10:35:42 -04:00
Chris Meyers
a08a158672 remove azure 2017-09-18 10:35:32 -04:00
Wayne Witzel III
540bda1d09 Merge pull request #420 from wwitzel3/release_3.2.0
Merge pull request #161 from wwitzel3/devel
2017-09-18 09:54:54 -04:00
Ryan Petrello
97609746c0 Merge pull request #423 from ryanpetrello/stdout_defer
more 3.1.5 result_stdout_text optimizations -> 3.2 so we don't regress
2017-09-18 09:53:17 -04:00
Ryan Petrello
68b924efe5 flake8 fixup 2017-09-18 09:44:39 -04:00
jlmitch5
37487b2427 Merge pull request #412 from jlmitch5/fixFormSaveEnterpriseDisabling
fix config forms from having save button disabled when no license is …
2017-09-18 09:37:30 -04:00
Ryan Petrello
6a4b4edea3 properly detect deferred ORM objects 2017-09-18 09:08:53 -04:00
Matthew Jones
ebbd42322d Fix an issue with hasattr call 2017-09-18 09:08:44 -04:00
Matthew Jones
c07a4ff93d Catch any unhandled exceptions grabbing notification templates 2017-09-18 09:08:40 -04:00
Matthew Jones
8091b84344 Fixing up some activity stream deferreds 2017-09-18 09:08:30 -04:00
Matthew Jones
cba8914aae Merge pull request #183 from matburt/latest_greatest_ansible
Include ansible centos repo link and install the latest ansible
2017-09-17 05:16:32 -07:00
Matthew Jones
663257a690 Merge pull request #182 from matburt/installer_updates
Rework installer to support local minishift environment
2017-09-17 05:15:43 -07:00
Jared Tabor
6a9bfa74c4 Merge pull request #422 from jaredevantabor/socket-fix
Socket fix
2017-09-16 09:20:59 -07:00
Jared Tabor
4bbd486389 removing code that puts the UI in an infinite loop 2017-09-16 09:12:32 -07:00
Matthew Jones
27d5eb4ef9 Rework installer to support local minishift environment
This also adds an option to *not* use the local container for building
the software distribution which is required for a local minishift
environment based install
2017-09-16 10:09:41 -04:00
Matthew Jones
f1a9c4ef0e Include ansible centos repo link and install the latest ansible
Instead of sourcing ansible from epel or extras, we'll now use the
official Ansible repo
2017-09-15 23:31:10 -04:00
Matthew Jones
a2f4134ee0 Merge pull request #417 from ansible/vmware_cert_validation
Add a setting for vmware inventory cert validation
2017-09-15 17:57:59 -07:00
Jared Tabor
2c7abc8bca Merge pull request #421 from jaredevantabor/socket-fix
Socket Fix
2017-09-15 15:58:58 -07:00
Jared Tabor
f7312691e1 resubscribe to last group if readyState is 0, aka connection isn't open yet 2017-09-15 15:56:32 -07:00
Jake McDermott
9cbe2faed6 Merge pull request #26 from jakemcdermott/test-e2e
add e2e tests
2017-09-15 17:35:30 -04:00
Wayne Witzel III
dafd6acf1a Merge pull request #161 from wwitzel3/devel
update social auth strategy to have fixes from social-app-django
2017-09-15 17:22:32 -04:00
Jake McDermott
2a9c97f96d remove unused config 2017-09-15 17:22:23 -04:00
Jake McDermott
573d35feff use dataset name as naming prefix 2017-09-15 17:22:13 -04:00
Jake McDermott
ab87f81ad8 add data generator preset 2017-09-15 17:22:03 -04:00
Jake McDermott
19f96b1f6f add e2e tests 2017-09-15 17:21:55 -04:00
Jake McDermott
05b4b875e2 move unit tests 2017-09-15 17:21:43 -04:00
Bill Nottingham
ece93c45c9 Merge pull request #178 from Numblesix/devel
Fixed Typo in Install.md
2017-09-15 15:11:51 -04:00
Michael Abashian
ca72722b39 Merge pull request #419 from mabashian/7647-i18n-search-key
Fixed search key styling with wider text
2017-09-15 15:03:44 -04:00
AlanCoding
1b48b99ba7 do not use parent_model with GenericAPIView 2017-09-15 14:41:12 -04:00
Sandro Emma
52c0a37174 Fixed Typo in Install.md
Signed-off-by: Sandro Emma <feeds.sandro@gmail.com>
2017-09-15 20:31:12 +02:00
Ryan Petrello
ff385ddf17 Merge pull request #416 from ryanpetrello/stdout_defer
Add 3.1.5 result_stdout_text optimizations into 3.2 so we don't regress
2017-09-15 14:24:47 -04:00
Michael Abashian
80e692656c Merge pull request #406 from mabashian/7578-jt-admin-edit-v2
Fixed jt admin edit bug
2017-09-15 14:13:04 -04:00
Jared Tabor
6374be15fd Merge pull request #418 from jaredevantabor/socket-fix
another potential socket fix
2017-09-15 10:58:43 -07:00
Matthew Jones
f9185b02b5 Merge pull request #167 from Numblesix/devel
updated Docu
2017-09-15 10:56:40 -07:00
Matthew Jones
418acbf218 Merge pull request #177 from pchauncey/faster
only pause when containers are launched
2017-09-15 10:56:13 -07:00
mabashian
9765623d03 Fixed search key styling with wider text
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-15 13:55:44 -04:00
Sandro
af56a75dce Update Install.md to include proxy vars
Signed-off-by: Sandro Emma <feeds.sandro@gmail.com>
2017-09-15 19:45:54 +02:00
Jared Tabor
325e7f3cce checking socket.readyState before emitting socket message 2017-09-15 10:37:35 -07:00
pchauncey
24465bee79 'activate' is a better variable name than 'started' 2017-09-15 12:32:32 -05:00
pchauncey
8576e8d51a only pause when containers are launched 2017-09-15 12:04:51 -05:00
mabashian
8b7639fd3a Removed extra GET call for extra creds when user cannot edit JT
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-15 11:54:42 -04:00
Matthew Jones
713e368557 Merge pull request #413 from ansible/invscript_endpoint_performance
Improve script endpoint performance by removing forced ordering
2017-09-15 08:16:02 -07:00
Matthew Jones
47c976ee91 Add a setting for vmware inventory cert validation
This uses the environment var expected by the vmware inventory script.
Defaults to off but can be turned on
2017-09-15 11:14:10 -04:00
Matthew Jones
645d2d852f Update scan job migration to public project to use the correct URL 2017-09-15 10:19:33 -04:00
Ryan Petrello
7a958a1af1 more result_stdout_text defer optimization for inventory updates
see: https://github.com/ansible/ansible-tower/issues/7568
2017-09-15 09:51:53 -04:00
Ryan Petrello
1bb6c17fe2 trick django-polymorphic into allowing defer() on polymorphic objects
django-polymorphic itself generates queries for polymorphic object
lookups, and these queries for UnifiedJob are *not* properly defering the
`result_stdout_text` column, resulting in more very slow queries.  This
solution is _very_ hacky, and very specific to this specific
version of Django and django-polymorphic, but it works until we can
solve this problem the proper way in 3.3 (by removing large stdout blobs
from the database).

see: https://github.com/ansible/ansible-tower/issues/7568
2017-09-15 09:51:43 -04:00
Matthew Jones
4657f29df9 Merge pull request #103 from ragingpastry/add-mattermost-notification
Add mattermost notification
2017-09-15 06:42:37 -07:00
Nicholas O. Wilburn
68d240b77b Add "Disable SSL Verification" button to mattermost notification
This commit will add a button which will disable SSL notifications
for the mattermost webhook. This is required when using self-signed
certificates.
2017-09-14 18:25:04 -07:00
Nicholas O. Wilburn
cd3ba08c7d Update mattermost notification docs with examples 2017-09-14 18:25:01 -07:00
Nicholas O. Wilburn
bdcd3f9dc2 Remove unnecessary fields from mattermost notification UI files 2017-09-14 18:24:57 -07:00
Nicholas O. Wilburn
69122a5454 Remove trailing whitespace 2017-09-14 18:24:54 -07:00
Nicholas O. Wilburn
e8e06f2b71 Revert unintended changes to ui/index.html 2017-09-14 18:24:51 -07:00
Nicholas O. Wilburn
684c637ac0 Remove package-lock.json 2017-09-14 18:24:47 -07:00
Nicholas O. Wilburn
03832c9065 Add mattermost import to reencrypt 2017-09-14 18:24:44 -07:00
Nicholas O. Wilburn
29451cf88c Add mattermost to notification_system docs 2017-09-14 18:24:40 -07:00
Nicholas O. Wilburn
f347caf825 Remove debugging line 2017-09-14 18:24:29 -07:00
Jared Tabor
436df168f0 Merge pull request #415 from jaredevantabor/socket-fix
deleting socket on logout
2017-09-14 15:51:15 -07:00
Jared Tabor
7ccedfb1df adding console.log for debug purposes in prod, will delete later 2017-09-14 15:50:35 -07:00
Jared Tabor
bd95197709 deleting socket on logout 2017-09-14 15:45:35 -07:00
Greg Considine
5897aebdf9 Merge pull request #414 from gconsidine/ui/fix/host-filter-parsing
Fix host filter parsing
2017-09-14 17:40:41 -04:00
gconsidine
dd62e8ce92 Replace use of string.includes due lack of browser support 2017-09-14 17:27:27 -04:00
gconsidine
eab3cb8efd Add support for quoted without spaces and falsey input 2017-09-14 15:57:52 -04:00
gconsidine
57c9224b5c Fix host filter parsing 2017-09-14 15:31:29 -04:00
John Mitchell
8c2b9905d1 fix config forms from having save button disabled when no license is given 2017-09-14 13:59:58 -04:00
Jared Tabor
bd5846d143 Merge pull request #95 from Zokormazo/fix-footer-blocking
Fix footer blocks visibility of items
2017-09-14 10:58:15 -07:00
Matthew Jones
39994186df Improve script endpoint performance by removing forced ordering 2017-09-14 13:05:31 -04:00
mabashian
549737405b Fixed multi credential service unit test failures
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-14 09:14:27 -04:00
Matthew Jones
a5ade10bff Merge pull request #162 from matburt/force_awxweb_hostname
Force awxweb hostname
2017-09-14 05:32:48 -07:00
Chris Meyers
28a26e6e81 Merge pull request #408 from chrismeyersfsu/7500_process_workflow_cornercase_for_user_capability
memoize workflow license feature check
2017-09-14 08:29:41 -04:00
Julen Landa Alustiza
7dc7f7815a Replace static footer with an always down non static footer
Hide footer on login screen

Signed-off-by: Julen Landa Alustiza <julen@zokormazo.info>
2017-09-14 08:33:34 +02:00
Matthew Jones
e7ce2fcc8d Merge pull request #149 from gdahlm/devel
Fix issue with python virtual environments and localhost.
2017-09-13 21:02:22 -07:00
Matthew Jones
25c457f578 Force awxweb hostname
For some reason some docker deployments seem not to be able to resolve
the awxweb host from the awx task host at least when started from the
playbook. This hopefully provides a resolution for that
2017-09-13 23:53:23 -04:00
Wayne Witzel III
7c7c7db345 Merge pull request #161 from wwitzel3/devel
update social auth strategy to have fixes from social-app-django
2017-09-13 23:00:41 -04:00
Jared Tabor
acbf9f517b Merge pull request #409 from jaredevantabor/socket-fix
move socketPromise.resolve() until handshake message is received
2017-09-13 18:55:39 -07:00
Jared Tabor
9cf683ea75 move socketPromise.resolve() until handshake message is received
instead of happening after the socket.onopen event.
2017-09-13 18:49:15 -07:00
Wayne Witzel III
5cc0552b05 remove AWXDjangoStrategy in the future 2017-09-13 21:28:26 -04:00
Wayne Witzel III
f44adb98cb update social auth strategy to have fixes from social-app-django 2017-09-13 21:16:10 -04:00
mabashian
f90771ee1a More fixes for JT admin edit use cases
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-13 16:48:04 -04:00
Matthew Jones
e7eeb86709 Merge pull request #154 from snahelou/devel
add proxy support
2017-09-13 12:37:21 -07:00
Greg Considine
93927717c8 Merge pull request #403 from gconsidine/ui/fix/host-search-with-spaces
Add support for quoted values containing spaces in search
2017-09-13 14:34:05 -04:00
Ryan Petrello
761e42c5d6 Merge pull request #407 from ryanpetrello/fix-7568
build extra_cred related urls for jobs and JTs a less volatile way
2017-09-13 13:42:49 -04:00
Chris Meyers
1ce3c7937b use request response cache for license checks 2017-09-13 13:34:39 -04:00
Ryan Petrello
d3df5de0ce build extra_cred related urls for jobs and JTs a less volatile way
see: https://github.com/ansible/ansible-tower/issues/7635
2017-09-13 13:28:26 -04:00
Matthew Jones
ca094f0e86 Merge pull request #156 from swills/portable-get_system_task_capacity
Make get_system_task_capacity portable
2017-09-13 10:19:12 -07:00
Michael Abashian
19d838ff49 Merge pull request #399 from mabashian/7588-deleted-inv-source-message
Deleted custom inv script on source update
2017-09-13 13:13:14 -04:00
NAHELOU SÉBASTIEN
6cd77dc6b8 add proxy support 2017-09-13 18:27:36 +02:00
Steve Wills
769ee8ac54 Remove unnecessary int coercion
Signed-off-by: Steve Wills <steve@mouf.net>
2017-09-13 11:55:44 -04:00
mabashian
28fa5077d5 Fixed jt admin edit bug
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-13 11:38:56 -04:00
Steve Wills
f0cf325831 Add whitespace around arithmetic operator
Signed-off-by: Steve Wills <steve@mouf.net>
2017-09-13 11:37:57 -04:00
Steve Wills
b8651bfd72 Make get_system_task_capacity portable
Signed-off-by: Steve Wills <steve@mouf.net>
2017-09-13 11:15:09 -04:00
Matthew Jones
7e754e20ae Merge pull request #404 from ansible/sys_auditor_can_set_pass
Allow System Auditor to set password
2017-09-13 06:32:10 -07:00
Matthew Jones
2dda863baf Merge pull request #155 from ansible/add_missing_svn
Add missing subversion to image
2017-09-13 06:27:47 -07:00
Matthew Jones
10a3959f52 Merge pull request #400 from ansible/taskman_dep_update_improve
Fix an issue where dependent updates weren't sorted correctly
2017-09-13 06:17:56 -07:00
Matthew Jones
309577f3ef Add missing subversion to image 2017-09-13 08:57:14 -04:00
Greg Dahlman
39756e6dc4 Fix issue with python virtual environments and localhost. 2017-09-12 18:45:18 -07:00
Ryan Petrello
66d78bca8a Merge pull request #405 from ryanpetrello/fix-7568
defer UnifiedJob.result_stdout_text for improved performance
2017-09-12 19:04:37 -04:00
Ryan Petrello
bd42dfe474 defer UnifiedJob.result_stdout_text for improved performance
result_stdout_text can be _very_ large - some customers have 5MB+ per
job; querying for this in list contexts results in _very_ large datasets
being read from the database which is very slow.  It's very uncommon to
actually need this column outside of the context of job details, so
defer it.

see: https://github.com/ansible/ansible-tower/issues/7568
2017-09-12 16:35:49 -04:00
Wayne Witzel III
50e3a9dee6 Merge pull request #142 from wwitzel3/devel
Update ISSUES.md and bot metadata
2017-09-12 16:19:38 -04:00
Ryan Petrello
bd088d31ca Merge pull request #334 from ryanpetrello/fix-7506
add process isolation to project updates
2017-09-12 16:15:37 -04:00
Matthew Jones
d308946360 Allow system auditor to set their own password 2017-09-12 16:07:47 -04:00
jlmitch5
8a282030a1 Merge pull request #401 from jlmitch5/fixSyncAll
always start sync all updates
2017-09-12 15:51:09 -04:00
Shane McDonald
de2a77adec Merge pull request #140 from eikef/delegate_sdist_localhost
Make sure sdist builder image and AWX distribution are built locally
2017-09-12 15:34:35 -04:00
gconsidine
87eab79f70 Add support for quoted values containing spaces in search 2017-09-12 14:57:07 -04:00
Matthew Jones
9827a4b758 Merge pull request #129 from stephenpc/bugfix/postgres_container_perms
Update selinux context for postgres volume
2017-09-12 11:49:13 -07:00
Jared Tabor
18fa0d5057 Merge pull request #402 from jaredevantabor/org-save-error-catching
catching org save error
2017-09-12 11:24:24 -07:00
Wayne Witzel III
c2b4756a4f Merge pull request #10 from wwitzel3/botdoc
Update ISSUES.md with bot doc
2017-09-12 14:07:18 -04:00
Wayne Witzel III
8e22bc2ce5 Update ISSUES.md with bot doc 2017-09-12 13:58:35 -04:00
Wayne Witzel III
2882ac4da8 extend api maintainers folder to main 2017-09-12 13:40:17 -04:00
Wayne Witzel III
b0d7a16f49 Add docs and PR labels 2017-09-12 13:37:57 -04:00
Jared Tabor
ae5b309de0 catching org save error
the org PUT was missing a .catch, however the edit controller already had it.
2017-09-12 10:21:52 -07:00
Eike Frost
96156f148e Make sure sdist builder image and AWX distribution are built on localhost even when deploying the final image remotely
Signed-off-by: Eike Frost <ei@kefro.st>
2017-09-12 19:04:15 +02:00
John Mitchell
5009f283d5 always start sync all updates 2017-09-12 12:01:06 -04:00
Wayne Witzel III
c695234ed1 Merge pull request #134 from wwitzel3/devel
Add PR template and tweak `make VERSION` output to be pastable
2017-09-12 11:32:41 -04:00
Ryan Petrello
d9e50ab6d5 Merge pull request #132 from richlv/setup_licence
- list the licence as Apache License 2.0 everywhere
2017-09-12 10:56:27 -04:00
richlv
644dc9f4a2 - list the licence as Apache License 2.0 everywhere
Signed-off-by: richlv <richlv@nakts.net>
2017-09-12 17:49:47 +03: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
9f3a0c0716 Fix an issue where dependent updates weren't sorted correctly
When considering previous / current Project Updates we weren't
properly sorting the previous runs.

We also make sure we filter down to just "check" style project updates
and don't consider 'run' style standalone project updates when
deciding what are potentially related project updates
2017-09-12 09:42:50 -04:00
Stephen Clayton
87472484d6 Update selinux context for postgres volume
Signed-off-by: Stephen Clayton <sclayton@tweddle.com>
2017-09-12 08:52:30 -04:00
Matthew Jones
c7f498fd01 Merge pull request #125 from wwitzel3/devel
fix issue template section, component => component name
2017-09-12 04:48:37 -07:00
Matthew Jones
f44dcd7c02 Merge pull request #120 from shanemcd/fix-docker-volume-issue-selinux
Fix selinux issue w/ docker volume in sdist builder
2017-09-12 04:48:06 -07:00
Wayne Witzel III
e00c65072b fix issue template section, component => component name 2017-09-11 18:15:56 -04:00
Matthew Jones
6dbbd7d605 Merge pull request #122 from gconsidine/ui/move-install-template-to-prod-build
Move install.template.ejs to be built for prod only
2017-09-11 14:46:57 -07:00
Ryan Petrello
4213960ec3 write the scm_revision_output to the project path instead of /tmp
see: https://github.com/ansible/ansible-tower/issues/7558
2017-09-11 17:44:53 -04:00
gconsidine
054710e1a2 Move install.template.ejs to be built for prod only 2017-09-11 16:12:09 -04:00
Ryan Petrello
a9c9ecb5ea bind ansible and awx virtualenvs readonly so that jobs can't modify them
see: https://github.com/ansible/ansible-tower/issues/7558
2017-09-11 15:57:35 -04:00
Ryan Petrello
a2ca0e6012 add process isolation to project updates
see: https://github.com/ansible/ansible-tower/issues/7506
2017-09-11 15:57:28 -04:00
Jared Tabor
6068eafeb6 Merge pull request #384 from jaredevantabor/job_explanation_label
showing job explanation if it wasn't "Previous Task Failed..."
2017-09-11 12:37:03 -07:00
Shane McDonald
f2ddf2af95 Fix selinux issue w/ docker volume in sdist builder
See https://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/
2017-09-11 15:11:03 -04:00
Wayne Witzel III
3118092e51 Merge pull request #113 from matburt/waiting_install_screen
Integrate a migration-detector middleware
2017-09-11 12:55:10 -04:00
Ryan Petrello
434d115fb3 Merge pull request #398 from ryanpetrello/release_3.2.0
fix busted conf unit tests
2017-09-11 08:45:59 -07:00
mabashian
d38264660e Updated error message when can_update comes back false on an inventory source update GET
Signed-off-by: mabashian <mabashia@redhat.com>
2017-09-11 11:40:35 -04:00
Ryan Petrello
4cc58a221b fix busted conf unit tests 2017-09-11 11:28:43 -04:00
Ryan Petrello
e5043093eb Merge pull request #393 from jangsutsr/7587_remove_cred_type_id_in_api_v1
Remove credential_type_id in API v1
2017-09-11 08:22:10 -07:00
Matthew Jones
b39db745d4 Integrate a migration-detector middleware
This attempts to detect if there are migrations in-progress and will
force display an interstitial page in the process that attempts to
load the index page every 10s until it succeeds.

This is only attached in production settings so the development
environment can proceed even if the migrations haven't been applied yet
2017-09-11 11:09:45 -04:00
Matthew Jones
0e04b8e4d4 Merge pull request #112 from gconsidine/ui/remove-generated-html
Remove generated index.html file
2017-09-11 08:08:00 -07:00
Ryan Petrello
6f26f88bbd Add a TODO for 3.3 cleanup 2017-09-11 10:48:32 -04:00
Ryan Petrello
2f14dc7e5d Merge pull request #388 from ryanpetrello/fix-7470
bump azurerm dependencies to support Ansible 2.4
2017-09-11 07:45:51 -07:00
gconsidine
7296bfd5ee Remove generated index.html file 2017-09-11 10:19:54 -04:00
Aaron Tan
bf7c96defb Merge pull request #372 from jangsutsr/7536_prevent_mistakenly_truncate_sgr
Prevent mistakenly truncate ANSI SGR code in job event stdout
2017-09-11 09:32:58 -04:00
Matthew Jones
d503091b30 Merge pull request #91 from it-praktyk/FAQ_added
The link to the AWX project FAQ added
2017-09-11 06:32:14 -07:00
Matthew Jones
25612f8809 Merge pull request #71 from marshmalien/fix/27-side-nav-height
Fix height of side navigation panel
2017-09-11 06:30:29 -07:00
Shane McDonald
3e50a5da70 Merge pull request #104 from shanemcd/sdist-builder-image
Build sdist inside of a container
2017-09-11 09:29:46 -04:00
Ryan Petrello
b63d4da048 Merge pull request #109 from wwitzel3/devel
Update .github metadata for awxbot
2017-09-11 06:29:21 -07:00
Shane McDonald
b8e628958e Update INSTALL.md
These dependencies are unnecessary now that we are building the sdist inside of a container.
2017-09-11 08:42:56 -04:00
Wayne Witzel III
d3ca35ac42 Fix component labels to match defaults in issue template. 2017-09-11 07:40:23 -04:00
Matthew Jones
22359b427f Merge pull request #38 from MikeMcMahon/devel
Reduces the job to only looking at objects older than the cutoff date
2017-09-10 19:20:44 -07:00
Shane McDonald
a1bd84af5e Build sdist inside of a container
A lot of people have experienced issues with the system-level dependencies that are required in order to build the source distribution that is handed off to the image builds. This makes it unnecessary to install any additional software on the host machine aside from Ansible and Docker.
2017-09-10 19:00:33 -04:00
crepe
bb0e968704 Add mattermost notifications 2017-09-09 22:00:31 -07:00
Wayne Witzel III
66865c8b63 Update .github metadata for awxbot 2017-09-10 00:22:08 -04:00
Alan Rominger
7c920c305f Merge pull request #397 from AlanCoding/7583
add help for instance provisioning
2017-09-09 15:17:37 -07:00
Wojciech Sciesinski
aa8bb1f45d The link to the AWX project FAQ added
Signed-off-by: Wojciech Sciesinski <wojciech@sciesinski.net>
2017-09-09 11:19:56 +02:00
Mike McMahon
0cd34c1498 jobs take count of gte cutoff, process only lt cutoff
Signed-off-by: Mike McMahon <mike.mcmahon@wavefront.com>
2017-09-08 18:46:52 -07:00
Mike McMahon
399e0e5e24 switching to iterator and adding the missed Job cleanup
Signed-off-by: Mike McMahon <mike.mcmahon@wavefront.com>
2017-09-08 18:37:59 -07:00
Matthew Jones
2fb9b6cf25 Merge pull request #14 from AlanCoding/rel_obj_conservation
Pass existing object references within access methods
2017-09-08 15:22:40 -07:00
Matthew Jones
c6ae6b84d5 Merge pull request #13 from AlanCoding/exceptions
use exceptions for job cancel and failure
2017-09-08 15:19:41 -07:00
Matthew Jones
2620da1f4e Merge pull request #85 from sebthebert/sebthebert-patch-1
Add the 'installer' directory to 'inventory' and 'install.yml' files
2017-09-08 15:11:24 -07:00
John Mitchell
11b06a2e5e add disassociation disclaimer 2017-09-08 17:55:41 -04:00
Sebastien Thebert
f4770d065e Add the 'installer' directory to 'inventory' and 'install.yml' files
Add the 'installer' directory to 'inventory' and 'install.yml' files in the 'Docker' Section
2017-09-08 23:43:00 +02:00
AlanCoding
42ee804464 add help for instance provisioning 2017-09-08 14:36:17 -07:00
Matthew Jones
c5c926f29c Merge pull request #82 from Zokormazo/fix-typo-local_docker
Fix typo in local_docker task
2017-09-08 13:35:09 -07:00
Julen Landa Alustiza
98c7f1181e Fix typo in local_docker task
Signed-off-by: Julen Landa Alustiza <julen@zokormazo.info>
2017-09-08 22:21:23 +02:00
Matthew Jones
1098f7d9f4 Merge pull request #81 from ansible/revert-61-devel
Revert "Ensure Docker is running fixes #59"
2017-09-08 13:10:35 -07:00
Matthew Jones
493094dc18 Revert "Ensure Docker is running fixes #59" 2017-09-08 16:10:01 -04:00
Matthew Jones
4067cf639b Merge pull request #77 from martinbydefault/patch-1
typo fix
2017-09-08 12:52:40 -07:00
Greg Considine
ccbf7af7f2 Merge pull request #49 from gconsidine/ui/clean-build
Update UI build system
2017-09-08 15:49:02 -04:00
Alan Rominger
19ebd0aa68 Merge pull request #382 from AlanCoding/isolated_reaper
reap isolated jobs
2017-09-08 12:41:03 -07:00
AlanCoding
8e1e60c187 simplify isolated job reaping by checking all task ids 2017-09-08 12:30:05 -07:00
martinbydefault
133e9fed4a typo fix 2017-09-08 16:26:13 -03:00
gconsidine
fba8a48d91 Update dependencies, template file, and docs
* Use git+https prefix in git-based npm dependencies
* Use ejs template for index to fix extraneous slash in path
* Remove outdated documentation
* Remove unused service
* Regenerate shrinkwrap
2017-09-08 15:17:01 -04:00
Greg DeKoenigsberg
75699f82e9 update code of conduct url 2017-09-08 14:33:48 -04:00
Marliana Lara
7a2a4cc4a9 Merge pull request #396 from marshmalien/fix/7591-quirky-lookup-modals
Fix form field lookup by populating the field name
2017-09-08 13:46:39 -04:00
Marliana Lara
e131c0e5b9 Merge pull request #395 from marshmalien/fix/7572-remove-modal-backdrop
Remove modal backdrop on hidden modal event
2017-09-08 13:46:17 -04:00
Greg DeKoenigsberg
05ce5e6e2f Fixing code of conduct url
never swapped out the old url, fixing
2017-09-08 13:41:48 -04:00
AlanCoding
878e7ef49f reap isolated jobs 2017-09-08 10:40:39 -07:00
Marliana Lara
1a9379b41d Fix the height style of the side navigation panel 2017-09-08 12:38:05 -04:00
Wayne Witzel III
0da416b141 Merge pull request #46 from swills/install-req-gmake-git
add missing build deps
2017-09-08 10:36:29 -04:00
Wayne Witzel III
a825c84521 Merge pull request #61 from Numblesix/devel
Ensure Docker is running fixes #59
2017-09-08 09:34:18 -04:00
Wayne Witzel III
a8841e2e2b Merge pull request #60 from FooBarQuaxx/patch-1
Fixed typo in supervisor autorestart option
2017-09-08 09:22:22 -04:00
Sandro Emma
21ae187d02 Ensure Docker is running fixes #59
Signed-off-by: Sandro Emma <feeds.sandro@gmail.com>
2017-09-08 14:52:06 +02:00
MAA
6915c21092 Fixed typo in supervisor autorestart option 2017-09-08 13:38:30 +02:00
Ryan Petrello
37bbb0758c Merge pull request #51 from puiterwijk/fixbackport
Use distutils find_executable instead of which
2017-09-07 20:06:42 -07:00
Patrick Uiterwijk
3816791aa4 Use distutils find_executable instead of which
Fixes: #44

Signed-off-by: Patrick Uiterwijk <patrick@puiterwijk.org>
2017-09-08 01:49:50 +00:00
Matthew Jones
534fefd82f Merge pull request #42 from geerlingguy/installer-whitespace-cleanup
Whitespace cleanup for installer.
2017-09-07 17:23:42 -07:00
gconsidine
c57c17546e Update UI build system
* Faster build times
* Smaller bundle sizes
* Adjust paths
* Cleanup npm dependencies
* Remove unneded Grunt tasks
2017-09-07 18:09:14 -04:00
Matthew Jones
33c0f8c721 Merge pull request #39 from puiterwijk/fix-nameid
Fix using SAML NameID
2017-09-07 14:28:13 -07:00
Steve Wills
dfaca1c42b add missing build deps 2017-09-07 17:22:59 -04:00
Jeff Geerling
6abffcb1df Whitespace cleanup for installer. 2017-09-07 14:21:28 -07:00
Bill Nottingham
0489d945fb Merge pull request #36 from Zokormazo/fix-typo
Fix typo in contributing guide
2017-09-07 14:11:18 -07:00
Mike McMahon
023431165a fixing missing colon and missing variable usage
Signed-off-by: Mike McMahon <mike.mcmahon@wavefront.com>
2017-09-07 14:03:18 -07:00
Patrick Uiterwijk
830012e2f4 Fix using SAML NameID
Without this patch, SAML backend will only use the first letter of the NameID as attribute value.

Signed-off-by: Patrick Uiterwijk <patrick@puiterwijk.org>
2017-09-07 20:54:27 +00:00
Mike McMahon
0388568ea0 Reduces the job to only looking at objects older than the cutoff date
Signed-off-by: Mike McMahon <mike.mcmahon@wavefront.com>
2017-09-07 13:41:43 -07:00
Marliana Lara
7965f9df6c Fix form field lookup by populating the field name 2017-09-07 16:24:01 -04:00
Julen Landa Alustiza
81ef293361 Fix typo in contributing guide
Signed-off-by: Julen Landa Alustiza <julen@zokormazo.info>
2017-09-07 21:48:55 +02:00
Bill Nottingham
b565fd2ec1 Merge pull request #29 from bjoernfan/doc-install-fixes
Documentation fixes in INSTALL.md
2017-09-07 09:33:57 -07:00
Marliana Lara
2f3124edf4 Remove modal backdrop on hidden modal event
Signed-off-by: Marliana Lara <mlara@redhat.com>
2017-09-07 11:58:36 -04:00
Bill Nottingham
8cb55107d0 Merge pull request #32 from wenottingham/devel
Nuke old license file.
2017-09-07 07:46:02 -07:00
Marliana Lara
56e9d7b8e2 Merge pull request #392 from marshmalien/fix/7576-pagination-space
Add margin between pagination pages and totals
2017-09-07 10:22:55 -04:00
Bill Nottingham
9524a5c860 Nuke old license file.
Signed-off-by: Bill Nottingham <notting@splat.cc>
2017-09-07 07:19:03 -07:00
Aaron Tan
42bbd7d47a Merge pull request #18 from jangsutsr/wrap_up_ctint_unit_tests
Wrap up Tower configuration unit tests
2017-09-07 09:49:14 -04:00
Björn Pettersson
b833451257 doc: Add missing bracket to anchor link
Signed-off-by: Björn Pettersson <bjorn@undef.io>
2017-09-07 13:15:50 +02:00
Björn Pettersson
ea61aa1e1c doc: Fix docker anchor links
Signed-off-by: Björn Pettersson <bjorn@undef.io>
2017-09-07 13:15:49 +02:00
Björn Pettersson
8f4bb3f19c doc: Remove trailing whitespace
Signed-off-by: Björn Pettersson <bjorn@undef.io>
2017-09-07 13:15:47 +02:00
Björn Pettersson
4704800ce3 doc: intalling -> installing
Signed-off-by: Björn Pettersson <bjorn@undef.io>
2017-09-07 13:15:40 +02:00
Ryan Petrello
2f915c2182 Merge pull request #25 from ryanpetrello/devel
add a badge for shippable build status
2017-09-06 21:29:55 -07:00
Ryan Petrello
77f07ca0e3 add a badge for shippable build status 2017-09-06 21:15:49 -07:00
AlanCoding
41940687f1 Pass existing object references within access methods
This avoids re-loading objects from the database in our
chain of permission checking, wherever possible.
access.py is equiped to handle object references instead
of pk ints, and permissions.py is changed to pass those refs.
2017-09-06 16:34:00 -07:00
Ryan Petrello
bfea00f6dc Merge pull request #24 from ryanpetrello/devel
fix broken shippable test suite
2017-09-06 19:32:51 -04:00
Ryan Petrello
44702c5cfd fix broken shippable test suite 2017-09-06 16:12:43 -07:00
jlmitch5
37c2d01260 Merge pull request #16 from jlmitch5/newNav
new navigation in UI
2017-09-06 17:54:21 -04:00
John Mitchell
ea91fabba0 implement componenitized navigation and remove old nav and layout code 2017-09-06 17:32:32 -04:00
Jared Tabor
a8d882dcc5 Merge pull request #22 from jaredevantabor/spud-logo-placement
adjusting placement of spud on login screen
2017-09-06 14:08:28 -07:00
Jared Tabor
35b44af030 adjusting placement of spud on login screen 2017-09-06 13:37:41 -07:00
Matthew Jones
4127aad3d4 Merge branch 'awx_installer' into devel
* awx_installer:
  Adds docker installation steps (#15)
  Call out eval for setting up the minishift environment
  Support official image builds with awx logos
  Add support for standalone docker install
  First iteration on INSTALL
  Adds edge terminated route
  Ignore Pycharm droppings
  Force reauth docker registry login in installer
  Reduce the size of the production container image
  Initial awx installer
2017-09-06 16:25:55 -04:00
Matthew Jones
67d1a86d81 Merge branch 'release_3.2.0' into devel
* release_3.2.0: (138 commits)
  Pull Dutch and Spanish translations
  Increase verbosity of CTiT Logging test error handling
  fix to console error of conditional toggle showing
  Fix error message when calling remove on undefined DOM element
  fix ctit logging toggle from being showed for log types other than https
  Remove delete and edit buttons from smart inventory host list.  Only option should be view.
  feedback from PR
  Enhance query string in ad hoc command event save to consider smart inventory
  Fixed host filter clearall
  fuller validation for host_filter
  On JT form, Show credential tags from summary_fields if user doesn't have view permission on the credential
  Align key toggle button to role dropdown in user team permissions modal
  Removed rogue console.logs
  Removed extra refresh call
  Enhace query string in job event save to consider smart inventory
  Fix typo in scan_packages plugin
  Switch running_jobs and capacity table columns
  Disable insights cred when user doesn't have edit permissions
  Disallow changing credential_type of an existing credential
  fix bug with host_filter RBAC check
  ...
2017-09-06 16:10:08 -04:00
Shane McDonald
df8ab0d9a9 Pull Dutch and Spanish translations 2017-09-06 14:46:06 -04:00
Michael Abashian
a93cdf8c86 Merge pull request #389 from mabashian/7574-smart-inv-host-list
Hide delete, edit buttons on smart inventory host list
2017-09-06 14:25:41 -04:00
Marliana Lara
ecf92e8fe4 Merge pull request #394 from marshmalien/fix/7579-test-error-handling
Increase verbosity of CTiT Logging test error handling
2017-09-06 13:29:35 -04:00
Marliana Lara
9329092c32 Increase verbosity of CTiT Logging test error handling 2017-09-06 12:51:52 -04:00
Aaron Tan
94d4a7e3f0 Fix 7587: Remove credential_type_id in API v1 2017-09-06 10:39:49 -04:00
Marliana Lara
48e583026f Add margin between pagination pages and totals 2017-09-05 18:01:41 -04:00
Marliana Lara
ce6aea7437 Merge pull request #391 from marshmalien/fix/7577-undefined-required-label
Prevent TypeError when removing asterisk DOM element
2017-09-05 16:59:33 -04:00
jlmitch5
986f2c0941 Merge pull request #390 from jlmitch5/fixCtitLoggingToggle
Fix ctit logging toggle
2017-09-05 16:59:13 -04:00
John Mitchell
1238c788e1 fix to console error of conditional toggle showing 2017-09-05 16:56:00 -04:00
Aaron Tan
64b6b18a81 Wrap up Tower configuration unit tests 2017-09-05 15:16:51 -04:00
Marliana Lara
03932c7bdb Fix error message when calling remove on undefined DOM element 2017-09-05 15:10:33 -04:00
Ryan Fitzpatrick
8a4d915c8d Merge pull request #378 from rmfitzpatrick/at6392_correct_deb_package_scan
Correct deb package scan typo
2017-09-05 13:17:20 -04:00
John Mitchell
86a6e5ee63 fix ctit logging toggle from being showed for log types other than https 2017-09-05 12:29:07 -04:00
Alan Rominger
757a91a7d2 Merge pull request #385 from AlanCoding/smart_validation
fuller validation for host_filter
2017-09-05 10:39:33 -04:00
mabashian
a09bd5a90d Remove delete and edit buttons from smart inventory host list. Only option should be view. 2017-09-01 16:32:38 -04:00
Aaron Tan
c70362cb57 Merge pull request #381 from jangsutsr/7515_enhance_ad_hoc_cmd_evt_save_query_for_fetching_hosts
Enhance query str in AHC event save to consider smart inventory
2017-09-01 16:01:43 -04:00
Ryan Petrello
768c7ba3dc bump azurerm dependencies to support Ansible 2.4
see: https://github.com/ansible/ansible-tower/issues/7470
2017-09-01 15:15:53 -04:00
Jared Tabor
e053e5a84e Merge pull request #383 from jaredevantabor/403-on-JT2
Show credentials on JT form, despite not having permission to the creds
2017-09-01 11:21:43 -07:00
Jared Tabor
2857bfd8a0 feedback from PR 2017-09-01 11:03:03 -07:00
Marliana Lara
4877dc4612 Merge pull request #380 from marshmalien/fix/7562-add-permissions-key-button
Align key toggle button to role dropdown in user team permissions modal
2017-09-01 13:20:17 -04:00
Michael Abashian
10a0c0164b Merge pull request #386 from mabashian/7566-clearall-host-filter
Fixed host filter clear all
2017-09-01 11:32:48 -04:00
Michael Abashian
a9f4b4883a Merge pull request #370 from mabashian/7542-cancel-sync-tooltip
Reload the project list when we get a canceled socket message
2017-09-01 11:32:33 -04:00
Michael Abashian
f314367bc8 Merge pull request #368 from mabashian/7549-auto-pop
Removed prepend-asterisk in favor of an injected span
2017-09-01 11:30:18 -04:00
Aaron Tan
c866b9d768 Enhance query string in ad hoc command event save to consider smart inventory 2017-09-01 10:15:29 -04:00
Aaron Tan
6f96df6bbb Merge pull request #379 from jangsutsr/7514_enhance_job_event_save_query_for_fetching_hosts
Enhace query string in job event save to consider smart inventory
2017-09-01 09:53:14 -04:00
mabashian
7318cbae9b Fixed host filter clearall 2017-09-01 09:27:48 -04:00
AlanCoding
a36a141141 fuller validation for host_filter 2017-08-31 23:10:09 -04:00
Chris Houseknecht
e2a0fd7b0b Adds docker installation steps (#15) 2017-08-31 22:21:25 -04:00
Jared Tabor
1cdab96e02 showing job explanation if it wasn't "Previous Task Failed..." 2017-08-31 15:37:49 -07:00
Jared Tabor
a3c8bd6b6f On JT form, Show credential tags from summary_fields if user
doesn't have view permission on the credential
2017-08-31 15:11:17 -07:00
Marliana Lara
faa45cc606 Align key toggle button to role dropdown in user team permissions modal 2017-08-31 15:38:00 -04:00
Michael Abashian
ddc2af0691 Merge pull request #375 from mabashian/7545-cancel-flash
Fix cancel delete button flash
2017-08-31 14:51:46 -04:00
Michael Abashian
381a27957a Merge pull request #377 from mabashian/insights-cred-disable
Disable insights cred when user doesn't have edit permissions
2017-08-31 14:51:29 -04:00
mabashian
41799521c6 Removed rogue console.logs 2017-08-31 14:49:40 -04:00
mabashian
1617700ee0 Removed extra refresh call 2017-08-31 14:42:36 -04:00
Aaron Tan
839f3a4d2c Enhace query string in job event save to consider smart inventory 2017-08-31 14:39:39 -04:00
Marliana Lara
2b99ddda02 Merge pull request #367 from marshmalien/7551-invert-capacity-percentages
Invert capacity bar UI to display capacity consumed
2017-08-31 14:34:16 -04:00
Jared Tabor
c3a7adcb0d Merge pull request #373 from jaredevantabor/disabled-orgs
Disabling Organization fields for non super-users/org-admins
2017-08-31 11:06:36 -07:00
Marliana Lara
9efdd01e2b Merge pull request #371 from marshmalien/7552-job-event-scrollbars
Remove extra horizontal scrollbar from CodeMirror in Host Event modal
2017-08-31 13:30:57 -04:00
Ryan Fitzpatrick
5cbdadc3e8 Fix typo in scan_packages plugin 2017-08-31 13:17:30 -04:00
Marliana Lara
c5d4ea01f6 Switch running_jobs and capacity table columns 2017-08-31 12:52:50 -04:00
Alan Rominger
12537c2739 Merge pull request #376 from AlanCoding/host_filter_goof
fix bug with host_filter RBAC check
2017-08-31 12:09:00 -04:00
Aaron Tan
15f57eb911 Merge pull request #333 from jangsutsr/7505_disallow_changing_credential_type_of_credential
Disallow changing credential_type of an existing credential
2017-08-31 11:37:43 -04:00
Alan Rominger
3530b643b6 Merge pull request #374 from AlanCoding/v1_adhoc
remove can_run_ad_hoc_commands in v2
2017-08-31 11:33:18 -04:00
mabashian
ddb588f7a6 Disable insights cred when user doesn't have edit permissions 2017-08-31 11:31:51 -04:00
Aaron Tan
68391301b0 Pick up workflow cornercase in get_user_capabilities 2017-08-31 11:31:41 -04:00
Aaron Tan
276bed2d0b Disallow changing credential_type of an existing credential 2017-08-31 11:25:01 -04:00
AlanCoding
2027047220 fix bug with host_filter RBAC check 2017-08-31 10:42:16 -04:00
Marliana Lara
00a49482f2 Merge pull request #369 from marshmalien/6908-diff-mode
Add diff_mode to job launch data object
2017-08-31 10:20:56 -04:00
mabashian
e60fcf93ba Fix cancel delete button flash 2017-08-31 10:19:19 -04:00
Aaron Tan
35110ef738 Prevent mistakenly truncate ANSI SGR code in job event stdout 2017-08-31 10:19:04 -04:00
Marliana Lara
383d6d6071 Edit Capacity column header and style 2017-08-31 10:12:07 -04:00
Shane McDonald
2419e5594b Update QA'd Japanese translations. 2017-08-31 10:08:22 -04:00
Ryan Petrello
5f416cce74 Merge pull request #365 from ryanpetrello/fix-7521
include extra_credentials data in summary fields for JT/Job detail view
2017-08-31 09:53:21 -04:00
AlanCoding
ceafa3803a remove can_run_ad_hoc_commands in v2 2017-08-30 23:14:05 -04:00
Jared Tabor
39a4dee84f adding model for admin of orgs and disabling credential's org field
when appropriate
2017-08-30 16:25:20 -07:00
Jared Tabor
ec4877f10b adding org-admin check for projects and teams 2017-08-30 16:25:19 -07:00
Marliana Lara
89db868d02 Remove extra horizontal scrollbar on Host Event Modal 2017-08-30 16:54:37 -04:00
mabashian
e0a10fb9d6 Reload the project list when we get a canceled socket message 2017-08-30 16:49:45 -04:00
Marliana Lara
1c05c60bd4 Add diff_mode to job launch data and POST it 2017-08-30 16:28:29 -04:00
Michael Abashian
5501d42de0 Merge pull request #361 from mabashian/7544-host-filter-org
Org-centric smart inventory UI changes
2017-08-30 15:46:53 -04:00
mabashian
f8c6690d6d Properly name the required asterisks class 2017-08-30 15:41:45 -04:00
mabashian
33c470ebc5 Removed prepend-asterisk in favor of an injected span 2017-08-30 15:36:20 -04:00
Matthew Jones
c1ffa6e5d9 Call out eval for setting up the minishift environment 2017-08-30 15:02:06 -04:00
AlanCoding
853d38b757 remove unused signal_finished method 2017-08-30 13:44:37 -04:00
Matthew Jones
f1af6b9bf2 Support official image builds with awx logos 2017-08-30 13:40:48 -04:00
Marliana Lara
69710366b6 Revert capacity bar to display consumed_capacity instead of percent_capacity_remaining 2017-08-30 13:30:21 -04:00
AlanCoding
de58d6764f use exceptions for job cancel and failure 2017-08-30 13:19:53 -04:00
Ryan Petrello
7192d5c4bb include extra_credentials data in summary fields for JT/Job detail view
see: https://github.com/ansible/ansible-tower/issues/7521
2017-08-30 11:56:24 -04:00
Alan Rominger
de3b9fc70d Merge pull request #364 from AlanCoding/null_inv_val
more coherent source_script & inv validation
2017-08-30 10:35:04 -04:00
Alan Rominger
2385c28046 Merge pull request #366 from AlanCoding/logger_unicode
smart_str in log statement to avoid unicode error
2017-08-30 10:33:43 -04:00
Shane McDonald
d3507eb42c Pull updated Japanese and French translation files. 2017-08-30 09:53:56 -04:00
AlanCoding
78ab13a44e smart_str in log statement to avoid unicode error 2017-08-30 09:47:18 -04:00
Matthew Jones
2daaef2a99 Contributing updates for clarity 2017-08-30 09:24:44 -04:00
Matthew Jones
3adc332ea7 Merge pull request #10 from chouseknecht/devel
Community updates
2017-08-30 09:20:20 -04:00
Ryan Petrello
6941df940f Merge pull request #360 from ryanpetrello/license_type_check
update the license check command to return license type, not validity
2017-08-30 09:12:44 -04:00
AlanCoding
20e82eba42 more coherent source_script & inv validation 2017-08-30 08:31:08 -04:00
Chris Houseknecht
5754952660 Updates CONTRIBUTING and README 2017-08-29 21:18:56 -04:00
Alan Rominger
7a1f674abc Merge pull request #363 from AlanCoding/org_smart_inv
backend of org-scoped smart inventories
2017-08-29 20:51:03 -04:00
Aaron Tan
3874476d84 Merge pull request #357 from jangsutsr/6103_enhance_log_protocol_choice_layout
Enhance LOG_AGGREGATOR_PROTOCOL choice options layout
2017-08-29 17:02:47 -04:00
jlmitch5
69c12aa9e3 Merge pull request #362 from mabashian/7541-autopopulate
Fixed autopopulate for a few fields
2017-08-29 16:57:11 -04:00
Alan Rominger
e679997ecc Merge pull request #359 from AlanCoding/fail_ans_inv
set flag to fail imports on errors
2017-08-29 16:51:48 -04:00
Matthew Jones
5d3bc95283 Merge pull request #355 from ansible/fix_ig_org_rbac
Ensure that only the super user can dis/associate IGs from Orgs
2017-08-29 16:50:31 -04:00
AlanCoding
ff96a750e1 backend of org-scoped smart inventories 2017-08-29 16:43:56 -04:00
Matthew Jones
067beb90c9 Add support for standalone docker install 2017-08-29 16:14:53 -04:00
mabashian
ca62c8931f Fixed autopopulate for a few fields 2017-08-29 15:40:47 -04:00
Michael Abashian
100413fdff Merge pull request #358 from mabashian/6034-basic-workflow-copy-error
Properly catch and display workflow copy error when basic license installed
2017-08-29 15:31:15 -04:00
Michael Abashian
0362d42007 Merge pull request #354 from mabashian/7526-instance-group-noitems-text
Updated instance groups empty list text
2017-08-29 15:30:34 -04:00
Michael Abashian
9b15beead7 Merge pull request #353 from mabashian/7265-deselect
Fixed deselect team/user when adding permission
2017-08-29 15:30:08 -04:00
Ryan Petrello
beae7ffa20 update the license check command to return license type, not validity
we care about preventing upgradability from AWX installs w/ the open
source license, not general license validity

see: https://github.com/ansible/ansible-tower/issues/6555
2017-08-29 15:25:32 -04:00
mabashian
663d95c388 Use org when showing host filter matches. Make org required before user can interact with host filter. 2017-08-29 15:25:27 -04:00
AlanCoding
9d91875832 set flag to fail imports on errors 2017-08-29 14:36:53 -04:00
Marliana Lara
748c8543b9 Merge pull request #351 from marshmalien/fix/7537-Select2-dropdown-decrease-stack-order
Decrease Select2 dropdown stack order
2017-08-29 14:25:42 -04:00
Chris Houseknecht
327be00e8f Merge pull request #9 from chouseknecht/awx_installer
Awx installer
2017-08-29 12:27:27 -04:00
mabashian
2f6e16f7ba Properly catch and display workflow copy error when basic license installed 2017-08-29 11:42:24 -04:00
Aaron Tan
68cccb77a0 Enhance LOG_AGGREGATOR_PROTOCOL choice options layout 2017-08-29 11:13:36 -04:00
jlmitch5
a3b29a196c Fix revert of log aggregator protocol 2017-08-29 11:02:40 -04:00
Matthew Jones
d7fd3a467a Ensure that only the super user can dis/associate IGs from Orgs 2017-08-29 09:36:42 -04:00
Chris Houseknecht
a144738094 First iteration on INSTALL 2017-08-28 17:18:12 -04:00
Jared Tabor
e2d943fd1a adding ng-if to tabs in order to hide insights tab on host-add-form 2017-08-28 13:52:39 -07:00
Alan Rominger
ba8326285e Merge pull request #337 from AlanCoding/capacity_fix
correct capacity algorithm for task manager
2017-08-28 16:49:19 -04:00
AlanCoding
d54eb93f26 Handle capacity algorithm corner cases
Instance has gone lost, and jobs are still either running
or waiting inside of its instance group
RBAC - user does not have permission to see some of the
groups that would be used in the capacity calculation

For some cases, a naive capacity dictionary is returned,
main goal is to not throw errors and avoid unpredicted behavior

Detailed capacity tests are moved into new unit test file.
2017-08-28 16:12:12 -04:00
mabashian
351b88b6ca Updated instance groups empty list text 2017-08-28 15:45:19 -04:00
Michael Abashian
41b1dc2ddd Merge pull request #350 from mabashian/7488-smart-inv-host-filter
Updated smart inv host filter list empty text
2017-08-28 15:21:45 -04:00
Michael Abashian
4043ec3bbd Merge pull request #338 from mabashian/7524-duplicate-host-filter
Prevent duplicate host filter strings
2017-08-28 15:20:31 -04:00
jlmitch5
2b1df7ba63 Merge pull request #344 from jlmitch5/fixStdout
fix stdout ordering
2017-08-28 15:20:12 -04:00
Michael Abashian
8d6de99a12 Merge pull request #335 from mabashian/7489-edit-smart-inv-host
Edit a host from within the smart inventory tree
2017-08-28 15:19:57 -04:00
John Mitchell
a5321179ac fix stdout ordering missing event issue 2017-08-28 15:06:58 -04:00
mabashian
ffcab7e33b Fixed deselect team/user when adding permission 2017-08-28 15:06:17 -04:00
Chris Houseknecht
291d5fb0b5 Adds edge terminated route 2017-08-28 14:49:50 -04:00
Chris Houseknecht
c0c6170ba6 Ignore Pycharm droppings 2017-08-28 14:48:28 -04:00
Marliana Lara
1cbe3c3fe5 Decrease Select2 dropdown stack order 2017-08-28 13:35:15 -04:00
mabashian
0be16239a0 Small tweaks to empty list text styling 2017-08-28 12:43:47 -04:00
mabashian
d0c9d8ce4e Updated smart inv host filter list empty text 2017-08-28 12:37:41 -04:00
Alan Rominger
c2d59e4815 Merge pull request #347 from AlanCoding/no_start
remove job start endpoint in v2
2017-08-28 12:11:32 -04:00
AlanCoding
5327a4c622 Use global capacity algorithm in serializer
The task manager was doing work to compute currently consumed
capacity, this is moved into the manager and applied in the
same form to the instance group list.
2017-08-28 12:07:47 -04:00
Marliana Lara
d01d8b86b2 Merge pull request #342 from marshmalien/7529-Diff-mode-popover-typo
Replace single apostrophe with Unicode equivalent
2017-08-28 11:20:41 -04:00
Marliana Lara
48d37c8522 Merge pull request #341 from marshmalien/fix/7517-asterisk-whitespace
Keep whitespace between field label asterisk and label title
2017-08-28 11:20:28 -04:00
AlanCoding
495d6e9887 remove job start endpoint in v2 2017-08-28 11:12:13 -04:00
Alan Rominger
c904ed62fe Merge pull request #348 from AlanCoding/jobs_opt
optimizations for unified job subtypes
2017-08-28 11:06:26 -04:00
Michael Abashian
3b2149f252 Merge pull request #336 from mabashian/7523-search-spaces
Re-included logic for stripping out quotes from search value that was inadvertently removed
2017-08-28 10:05:34 -04:00
Aaron Tan
fd08314dcb Merge pull request #345 from jangsutsr/7532_disallow_custom_inv_src_from_using_wrong_cred
Disallow custom inventory sources from using meaningless credentials
2017-08-28 09:45:19 -04:00
Shane McDonald
d5c1f34016 Update pot files 2017-08-27 15:32:21 -04:00
AlanCoding
ce3c969c08 correct capacity algorithm for task manager 2017-08-26 11:59:25 -04:00
Alan Rominger
34a375542e Merge pull request #339 from AlanCoding/encrypted_fix2
allow cache storing of non-DB settings
2017-08-26 11:57:29 -04:00
Alan Rominger
d97cf263c1 Merge pull request #308 from AlanCoding/calm_your_signals2
avoid every-request user signals
2017-08-26 11:56:41 -04:00
Aaron Tan
853b9d1001 Merge pull request #343 from jangsutsr/7530_add_pending_deletion_check_to_job_relaunch_validation
Add pending_deletion check to job relaunch validation
2017-08-25 16:50:16 -04:00
Aaron Tan
90bff467a4 Merge pull request #326 from jangsutsr/7500_add_workflow_license_check_to_user_capabilities
Allow lower-licensed user to delete workflow resources
2017-08-25 16:49:12 -04:00
Aaron Tan
11e924b344 Disallow custom inventory sources from using meaningless credentials 2017-08-25 16:47:08 -04:00
John Mitchell
e6d4de301b fix stdout ordering 2017-08-25 16:26:07 -04:00
Aaron Tan
baa7478ff0 Add pending_deletion check to job relaunch validation 2017-08-25 15:34:32 -04:00
Marliana Lara
db3ee977fa Replace single apostrophe with Unicode equivalent 2017-08-25 14:43:17 -04:00
Marliana Lara
a64bd7e829 Keep whitespace between field label asterisk and title 2017-08-25 14:20:34 -04:00
AlanCoding
5cc5d4deff allow cache storing of non-DB settings 2017-08-25 13:59:31 -04:00
mabashian
5be6d5bf26 Prevent duplicate host filter strings 2017-08-25 13:30:24 -04:00
Greg Considine
e1ee95234e Delete unwanted (and accidentally created) file 2017-08-25 12:41:26 -04:00
Matthew Jones
ddbb845e36 Force reauth docker registry login in installer 2017-08-25 11:39:56 -04:00
mabashian
78b132580b Re-included logic for stripping out quotes from search value that was inadvertently removed 2017-08-25 09:50:58 -04:00
mabashian
5be3105d60 Edit a host from within the smart inventory tree 2017-08-24 17:12:58 -04:00
Jared Tabor
d1503e974b Merge pull request #332 from jaredevantabor/smart-host-inventories
adding inventory column to smart inventory host search modal
2017-08-24 17:00:00 -04:00
Jared Tabor
74e9834c42 adding inventory column to smart inventory host search modal 2017-08-24 16:25:10 -04:00
Aaron Tan
bd7cd9281b Allow lower-licensed user to delete workflow resources 2017-08-24 15:59:08 -04:00
AlanCoding
50ff18ba25 avoid every-request user signals 2017-08-24 11:20:39 -04:00
Michael Abashian
b4e78b6131 Merge pull request #331 from mabashian/7509-host-filter-permissions
Smart Inv permissions bug fixes
2017-08-23 18:20:08 -04:00
mabashian
be4ddab218 Hide filter tooltip when host filter is disabled 2017-08-23 18:13:33 -04:00
Michael Abashian
6e12fee5ec Merge pull request #329 from mabashian/7491-host-on-off
Disable togglehost when user cannot edit host
2017-08-23 18:02:28 -04:00
Michael Abashian
097c6463ad Merge pull request #327 from mabashian/7493-smart-inv-host-groups
Remove groups column from smart inventory hosts list
2017-08-23 18:01:55 -04:00
Michael Abashian
dbc95b39b7 Merge pull request #324 from mabashian/7265-permissions
Fixed bug removing item from allSelected when adding permissions
2017-08-23 17:59:14 -04:00
Michael Abashian
3aa9d2e64c Merge pull request #320 from mabashian/6034-workflow-402
Basic license wfjt fixes
2017-08-23 17:58:32 -04:00
mabashian
29fcf336c1 Disable host filter lookup for users who don't have edit permissions. Hide delete/edit inv list icons for users who don't have proper permissions. 2017-08-23 12:11:40 -04:00
Jared Tabor
1270a9365b Merge pull request #325 from jaredevantabor/danger
fixing ngToast.danger message for failed test aggregation
2017-08-23 12:03:55 -04:00
Jared Tabor
ba1d196a42 Merge pull request #328 from jaredevantabor/insights
changing logic for Remediate Inventory button
2017-08-23 12:02:59 -04:00
Jared Tabor
9ac29a95ce Merge pull request #330 from jaredevantabor/oops
Oops
2017-08-23 12:02:08 -04:00
Jared Tabor
ba88d1822b removing tower-license submodule...oops 2017-08-23 11:54:38 -04:00
mabashian
991e1916bf Iterator is nested_host and not host 2017-08-23 11:35:06 -04:00
mabashian
51c3d77a92 Disable togglehost when user cannot edit host 2017-08-23 11:07:02 -04:00
Michael Abashian
0cbe083dcf Merge pull request #323 from mabashian/7498-custom-inv-script-cred
Show credential lookup when source is 'custom'
2017-08-22 16:41:18 -04:00
Michael Abashian
105cead4da Merge pull request #313 from mabashian/2989-management-schedule
Fix management job scheduler time inputs by resetting invalid input to 00
2017-08-22 16:40:30 -04:00
Michael Abashian
4e6722a171 Merge pull request #309 from mabashian/roll-back-survey-question-changes
Rolled back survey question preview enhancements
2017-08-22 16:39:06 -04:00
Wayne Witzel III
05b4bff388 Merge pull request #322 from wwitzel3/issue-7501
Update HostManager to return distinct hostnames
2017-08-22 16:31:57 -04:00
Jared Tabor
dd7ebbc461 changing logic for Remediate Inventory button
to only check for any insights projects, instead of insights projects with
specifically the same credential as the insights inventory
2017-08-22 16:08:25 -04:00
John Mitchell
813a66cafe hide run commands for related host, groups nested hosts lists if user does not have permission 2017-08-22 16:07:55 -04:00
mabashian
e7e47c8906 Update name column classes after deleting groups column 2017-08-22 15:26:54 -04:00
mabashian
2d0cac7c4d Remove groups column from smart inventory hosts list 2017-08-22 15:25:15 -04:00
Jared Tabor
d3826c5c50 fixing ngToast.danger message for failed test aggregation 2017-08-22 15:02:17 -04:00
Matthew Jones
f107372464 Rename LICENSE to LICENSE.md 2017-08-22 14:34:25 -04:00
Matthew Jones
c3fec00562 Delete LICENSE.md 2017-08-22 14:34:09 -04:00
Matthew Jones
5d79d7a14a Updating license
markdown formatted license
2017-08-22 14:33:50 -04:00
James Laska
9503a5c07b Fix broken markdown 2017-08-22 14:30:31 -04:00
Aaron Tan
c2e8200c81 Merge pull request #319 from jangsutsr/7496_handle_empty_named_url_id_cornercase
Handle named URL processing corner case where identifier is empty string
2017-08-22 14:25:06 -04:00
James Laska
d2be1e83ce Minor adjustments to CONTRIBUTING.md 2017-08-22 14:25:04 -04:00
Matthew Jones
a9dcf6650b Adding apache v2 license 2017-08-22 14:19:52 -04:00
Shane McDonald
16ef7e1950 Remove EULA
Rather than deleting this file we are just removing the content, so that existing references to the file do not break.
2017-08-22 13:59:44 -04:00
mabashian
d2378637fa Fixed bug removing item from allSelected 2017-08-22 13:31:33 -04:00
Matthew Jones
6e4d886ea4 Reduce the size of the production container image 2017-08-22 13:21:53 -04:00
jlmitch5
9007965a8e Merge pull request #316 from jlmitch5/fixInvRecentJobsPopover
Fix inv recent jobs popover
2017-08-22 13:11:31 -04:00
mabashian
4fe8cde660 Show credential lookup when source is 'custom' 2017-08-22 12:03:36 -04:00
mabashian
03903c59b6 Handle delete wfjt error with basic license. Remove old 402 logic for hiding wf permissions tab 2017-08-22 11:13:40 -04:00
Matthew Jones
031b5f3269 Merge pull request #318 from ansible/405_v2_job_launch
Prevent v2 direct job launches
2017-08-22 11:01:14 -04:00
Alan Rominger
223a198bc4 Merge pull request #317 from AlanCoding/token_on_commit
[WIP] delay token expiration update to on_commit
2017-08-22 10:56:15 -04:00
Aaron Tan
c321819547 Handle named URL processing corner case where identifier is empty string 2017-08-22 10:40:45 -04:00
Matthew Jones
f3f10df361 IFF v2 api disallow direct job launches 2017-08-22 09:53:58 -04:00
Chris Meyers
022de2aa3e Merge pull request #314 from chrismeyersfsu/fix-session_deletion
do not re-create django session on every request
2017-08-22 09:38:37 -04:00
AlanCoding
4d41e31639 delay token expiration update to on_commit 2017-08-21 16:56:07 -04:00
Aaron Tan
f14a47caa0 Merge pull request #311 from jangsutsr/7484_update_ctint_help_to_remove_newline_escape
Update Tower Configuration help text to remove \n escape
2017-08-21 16:29:00 -04:00
Aaron Tan
1df3432130 Merge pull request #298 from jangsutsr/7479_prevent_accessing_none_attr_in_host_summary_repr
Prevent accessing None attributes in host summary __unicode__
2017-08-21 16:16:24 -04:00
John Mitchell
59fcf4b8ca update which jobs are shown in recent jobs popover 2017-08-21 15:40:39 -04:00
jlmitch5
ee4364996d Merge pull request #302 from jlmitch5/scheduleTogglesDisabledCtit
Schedule toggles disabled ctit
2017-08-21 15:25:18 -04:00
Jared Tabor
f6b60bb200 Merge pull request #305 from jaredevantabor/tooltip-content
Tooltip content Audit on the UI
2017-08-21 11:34:43 -04:00
Jared Tabor
7d7b917523 tooltip content audit for sources form 2017-08-21 11:21:33 -04:00
Chris Meyers
45813bea16 do not re-create django session on every request
* The django middleware call stack behavior is changed by DRF. As a
result, during the process_request in sso/middlware.py request.user
is not set as you would expect it to be set from the middleware
django.contrib.auth.middleware.AuthenticationMiddleware
2017-08-21 11:19:52 -04:00
Ryan Petrello
b5903ab7f4 Merge pull request #310 from ryanpetrello/fix-7476
properly sanitize conf.settings debug logs
2017-08-21 11:18:13 -04:00
mabashian
3d03855cd9 Fix management job scheduler time inputs by resetting invalid input to 00 2017-08-21 11:16:06 -04:00
Christian Adams
49aa43f8e4 Merge pull request #312 from rooftopcellist/auth_text_fix
Removes auth field from Access List serializer
2017-08-21 11:10:40 -04:00
Jared Tabor
b281b563e0 tooltip content audit for survey maker 2017-08-21 11:04:28 -04:00
Jared Tabor
e5efbcf42f tooltip content audit for workflows form 2017-08-21 11:04:28 -04:00
Jared Tabor
a589bc4562 tooltip content audit for inventory form 2017-08-21 11:04:28 -04:00
Jared Tabor
22afd8b044 tooltip content for inventory scripts form 2017-08-21 11:04:28 -04:00
Jared Tabor
50852e406a popover content for notification templates form 2017-08-21 11:04:28 -04:00
Jared Tabor
7a5899a968 popover content audit for JT form 2017-08-21 11:04:28 -04:00
adamscmRH
9b84670cf0 Removes auth field from Access List serializer 2017-08-21 10:43:28 -04:00
Aaron Tan
d243b587f4 Update Tower Configuration help text to remove \n escape. 2017-08-21 10:27:42 -04:00
Ryan Petrello
0b68ad9b10 properly sanitize conf.settings debug logs
cache.set() and cache.get() arguments are logged when the log level is
DEBUG; this _may_ include plaintext secrets; strip sensitive values
before logging them

see: https://github.com/ansible/ansible-tower/issues/7476
2017-08-21 10:23:39 -04:00
Aaron Tan
ff51fe3050 Prevent accessing None attributes in host summary __unicode__ 2017-08-21 09:56:11 -04:00
mabashian
0daa203fe0 Rolled back several survey question enhancements which caused drag and drop to break 2017-08-21 09:23:34 -04:00
Wayne Witzel III
ca9a1a0ca1 remove tests that execute distinct logic, sqlite3 does not support 2017-08-21 06:16:44 -04:00
Wayne Witzel III
f8c2b466a8 sometimes core_filters is not an attribute, so just set it to empty instead of pop 2017-08-21 06:03:37 -04:00
Wayne Witzel III
eb6a27653f Adjust HostManager and update summary host query 2017-08-21 04:01:58 -04:00
Wayne Witzel III
c352ea7596 Update HostManager to return only a single matching hostname for SmartInventory filter 2017-08-21 02:17:27 -04:00
AlanCoding
a1083d45c5 optimizations for unified job subtypes 2017-08-19 07:05:37 -04:00
Aaron Tan
708efbd165 Merge pull request #300 from jangsutsr/7482_tower_configuration_help_text_updates
Update API help text for Tower configuration
2017-08-18 18:45:43 -04:00
Alan Rominger
66a3680134 Merge pull request #295 from ansible/labels_load
basic API optimization of labels list
2017-08-18 17:23:55 -04:00
Alan Rominger
caf15abc4f Merge pull request #297 from AlanCoding/cache_ids
Make cache compatible with encrypted settings
2017-08-18 17:20:57 -04:00
Ryan Petrello
54d6c4ebfd Merge pull request #304 from ryanpetrello/required-cred-fields
mark a variety of credential fields as required
2017-08-18 17:02:24 -04:00
Ryan Petrello
05eac58c65 Merge pull request #301 from ryanpetrello/release_3.2.0
make `vault_password` required for Vault credentials
2017-08-18 17:02:15 -04:00
Matthew Jones
d39c70d9f2 Initial awx installer 2017-08-18 16:40:41 -04:00
Marliana Lara
dc65f459ec Merge pull request #299 from marshmalien/fix/4514-vmware-instance-filter-tooltip
Change the instance filters tooltip text and add translations
2017-08-18 16:39:47 -04:00
Ryan Petrello
b0a1988c29 add required fields for cloudforms credentials
see: https://github.com/ansible/ansible-tower/issues/7462
2017-08-18 16:18:06 -04:00
Ryan Petrello
bcd8e13c24 add required fields for gce credentials
see: https://github.com/ansible/ansible-tower/issues/7463
2017-08-18 16:18:06 -04:00
Ryan Petrello
fc73bdcc18 add required fields for azure classic credentials
https://github.com/ansible/ansible-tower/issues/7464
2017-08-18 16:18:05 -04:00
Ryan Petrello
5ba76f28ce add required fields for azure credentials
see: https://github.com/ansible/ansible-tower/issues/7465
2017-08-18 16:18:05 -04:00
Ryan Petrello
90b5d98e5c add required fields for network credentials
see: https://github.com/ansible/ansible-tower/issues/7466
2017-08-18 16:18:04 -04:00
Ryan Petrello
50782b9465 add required fields for RHSatellite6 credentials
see: https://github.com/ansible/ansible-tower/issues/7467
2017-08-18 16:18:04 -04:00
Ryan Fitzpatrick
a7a607e440 Merge pull request #303 from rmfitzpatrick/credential_help_text_updates
Minor credential help text correction
2017-08-18 16:17:13 -04:00
Ryan Fitzpatrick
da70c11da5 Minor credential help text correction 2017-08-18 16:09:13 -04:00
Ryan Petrello
2e719e5bc6 Merge pull request #5 from ryanpetrello/shippable-ci
get CI passing on shippable CI
2017-08-18 16:02:24 -04:00
AlanCoding
1f2a7801fd fix flake8 and data gen functionality 2017-08-18 15:30:20 -04:00
Aaron Tan
0121e5c22b Update API help text for Tower configuration. 2017-08-18 15:02:12 -04:00
John Mitchell
08574428f1 add disabled toggle to job templte diff mode 2017-08-18 14:28:25 -04:00
Ryan Petrello
c4a1dfc4e8 only run shippable UI for devel and release branches 2017-08-18 14:21:48 -04:00
Ryan Petrello
438d41c986 make vault_password required for Vault credentials
see: https://github.com/ansible/ansible-tower/issues/7468
2017-08-18 14:10:19 -04:00
John Mitchell
d2595944fc make sure all toggles on ctit form are disabled 2017-08-18 14:01:12 -04:00
Jared Tabor
4d83e696f7 Merge pull request #296 from jaredevantabor/host-event-modal
Fixing host-event's stdout/stdout ng-if logic
2017-08-18 13:50:08 -04:00
Jared Tabor
f1c7286448 Merge pull request #294 from jaredevantabor/translations
adding translation directive in places
2017-08-18 08:56:25 -07:00
Marliana Lara
6bd5679429 Update the instance filters popover text and add translations 2017-08-18 11:47:41 -04:00
Jared Tabor
043523b6d2 adding translate directive to parts of components 2017-08-18 11:45:32 -04:00
Jared Tabor
4e077e2b95 fixing unit test for column-sort
after adding the translate directive
2017-08-18 11:28:42 -04:00
Michael Abashian
856d1a8047 Merge pull request #292 from mabashian/5092-credential-filtering
Add user credential permissions without org
2017-08-18 10:03:16 -04:00
Michael Abashian
74a1dbfe6c Merge pull request #291 from mabashian/5893-workflow-fixes
Fixed some delete workflow node bugs
2017-08-18 10:02:29 -04:00
AlanCoding
9254bcaf16 Make cache compatible with encrypted settings
This saves the id value of the setting into the cache
if the setting is encrypted. That can then be combined
with the secret_key in order to decrypt the setting,
without having to make an additional query to the database.
2017-08-17 17:18:41 -04:00
Jared Tabor
1944c7fbd7 Fixing host-event's stdout/stdout ng-if logic
and fixing small issue with resizing the host event modal
2017-08-17 13:04:25 -07:00
John Mitchell
3957797815 fix scheduler inner panel border 2017-08-17 12:16:21 -04:00
AlanCoding
66a8170bbc basic API optimization of labels list 2017-08-17 10:33:10 -04:00
Ryan Petrello
f495615435 Merge pull request #1 from ryanpetrello/shippable-ci
set up shippable ci
2017-08-17 10:14:25 -04:00
Wayne Witzel III
ba1ed5b6fd Merge pull request #293 from wwitzel3/release_3.2.0
Provide history to hosts that are part of smart inventory jobs.
2017-08-17 09:58:32 -04:00
Ryan Petrello
cebc9326cd set up shippable ci 2017-08-17 09:46:22 -04:00
Marliana Lara
b5c7753291 Merge pull request #290 from marshmalien/fix/7446-survey-maker-empty-prompt
Generalize empty SurveyMaker prompt text
2017-08-17 09:36:47 -04:00
Marliana Lara
d64e804bf6 Merge pull request #288 from marshmalien/fix/5919-read-only-multi-choice
Default value of preview multiple select dropdown should be read-only
2017-08-17 09:36:35 -04:00
Shane McDonald
da18033a46 Make parent image tag for unit tests a build arg 2017-08-17 09:16:52 -04:00
Chris Meyers
d0c8366bb4 Merge pull request #289 from chrismeyersfsu/fix-7452
account for waiting tasks not having execution_nodes yet
2017-08-17 08:54:49 -04:00
Alan Rominger
bd0d911376 Merge pull request #2 from AlanCoding/rollbacktothewall
data generator schema update
2017-08-17 08:15:52 -04:00
Shane McDonald
7ac2376a01 Make parent image tag for unit tests a build arg 2017-08-16 22:31:15 -04:00
Jared Tabor
1edc688acb adding translation directive in places 2017-08-16 16:50:48 -07:00
AlanCoding
d48c1bd71d data generator schema update for 3.2 2017-08-16 17:14:56 -04:00
Wayne Witzel III
67c25570f3 Ensure Smart Inventory hosts are assigned job history 2017-08-16 17:04:17 -04:00
mabashian
116a47fc6a Filter credentials to only credentials not associated with an organization when adding permissions for a user not associated with an organization. 2017-08-16 15:53:48 -04:00
Michael Abashian
6915e95f58 Merge pull request #286 from mabashian/7237-smart-inv-help
Changed smart host filter help text from RHEL to RedHat
2017-08-16 14:52:20 -04:00
Michael Abashian
07d9d4bca6 Merge pull request #284 from mabashian/7273-explanation
Fixed explanation for inv sync and playbook run stdout
2017-08-16 14:51:01 -04:00
Michael Abashian
cfc83f5a23 Merge pull request #282 from mabashian/5092-cred-permissions
Credential permissions fixes
2017-08-16 14:50:17 -04:00
mabashian
dfc4070dba Fixed some delete workflow node bugs 2017-08-16 14:44:01 -04:00
Marliana Lara
ad4b1650e3 Generalize empty SurveyMaker prompt text 2017-08-16 14:19:07 -04:00
Chris Meyers
1df47a2ddd account for waiting tasks not having execution_nodes yet
* Reap running tasks on non-netsplit nodes
* Reap running tasks on known to be offline nodes
* Reap waiting tasks with no celery id anywhere if waiting >= 60 seconds
2017-08-16 13:18:25 -04:00
Marliana Lara
1b6e4af9a7 Default value of preview multiple select dropdown should be read-only 2017-08-16 12:35:07 -04:00
mabashian
2908a0c2bd Changed smart host filter help text from RHEL to RedHat. Removed rogue console.log 2017-08-16 10:45:23 -04:00
Chris Meyers
2bccb5e753 Merge pull request #285 from chrismeyersfsu/fix-reap_workflow_jobs
do not include workflow jobs for reaping
2017-08-16 09:56:39 -04:00
Aaron Tan
ee06dab4d6 Merge pull request #283 from jangsutsr/6313_add_time_unit_to_uj_timeout_help_text
Add time unit to all unified job timeout conf help texts
2017-08-16 09:45:19 -04:00
Chris Meyers
d615e2e9ff do not include workflow jobs for reaping
* Workflow jobs are virtual jobs that don't actually run. Thus they
won't have a celery id and aren't candidates for the generic reaping.
* Better error logging when Instance not found in reaping code.
2017-08-16 08:51:27 -04:00
mabashian
01c3f62ed7 Added show/hide to explanation to limit long strings 2017-08-15 16:59:28 -04:00
Aaron Tan
4bc26310ac Add time unit to all unified job timeout conf help texts 2017-08-15 16:16:34 -04:00
mabashian
b5a34e45d2 Fixed credential permission user/teams lists. Fixed user permission credentials list 2017-08-15 15:37:56 -04:00
1689 changed files with 99888 additions and 112909 deletions

16
.github/BOTMETA.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
files:
awx/ui/:
labels: component:ui
maintainers: $team_ui
awx/api/:
labels: component:api
maintainers: $team_api
awx/main/:
labels: component:api
maintainers: $team_api
installer/:
labels: component:installer
macros:
team_api: wwitzel3 matburt chrismeyersfsu cchurch AlanCoding ryanpetrello rooftopcellist
team_ui: jlmitch5 jaredevantabor mabashian marshmalien benthomasson jakemcdermott

3
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,3 @@
# Community Code of Conduct
Please see the official [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).

48
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,48 @@
<!---
The Ansible community is highly committed to the security of our open source
projects. Security concerns should be reported directly by email to
security@ansible.com. For more information on the Ansible community's
practices regarding responsible disclosure, see
https://www.ansible.com/security
-->
##### ISSUE TYPE
<!--- Pick one below and delete the rest: -->
- Bug Report
- Feature Idea
- Documentation
##### COMPONENT NAME
<!-- Pick the area of AWX for this issue, you can have multiple, delete the rest: -->
- API
- UI
- Installer
##### SUMMARY
<!-- Briefly describe the problem. -->
##### ENVIRONMENT
* AWX version: X.Y.Z
* AWX install method: openshift, minishift, docker on linux, docker for mac, boot2docker
* Ansible version: X.Y.Z
* Operating System:
* Web Browser:
##### STEPS TO REPRODUCE
<!-- For bugs, please show exactly how to reproduce the problem. For new
features, show how the feature would be used. -->
##### EXPECTED RESULTS
<!-- For bug reports, what did you expect to happen when running the steps
above? -->
##### ACTUAL RESULTS
<!-- For bug reports, what actually happened? -->
##### ADDITIONAL INFORMATION
<!-- Include any links to sosreport, database dumps, screenshots or other
information. -->

9
.github/LABEL_MAP.md vendored Normal file
View File

@@ -0,0 +1,9 @@
Bug Report: type:bug
Bugfix Pull Request: type:bug
Feature Request: type:enhancement
Feature Pull Request: type:enhancement
UI: component:ui
API: component:api
Installer: component:installer
Docs Pull Request: component:docs
Documentation: component:docs

39
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,39 @@
##### SUMMARY
<!--- Describe the change, including rationale and design decisions -->
<!---
If you are fixing an existing issue, please include "related #nnn" in your
commit message and your description; but you should still explain what
the change does.
-->
##### ISSUE TYPE
<!--- Pick one below and delete the rest: -->
- Feature Pull Request
- Bugfix Pull Request
- Docs Pull Request
##### COMPONENT NAME
<!--- Name of the module/plugin/module/task -->
- API
- UI
- Installer
##### AWX VERSION
<!--- Paste verbatim output from `make VERSION` between quotes below -->
```
```
##### ADDITIONAL INFORMATION
<!---
Include additional information to help people understand the change here.
For bugs that don't have a linked bug report, a step-by-step reproduction
of the problem is helpful.
-->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```
```

9
.gitignore vendored
View File

@@ -20,6 +20,10 @@ celerybeat-schedule
awx/ui/static
awx/ui/build_test
awx/ui/client/languages
awx/ui/templates/ui/index.html
awx/ui/templates/ui/installing.html
/tower-license
/tower-license/**
# Tower setup playbook testing
setup/test/roles/postgresql
@@ -47,7 +51,7 @@ __pycache__
/.istanbul.yml
**/node_modules/**
/tmp
npm-debug.log
**/npm-debug.log*
# UI build flag files
awx/ui/.deps_built
@@ -108,9 +112,12 @@ local/
requirements/vendor
.i18n_built
VERSION
.idea/*
# AWX python libs populated by requirements.txt
awx/lib/.deps_built
awx/lib/site-packages
venv/*
use_dev_supervisor.txt
.idea/*

View File

@@ -1,31 +0,0 @@
sudo: false
language: python
python:
- '2.7'
env:
- TOXENV=api-lint
- TOXENV=api
- TOXENV=ui-lint
- TOXENV=ui
install:
- pip install tox
script:
- tox
# after_success:
# - TOXENV=coveralls tox
addons:
apt:
packages:
- swig
- libxmlsec1-dev
- postgresql-9.5
- libssl-dev
cache:
pip: true
directories:
- node_modules
- .tox
services:
- mongodb
# Enable when we stop using sqlite for API tests
# - postgresql

View File

@@ -1,233 +1,316 @@
AWX
===========
# AWX
Hi there! We're excited to have you as a contributor.
Have questions about this document or anything not covered here? Come chat with us on IRC (#ansible-awx on freenode) or the mailing list.
Have questions about this document or anything not covered here? Come chat with us at `#ansible-awx` on irc.freenode.net, or submit your question to the [mailing list](https://groups.google.com/forum/#!forum/awx-project) .
Table of contents
-----------------
## Table of contents
* [Contributing Agreement](#dco)
* [Code of Conduct](#code-of-conduct)
* [Setting up the development environment](#setting-up-the-development-environment)
* [Things to know prior to submitting code](#things-to-know-before-contributing-code)
* [Setting up your development environment](#setting-up-your-development-environment)
* [Prerequisites](#prerequisites)
* [Local Settings](#local-settings)
* [Building the base image](#building-the-base-image)
* [Building the user interface](#building-the-user-interface)
* [Starting up the development environment](#starting-up-the-development-environment)
* [Starting the development environment at the container shell](#starting-the-container-environment-at-the-container-shell)
* [Using the development environment](#using-the-development-environment)
* [Docker](#docker)
* [Docker compose](#docker-compose)
* [Node and npm](#node-and-npm)
* [Building the environment](#building-the-environment)
* [Clone the AWX repo](#clone-the-awx-repo)
* [Create local settings](#create-local-settings)
* [Build the base image](#build-the-base-image)
* [Build the user interface](#build-the-user-interface)
# [Running the environment](#running-the-environment)
* [Start the containers](#start-the-containers)
* [Start from the container shell](#start-from-the-container-shell)
* [Post Build Steps](#post-build-steps)
* [Start a shell](#start-the-shell)
* [Create a superuser](#create-a-superuser)
* [Load the data](#load-the-data)
* [Building API Documentation](#build-documentation)
* [Accessing the AWX web interface](#accessing-the-awx-web-interface)
* [Purging containers and images](#purging-containers-and-images)
* [What should I work on?](#what-should-i-work-on)
* [Submitting Pull Requests](#submitting-pull-requests)
* [Reporting Issues](#reporting-issues)
* [How issues are resolved](#how-issues-are-resolved)
* [Ansible Issue Bot](#ansible-issue-bot)
DCO
===
## Things to know prior to submitting code
All contributors must use "git commit --signoff" for any
commit to be merged, and agree that usage of --signoff constitutes
agreement with the terms of DCO 1.1. Any contribution that does not
have such a signoff will not be merged.
- All code submissions are done through pull requests against the `devel` branch.
- You must use `git commit --signoff` for any commit to be merged, and agree that usage of --signoff constitutes agreement with the terms of [DCO 1.1](./DCO_1_1.md).
- Take care to make sure no merge commits are in the submission, and use `git rebase` vs `git merge` for this reason.
- If submitting a large code change, it's a good idea to join the `#ansible-awx` channel on irc.freenode.net, and talk about what you would like to do or add first. This not only helps everyone know what's going on, it also helps save time and effort, if the community decides some changes are needed.
- We ask all of our community members and contributors to adhere to the [Ansible code of conduct](http://docs.ansible.com/ansible/latest/community/code_of_conduct.html). If you have questions, or need assistance, please reach out to our community team at [codeofconduct@ansible.com](mailto:codeofconduct@ansible.com)
```
Developer Certificate of Origin
Version 1.1
## Setting up your development environment
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
The AWX development environment workflow and toolchain is based on Docker, and the docker-compose tool, to provide dependencies, services, and databases necessary to run all of the components. It also binds the local source tree into the development container, making it possible to observe and test changes in real time.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
### Prerequisites
Developer's Certificate of Origin 1.1
#### Docker
By making a contribution to this project, I certify that:
Prior to starting the development services, you'll need `docker` and `docker-compose`. On Linux, you can generally find these in your distro's packaging, but you may find that Docker themselves maintain a separate repo that tracks more closely to the latest releases.
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
For macOS and Windows, we recommend [Docker for Mac](https://www.docker.com/docker-mac) and [Docker for Windows](https://www.docker.com/docker-windows)
respectively.
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
For Linux platforms, refer to the following from Docker:
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
**Fedora**
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
> https://docs.docker.com/engine/installation/linux/docker-ce/fedora/
**CentOS**
> https://docs.docker.com/engine/installation/linux/docker-ce/centos/
**Ubuntu**
> https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/
**Debian**
> https://docs.docker.com/engine/installation/linux/docker-ce/debian/
**Arch**
> https://wiki.archlinux.org/index.php/Docker
#### Docker compose
If you're not using Docker for Mac, or Docker for Windows, you may need, or choose to, install the Docker compose Python module separately, in which case you'll need to run the following:
```bash
(host)$ pip install docker-compose
```
Code of Conduct
===============
#### Node and npm
All contributors are expected to adhere to the Ansible Community Code of Conduct: http://docs.ansible.com/ansible/latest/community/code_of_conduct.html
The AWX UI requires the following:
Setting up the development environment
======================================
- Node 6.x LTS version
- NPM 3.x LTS
The AWX development environment workflow and toolchain is based on Docker and the docker-compose tool to contain
the dependencies, services, and databases necessary to run everything. It will bind the local source tree into the container
making it possible to observe changes while developing.
### Build the environment
Prerequisites
-------------
`docker` and `docker-compose` are required for starting the development services, on Linux you can generally find these in your
distro's packaging, but you may find that Docker themselves maintain a seperate repo that tracks more closely to the latest releases.
For macOS and Windows, we recommend Docker for Mac (https://www.docker.com/docker-mac) and Docker for Windows (https://www.docker.com/docker-windows)
respectively. Docker for Mac/Windows automatically comes with `docker-compose`.
#### Fork and clone the AWX repo
> Fedora
If you have not done so already, you'll need to fork the AWX repo on GitHub. For more on how to do this, see [Fork a Repo](https://help.github.com/articles/fork-a-repo/).
https://docs.docker.com/engine/installation/linux/docker-ce/fedora/
#### Create local settings
> Centos
AWX will import the file `awx/settings/local_settings.py` and combine it with defaults in `awx/settings/defaults.py`. This file is required for starting the development environment and startup will fail if it's not provided.
https://docs.docker.com/engine/installation/linux/docker-ce/centos/
An example is provided. Make a copy of it, and edit as needed (the defaults are usually fine):
> Ubuntu
```bash
(host)$ cp awx/settings/local_settings.py.docker_compose awx/settings/local_settings.py
```
https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/
#### Build the base image
> Debian
The AWX base container image (defined in `tools/docker-compose/Dockerfile`) contains basic OS dependencies and symbolic links into the development environment that make running the services easy.
https://docs.docker.com/engine/installation/linux/docker-ce/debian/
Run the following to build the image:
> Arch
```bash
(host)$ make docker-compose-build
```
https://wiki.archlinux.org/index.php/Docker
**NOTE**
For `docker-compose` you may need/choose to install it seperately:
> The image will need to be rebuilt, if the Python requirements or OS dependencies change.
pip install docker-compose
Once the build completes, you will have a `ansible/awx_devel` image in your local image cache. Use the `docker images` command to view it, as follows:
```bash
(host)$ docker images
Local Settings
--------------
REPOSITORY TAG IMAGE ID CREATED SIZE
ansible/awx_devel latest ba9ec3e8df74 26 minutes ago 1.42GB
```
In development mode (i.e. when running from a source checkout), AWX
will import the file `awx/settings/local_settings.py` and combine it with defaults in `awx/settings/defaults.py`. This file
is required for starting the development environment and startup will fail if it's not provided
#### Build the user interface
An example file that works for the `docker-compose` tool is provided. Make a copy of it and edit as needed (the defaults are usually fine):
Run the following to build the AWX UI:
(host)$ cp awx/settings/local_settings.py.docker_compose awx/settings/local_settings.py
```bash
(host) $ make ui-devel
```
### Running the environment
Building the base image
-----------------------
#### Start the containers
The AWX base container image (found in `tools/docker-compose/Dockerfile`) contains basic OS dependencies and
symbolic links into the development environment that make running the services easy. You'll first need to build the image:
Start the development containers by running the following:
(host)$ make docker-compose-build
The image will only need to be rebuilt if the requirements or OS dependencies change. A core concept about this image is that it relies
on having your local development environment mapped in.
Building the user interface
---------------------------
> AWX requires the 6.x LTS version of Node and 3.x LTS NPM
In order for the AWX user interface to load from the development environment it must be built:
(host)$ make ui-devel
```bash
(host)$ make docker-compose
```
When developing features and fixes for the user interface you can find more detail here: [UI Developer README](awx/ui/README.md)
The above utilizes the image built in the previous step, and will automatically start all required services and dependent containers. Once the containers launch, your session will be attached to the *awx* container, and you'll be able to watch log messages and events in real time. You will see messages from Django, celery, and the front end build process.
Starting up the development environment
----------------------------------------------
If you start a second terminal session, you can take a look at the running containers using the `docker ps` command. For example:
There are several ways of starting the development environment depending on your desired workflow. The easiest and most common way is with:
```bash
# List running containers
(host)$ docker ps
(host)$ make docker-compose
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aa4a75d6d77b gcr.io/ansible-tower-engineering/awx_devel:devel "/tini -- /bin/sh ..." 23 seconds ago Up 15 seconds 0.0.0.0:5555->5555/tcp, 0.0.0.0:6899-6999->6899-6999/tcp, 0.0.0.0:8013->8013/tcp, 0.0.0.0:8043->8043/tcp, 22/tcp, 0.0.0.0:8080->8080/tcp tools_awx_1
e4c0afeb548c postgres:9.6 "docker-entrypoint..." 26 seconds ago Up 23 seconds 5432/tcp tools_postgres_1
0089699d5afd tools_logstash "/docker-entrypoin..." 26 seconds ago Up 25 seconds tools_logstash_1
4d4ff0ced266 memcached:alpine "docker-entrypoint..." 26 seconds ago Up 25 seconds 0.0.0.0:11211->11211/tcp tools_memcached_1
92842acd64cd rabbitmq:3-management "docker-entrypoint..." 26 seconds ago Up 24 seconds 4369/tcp, 5671-5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp tools_rabbitmq_1
```
**NOTE**
> The Makefile assumes that the image you built is tagged with your current branch. This allows you to build images for different contexts or branches. When starting the containers, you can choose a specific branch by setting `COMPOSE_TAG=<branch name>` in your environment.
> For example, you might be working in a feature branch, but you want to run the containers using the `devel` image you built previously. To do that, start the containers using the following command: `$ COMPOSE_TAG=devel make docker-compose`
##### Wait for migrations to complete
The first time you start the environment, database migrations need to run in order to build the PostgreSQL database. It will take few moments, but eventually you will see output in your terminal session that looks like the following:
```bash
awx_1 | Operations to perform:
awx_1 | Synchronize unmigrated apps: solo, api, staticfiles, debug_toolbar, messages, channels, django_extensions, ui, rest_framework, polymorphic
awx_1 | Apply all migrations: sso, taggit, sessions, djcelery, sites, kombu_transport_django, social_auth, contenttypes, auth, conf, main
awx_1 | Synchronizing apps without migrations:
awx_1 | Creating tables...
awx_1 | Running deferred SQL...
awx_1 | Installing custom SQL...
awx_1 | Running migrations:
awx_1 | Rendering model states... DONE
awx_1 | Applying contenttypes.0001_initial... OK
awx_1 | Applying contenttypes.0002_remove_content_type_name... OK
awx_1 | Applying auth.0001_initial... OK
awx_1 | Applying auth.0002_alter_permission_name_max_length... OK
awx_1 | Applying auth.0003_alter_user_email_max_length... OK
awx_1 | Applying auth.0004_alter_user_username_opts... OK
awx_1 | Applying auth.0005_alter_user_last_login_null... OK
awx_1 | Applying auth.0006_require_contenttypes_0002... OK
awx_1 | Applying taggit.0001_initial... OK
awx_1 | Applying taggit.0002_auto_20150616_2121... OK
awx_1 | Applying main.0001_initial... OK
awx_1 | Applying main.0002_squashed_v300_release... OK
awx_1 | Applying main.0003_squashed_v300_v303_updates... OK
awx_1 | Applying main.0004_squashed_v310_release... OK
awx_1 | Applying conf.0001_initial... OK
awx_1 | Applying conf.0002_v310_copy_tower_settings... OK
...
```
Once migrations are completed, you can begin using AWX.
#### Start from the container shell
Often times you'll want to start the development environment without immediately starting all of the services in the *awx* container, and instead be taken directly to a shell. You can do this with the following:
```bash
(host)$ make docker-compose-test
```
Using `docker exec`, this will create a session in the running *awx* container, and place you at a command prompt, where you can run shell commands inside the container.
If you want to start and use the development environment, you'll first need to bootstrap it by running the following command:
```bash
(container)# /bootstrap_development.sh
```
The above will do all the setup tasks, including running database migrations, so it may take a couple minutes.
This utilizes the image you built in the previous step and will automatically start all required services and dependent containers. You'll
be able to watch log messages and events as they come through.
Now you can start each service individually, or start all services in a pre-configured tmux session like so:
The Makefile assumes that the image you built is tagged with your current branch. This allows you to pre-build images for different contexts
but you may want to use a particular branch's image (for instance if you are developing a PR from a branch based on the integration branch):
```bash
(container)# cd /awx_devel
(container)# make server
```
(host)$ COMPOSE_TAG=devel make docker-compose
### Post Build Steps
Starting the development environment at the container shell
-----------------------------------------------------------
Before you can log in and use the system, you will need to create an admin user. Optionally, you may also want to load some demo data.
Often times you'll want to start the development environment without immediately starting all services and instead be taken directly to a shell:
##### Start a shell
(host)$ make docker-compose-test
To create the admin user, and load demo data, you first need to start a shell session on the *awx* container. In a new terminal session, use the `docker exec` command as follows to start the shell session:
From here you'll need to bootstrap the development environment before it will be usable for you. The `docker-compose` make target will
automatically do this:
```bash
(host)$ docker exec -it tools_awx_1 bash
```
This creates a session in the *awx* containers, just as if you were using `ssh`, and allows you execute commands within the running container.
(container)$ /bootstrap_development.sh
##### Create an admin user
Before you can log into AWX, you need to create an admin user. With this user you will be able to create more users, and begin configuring the server. From within the container shell, run the following command:
```bash
(container)# awx-manage createsuperuser
```
You will be prompted for a username, an email address, and a password, and you will be asked to confirm the password. The email address is not important, so just enter something that looks like an email address. Remember the username and password, as you will use them to log into the web interface for the first time.
From here you can start each service individually, or choose to start all service in a pre-configured tmux session:
##### Load demo data
You can optionally load some demo data. This will create a demo project, inventory, and job template. From within the container shell, run the following to load the data:
(container)# cd /awx_devel
(container)# make server
```bash
(container)# awx-manage create_preload_data
```
Using the development environment
---------------------------------
**NOTE**
With the development environment running there are a few optional steps to pre-populate the environment with data. If you are using the `docker-compose`
method above you'll first need a shell in the container:
> This information will persist in the database running in the `tools_postgres_1` container, until the container is removed. You may periodically need to recreate
this container, and thus the database, if the database schema changes in an upstream commit.
(host)$ docker exec -it tools_awx_1 bash
##### Building API Documentation
Create a superuser account:
AWX includes support for building [Swagger/OpenAPI
documentation](https://swagger.io). To build the documentation locally, run:
(container)# awx-manage createsuperuser
Preload AWX with demo data:
```bash
(container)/awx_devel$ make swagger
```
(container)# awx-manage create_preload_data
This information will persist in the database running in the `tools_postgres_1` container, until it is removed. You may periodically need to recreate
this container and database if the database schema changes in an upstream commit.
This will write a file named `swagger.json` that contains the API specification
in OpenAPI format. A variety of online tools are available for translating
this data into more consumable formats (such as HTML). http://editor.swagger.io
is an example of one such service.
You should now be able to visit and login to the AWX user interface at https://localhost:8043 or http://localhost:8013 if you have built the UI.
If not you can visit the API directly in your browser at: https://localhost:8043/api/ or http://localhost:8013/api/
### Accessing the AWX web interface
When working on the source code for AWX the code will auto-reload for you when changes are made, with the exception of any background tasks that run in
celery.
You can now log into the AWX web interface at [https://localhost:8043](https://localhost:8043), and access the API directly at [https://localhost:8043/api/](https://localhost:8043/api/).
Occasionally it may be necessary to purge any containers and images that may have collected:
To log in use the admin user and password you created above in [Create an admin user](#create-an-admin-user).
(host)$ make docker-clean
There are host of other shortcuts, tools, and container configurations in the Makefile designed for various purposes. Feel free to explore.
What should I work on?
======================
### Purging containers and images
We list our specs in `/docs`. `/docs/current` are things that we are actively working on. `/docs/future` are ideas for future work and the direction we
want that work to take. Fixing bugs, translations, and updates to documentation are also appreciated.
When necessary, remove any AWX containers and images by running the following:
Be aware that if you are working in a part of the codebase that is going through active development your changes may be rejected or you may be asked to
rebase them. A good idea before starting work is to have a discussion with us on IRC or the mailing list.
```bash
(host)$ make docker-clean
```
## What should I work on?
Submitting Pull Requests
========================
For feature work, take a look at the current [Enhancements](https://github.com/ansible/awx/issues?q=is%3Aissue+is%3Aopen+label%3Atype%3Aenhancement).
Fixes and Features for AWX will go through the Github PR interface. There are a few things that can be done to help the visibility of your change
and increase the likelihood that it will be accepted
If it has someone assigned to it then that person is the person responsible for working the enhancement. If you feel like you could contribute then reach out to that person.
> Add UI detail to these
Fixing bugs, adding translations, and updating the documentation are always appreciated, so reviewing the backlog of issues is always a good place to start. For extra information on debugging tools, see [Debugging](https://github.com/ansible/awx/blob/devel/docs/debugging.md).
**NOTE**
> If you work in a part of the codebase that is going through active development, your changes may be rejected, or you may be asked to `rebase`. A good idea before starting work is to have a discussion with us in the `#ansible-awx` channel on irc.freenode.net, or on the [mailing list](https://groups.google.com/forum/#!forum/awx-project).
**NOTE**
> If you're planning to develop features or fixes for the UI, please review the [UI Developer doc](./awx/ui/README.md).
## Submitting Pull Requests
Fixes and Features for AWX will go through the Github pull request process. Submit your pull request (PR) against the `devel` branch.
Here are a few things you can do to help the visibility of your change, and increase the likelihood that it will be accepted:
* No issues when running linters/code checkers
* Python: flake8: `(container)/awx_devel$ make flake8`
@@ -237,44 +320,17 @@ and increase the likelihood that it will be accepted
* JavaScript: Jasmine: `(container)/awx_devel$ make ui-test-ci`
* Write tests for new functionality, update/add tests for bug fixes
* Make the smallest change possible
* Write good commit messages: https://chris.beams.io/posts/git-commit/
* Write good commit messages. See [How to write a Git commit message](https://chris.beams.io/posts/git-commit/).
It's generally a good idea to discuss features with us first by engaging us in IRC or on the mailing list, especially if you are unsure if it's a good
fit.
It's generally a good idea to discuss features with us first by engaging us in the `#ansible-awx` channel on irc.freenode.net, or on the [mailing list](https://groups.google.com/forum/#!forum/awx-project).
We like to keep our commit history clean and will require resubmission of pull requests that contain merge commits. Use `git pull --rebase` rather than
`git pull` and `git rebase` rather than `git merge`.
We like to keep our commit history clean, and will require resubmission of pull requests that contain merge commits. Use `git pull --rebase`, rather than
`git pull`, and `git rebase`, rather than `git merge`.
Sometimes it might take us a while to fully review your PR. We try to keep the `devel` branch in pretty good working order so we review requests carefuly.
Please be patient.
Sometimes it might take us a while to fully review your PR. We try to keep the `devel` branch in good working order, and so we review requests carefully. Please be patient.
All submitted PRs will have the linter and unit tests run against them and the status reported in the PR.
All submitted PRs will have the linter and unit tests run against them, and the status reported in the PR.
Reporting Issues
================
## Reporting Issues
Use the Github issue tracker for filing bugs. In order to save time and help us respond to issues quickly, make sure to fill out as much of the issue template
as possible. Version information and an accurate reproducing scenario are critical to helping us identify the problem.
When reporting issues for the UI we also appreciate having screenshots and any error messages from the web browser's console. It's not unsual for browser extensions
and plugins to cause problems. Reporting those will also help speed up analyzing and resolving UI bugs.
For the API and backend services, please capture all of the logs that you can from the time the problem was occuring.
Don't use the issue tracker to get help on how to do something - please use the mailing list and IRC for that.
How issues are resolved
-----------------------
We triage our issues into high, medium, and low and will tag them with the relevant component (api, ui, installer, etc). We will typically focus on high priority
issues. There aren't hard and fast rules for determining the severity of an issue, but generally high priority issues have an increased likelihood of breaking
existing functionality and/or negatively impacting a large number of users.
If your issue isn't considered `high` priority then please be patient as it may take some time to get to your report.
Before opening a new issue, please use the issue search feature to see if it's already been reported. If you have any extra detail to provide then please comment.
Rather than posting a "me too" comment you might consider giving it a "thumbs up" on github.
Ansible Issue Bot
-----------------
> Fill in
We welcome your feedback, and encourage you to file an issue when you run into a problem. But before opening a new issues, we ask that you please view our [Issues guide](./ISSUES.md).

19
COPYING
View File

@@ -1,19 +0,0 @@
ANSIBLE TOWER BY RED HAT END USER LICENSE AGREEMENT
This end user license agreement (“EULA”) governs the use of the Ansible Tower software and any related updates, upgrades, versions, appearance, structure and organization (the “Ansible Tower Software”), regardless of the delivery mechanism.
1. License Grant. Subject to the terms of this EULA, Red Hat, Inc. and its affiliates (“Red Hat”) grant to you (“You”) a non-transferable, non-exclusive, worldwide, non-sublicensable, limited, revocable license to use the Ansible Tower Software for the term of the associated Red Hat Software Subscription(s) and in a quantity equal to the number of Red Hat Software Subscriptions purchased from Red Hat for the Ansible Tower Software (“License”), each as set forth on the applicable Red Hat ordering document. You acquire only the right to use the Ansible Tower Software and do not acquire any rights of ownership. Red Hat reserves all rights to the Ansible Tower Software not expressly granted to You. This License grant pertains solely to Your use of the Ansible Tower Software and is not intended to limit Your rights under, or grant You rights that supersede, the license terms of any software packages which may be made available with the Ansible Tower Software that are subject to an open source software license.
2. Intellectual Property Rights. Title to the Ansible Tower Software and each component, copy and modification, including all derivative works whether made by Red Hat, You or on Red Hat's behalf, including those made at Your suggestion and all associated intellectual property rights, are and shall remain the sole and exclusive property of Red Hat and/or it licensors. The License does not authorize You (nor may You allow any third party, specifically non-employees of Yours) to: (a) copy, distribute, reproduce, use or allow third party access to the Ansible Tower Software except as expressly authorized hereunder; (b) decompile, disassemble, reverse engineer, translate, modify, convert or apply any procedure or process to the Ansible Tower Software in order to ascertain, derive, and/or appropriate for any reason or purpose, including the Ansible Tower Software source code or source listings or any trade secret information or process contained in the Ansible Tower Software (except as permitted under applicable law); (c) execute or incorporate other software (except for approved software as appears in the Ansible Tower Software documentation or specifically approved by Red Hat in writing) into Ansible Tower Software, or create a derivative work of any part of the Ansible Tower Software; (d) remove any trademarks, trade names or titles, copyrights legends or any other proprietary marking on the Ansible Tower Software; (e) disclose the results of any benchmarking of the Ansible Tower Software (whether or not obtained with Red Hats assistance) to any third party; (f) attempt to circumvent any user limits or other license, timing or use restrictions that are built into, defined or agreed upon, regarding the Ansible Tower Software. You are hereby notified that the Ansible Tower Software may contain time-out devices, counter devices, and/or other devices intended to ensure the limits of the License will not be exceeded (“Limiting Devices”). If the Ansible Tower Software contains Limiting Devices, Red Hat will provide You materials necessary to use the Ansible Tower Software to the extent permitted. You may not tamper with or otherwise take any action to defeat or circumvent a Limiting Device or other control measure, including but not limited to, resetting the unit amount or using false host identification number for the purpose of extending any term of the License.
3. Evaluation Licenses. Unless You have purchased Ansible Tower Software Subscriptions from Red Hat or an authorized reseller under the terms of a commercial agreement with Red Hat, all use of the Ansible Tower Software shall be limited to testing purposes and not for production use (“Evaluation”). Unless otherwise agreed by Red Hat, Evaluation of the Ansible Tower Software shall be limited to an evaluation environment and the Ansible Tower Software shall not be used to manage any systems or virtual machines on networks being used in the operation of Your business or any other non-evaluation purpose. Unless otherwise agreed by Red Hat, You shall limit all Evaluation use to a single 30 day evaluation period and shall not download or otherwise obtain additional copies of the Ansible Tower Software or license keys for Evaluation.
4. Limited Warranty. Except as specifically stated in this Section 4, to the maximum extent permitted under applicable law, the Ansible Tower Software and the components are provided and licensed “as is” without warranty of any kind, expressed or implied, including the implied warranties of merchantability, non-infringement or fitness for a particular purpose. Red Hat warrants solely to You that the media on which the Ansible Tower Software may be furnished will be free from defects in materials and manufacture under normal use for a period of thirty (30) days from the date of delivery to You. Red Hat does not warrant that the functions contained in the Ansible Tower Software will meet Your requirements or that the operation of the Ansible Tower Software will be entirely error free, appear precisely as described in the accompanying documentation, or comply with regulatory requirements.
5. Limitation of Remedies and Liability. To the maximum extent permitted by applicable law, Your exclusive remedy under this EULA is to return any defective media within thirty (30) days of delivery along with a copy of Your payment receipt and Red Hat, at its option, will replace it or refund the money paid by You for the media. To the maximum extent permitted under applicable law, neither Red Hat nor any Red Hat authorized distributor will be liable to You for any incidental or consequential damages, including lost profits or lost savings arising out of the use or inability to use the Ansible Tower Software or any component, even if Red Hat or the authorized distributor has been advised of the possibility of such damages. In no event shall Red Hat's liability or an authorized distributors liability exceed the amount that You paid to Red Hat for the Ansible Tower Software during the twelve months preceding the first event giving rise to liability.
6. Export Control. In accordance with the laws of the United States and other countries, You represent and warrant that You: (a) understand that the Ansible Tower Software and its components may be subject to export controls under the U.S. Commerce Departments Export Administration Regulations (“EAR”); (b) are not located in any country listed in Country Group E:1 in Supplement No. 1 to part 740 of the EAR; (c) will not export, re-export, or transfer the Ansible Tower Software to any prohibited destination or to any end user who has been prohibited from participating in US export transactions by any federal agency of the US government; (d) will not use or transfer the Ansible Tower Software for use in connection with the design, development or production of nuclear, chemical or biological weapons, or rocket systems, space launch vehicles, or sounding rockets or unmanned air vehicle systems; (e) understand and agree that if you are in the United States and you export or transfer the Ansible Tower Software to eligible end users, you will, to the extent required by EAR Section 740.17 obtain a license for such export or transfer and will submit semi-annual reports to the Commerce Departments Bureau of Industry and Security, which include the name and address (including country) of each transferee; and (f) understand that countries including the United States may restrict the import, use, or export of encryption products (which may include the Ansible Tower Software) and agree that you shall be solely responsible for compliance with any such import, use, or export restrictions.
7. General. If any provision of this EULA is held to be unenforceable, that shall not affect the enforceability of the remaining provisions. This agreement shall be governed by the laws of the State of New York and of the United States, without regard to any conflict of laws provisions. The rights and obligations of the parties to this EULA shall not be governed by the United Nations Convention on the International Sale of Goods.
Copyright © 2015 Red Hat, Inc. All rights reserved. "Red Hat" and “Ansible Tower” are registered trademarks of Red Hat, Inc. All other trademarks are the property of their respective owners.

45
DCO_1_1.md Normal file
View File

@@ -0,0 +1,45 @@
DCO
===
All contributors must use `git commit --signoff` for any
commit to be merged, and agree that usage of --signoff constitutes
agreement with the terms of DCO 1.1, which appears below:
```
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```

View File

@@ -1,2 +1,593 @@
Installing AWX
==============
# Installing AWX
This document provides a guide for installing AWX.
## Table of contents
- [Getting started](#getting-started)
- [Clone the repo](#clone-the-repo)
- [AWX branding](#awx-branding)
- [Prerequisites](#prerequisites)
- [System Requirements](#system-requirements)
- [AWX Tunables](#awx-tunables)
- [Choose a deployment platform](#choose-a-deployment-platform)
- [Official vs Building Images](#official-vs-building-images)
- [OpenShift](#openshift)
- [Prerequisites](#prerequisites-1)
- [Deploying to Minishift](#deploying-to-minishift)
- [Pre-build steps](#pre-build-steps)
- [PostgreSQL](#postgresql)
- [Start the build](#start-the-build)
- [Post build](#post-build)
- [Accessing AWX](#accessing-awx)
- [Kubernetes](#kubernetes)
- [Prerequisites](#prerequisites-2)
- [Pre-build steps](#pre-build-steps-1)
- [Configuring Helm](#configuring-helm)
- [Start the build](#start-the-build-1)
- [Accessing AWX](#accessing-awx-1)
- [SSL Termination](#ssl-termination)
- [Docker or Docker Compose](#docker-or-docker-compose)
- [Prerequisites](#prerequisites-3)
- [Pre-build steps](#pre-build-steps-2)
- [Deploying to a remote host](#deploying-to-a-remote-host)
- [Inventory variables](#inventory-variables)
- [Docker registry](#docker-registry)
- [PostgreSQL](#postgresql-1)
- [Proxy settings](#proxy-settings)
- [Start the build](#start-the-build-2)
- [Post build](#post-build-1)
- [Accessing AWX](#accessing-awx-2)
## Getting started
### Clone the repo
If you have not already done so, you will need to clone, or create a local copy, of the [AWX repo](https://github.com/ansible/awx). For more on how to clone the repo, view [git clone help](https://git-scm.com/docs/git-clone).
Once you have a local copy, run commands within the root of the project tree.
### AWX branding
You can optionally install the AWX branding assets from the [awx-logos repo](https://github.com/ansible/awx-logos). Prior to installing, please review and agree to the [trademark guidelines](https://github.com/ansible/awx-logos/blob/master/TRADEMARKS.md).
To install the assets, clone the `awx-logos` repo so that it is next to your `awx` clone. As you progress through the installation steps, you'll be setting variables in the [inventory](./installer/inventory) file. To include the assets in the build, set `awx_official=true`.
### Prerequisites
Before you can run a deployment, you'll need the following installed in your local environment:
- [Ansible](http://docs.ansible.com/ansible/latest/intro_installation.html) Requires Version 2.4+
- [Docker](https://docs.docker.com/engine/installation/)
- [docker-py](https://github.com/docker/docker-py) Python module
- [GNU Make](https://www.gnu.org/software/make/)
- [Git](https://git-scm.com/) Requires Version 1.8.4+
- [Node 6.x LTS version](https://nodejs.org/en/download/)
- [NPM 3.x LTS](https://docs.npmjs.com/)
### System Requirements
The system that runs the AWX service will need to satisfy the following requirements
- At leasts 4GB of memory
- At least 2 cpu cores
- At least 20GB of space
- Running Docker, Openshift, or Kubernetes
- If you choose to use an external PostgreSQL database, please note that the minimum version is 9.4.
### AWX Tunables
**TODO** add tunable bits
### Choose a deployment platform
We currently support running AWX as a containerized application using Docker images deployed to either an OpenShift cluster, docker-compose or a standalone Docker daemon. The remainder of this document will walk you through the process of building the images, and deploying them to either platform.
The [installer](./installer) directory contains an [inventory](./installer/inventory) file, and a playbook, [install.yml](./installer/install.yml). You'll begin by setting variables in the inventory file according to the platform you wish to use, and then you'll start the image build and deployment process by running the playbook.
In the sections below, you'll find deployment details and instructions for each platform:
- [OpenShift](#openshift)
- [Kubernetes](#kubernetes)
- [Docker or Docker Compose](#docker-or-docker-compose).
### Official vs Building Images
When installing AWX you have the option of building your own images or using the images provided on DockerHub (see [awx_web](https://hub.docker.com/r/ansible/awx_web/) and [awx_task](https://hub.docker.com/r/ansible/awx_task/))
This is controlled by the following variables in the `inventory` file
```
dockerhub_base=ansible
dockerhub_version=latest
```
If these variables are present then all deployments will use these hosted images. If the variables are not present then the images will be built during the install.
*dockerhub_base*
> The base location on DockerHub where the images are hosted (by default this pulls container images named `ansible/awx_web:tag` and `ansible/awx_task:tag`)
*dockerhub_version*
> Multiple versions are provided. `latest` always pulls the most recent. You may also select version numbers at different granularities: 1, 1.0, 1.0.1, 1.0.0.123
## OpenShift
### Prerequisites
To complete a deployment to OpenShift, you will obviously need access to an OpenShift cluster. For demo and testing purposes, you can use [Minishift](https://github.com/minishift/minishift) to create a single node cluster running inside a virtual machine.
You will also need to have the `oc` command in your PATH. The `install.yml` playbook will call out to `oc` when logging into, and creating objects on the cluster.
The default resource requests per-pod requires:
> Memory: 6GB
> CPU: 3 cores
This can be tuned by overriding the variables found in [/installer/openshift/defaults/main.yml](/installer/openshift/defaults/main.yml). Special care should be taken when doing this as undersized instances will experience crashes and resource exhaustion.
For more detail on how resource requests are formed see: [https://docs.openshift.com/container-platform/latest/dev_guide/compute_resources.html#dev-compute-resources](https://docs.openshift.com/container-platform/latest/dev_guide/compute_resources.html#dev-compute-resources)
#### Deploying to Minishift
Install Minishift by following the [installation guide](https://docs.openshift.org/latest/minishift/getting-started/installing.html).
The Minishift VM contains a Docker daemon, which you can use to build the AWX images. This is generally the approach you should take, and we recommend doing so. To use this instance, run the following command to setup your environment:
```bash
# Set DOCKER environment variable to point to the Minishift VM
$ eval $(minishift docker-env)
```
**Note**
> If you choose to not use the Docker instance running inside the VM, and build the images externally, you will have to enable the OpenShift cluster to access the images. This involves pushing the images to an external Docker registry, and granting the cluster access to it, or exposing the internal registry, and pushing the images into it.
### Pre-build steps
Before starting the build process, review the [inventory](./installer/inventory) file, and uncomment and provide values for the following variables found in the `[all:vars]` section:
*openshift_host*
> IP address or hostname of the OpenShift cluster. If you're using Minishift, this will be the value returned by `minishift ip`.
*awx_openshift_project*
> Name of the OpenShift project that will be created, and used as the namespace for the AWX app. Defaults to *awx*.
*openshift_user*
> Username of the OpenShift user that will create the project, and deploy the application. Defaults to *developer*.
*docker_registry*
> IP address and port, or URL, for accessing a registry that the OpenShift cluster can access. Defaults to *172.30.1.1:5000*, the internal registry delivered with Minishift. This is not needed if you are using official hosted images.
*docker_registry_repository*
> Namespace to use when pushing and pulling images to and from the registry. Generally this will match the project name. It defaults to *awx*. This is not needed if you are using official hosted images.
*docker_registry_username*
> Username of the user that will push images to the registry. Will generally match the *openshift_user* value. Defaults to *developer*. This is not needed if you are using official hosted images.
#### PostgreSQL
AWX requires access to a PostgreSQL database, and by default, one will be created and deployed in a pod. The database is configured for persistence and will create a persistent volume claim named `postgresql`. By default it will claim 5GB from the available persistent volume pool. This can be tuned by setting a variable in the inventory file or on the command line during the `ansible-playbook` run.
ansible-playbook ... -e pg_volume_capacity=n
If you wish to use an external database, in the inventory file, set the value of `pg_hostname`, and update `pg_username`, `pg_password`, `pg_database`, and `pg_port` with the connection information. When setting `pg_hostname` the installer will assume you have configured the database in that location and will not launch the postgresql pod.
### Start the build
To start the build, you will pass two *extra* variables on the command line. The first is *openshift_password*, which is the password for the *openshift_user*, and the second is *docker_registry_password*, which is the password associated with *docker_registry_username*.
If you're using the OpenShift internal registry, then you'll pass an access token for the *docker_registry_password* value, rather than a password. The `oc whoami -t` command will generate the required token, as long as you're logged into the cluster via `oc cluster login`.
To start the build and deployment, run the following (docker_registry_password is optional if using official images):
```bash
# Start the build and deployment
$ ansible-playbook -i inventory install.yml -e openshift_password=developer -e docker_registry_password=$(oc whoami -t)
```
### Post build
After the playbook run completes, check the status of the deployment by running `oc get pods`:
```bash
# View the running pods
$ oc get pods
NAME READY STATUS RESTARTS AGE
awx-3886581826-5mv0l 4/4 Running 0 8s
postgresql-1-l85fh 1/1 Running 0 20m
```
In the above example, the name of the AWX pod is `awx-3886581826-5mv0l`. Before accessing the AWX web interface, setup tasks and database migrations need to complete. These tasks are running in the `awx_task` container inside the AWX pod. To monitor their status, tail the container's STDOUT by running the following command, replacing the AWX pod name with the pod name from your environment:
```bash
# Follow the awx_task log output
$ oc logs -f awx-3886581826-5mv0l -c awx-celery
```
You will see the following indicating that database migrations are running:
```bash
Using /etc/ansible/ansible.cfg as config file
127.0.0.1 | SUCCESS => {
"changed": false,
"db": "awx"
}
Operations to perform:
Synchronize unmigrated apps: solo, api, staticfiles, messages, channels, django_extensions, ui, rest_framework, polymorphic
Apply all migrations: sso, taggit, sessions, djcelery, sites, kombu_transport_django, social_auth, contenttypes, auth, conf, main
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying taggit.0001_initial... OK
Applying taggit.0002_auto_20150616_2121... OK
...
```
When you see output similar to the following, you'll know that database migrations have completed, and you can access the web interface:
```bash
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> <User: admin>
>>> Default organization added.
Demo Credential, Inventory, and Job Template added.
Successfully registered instance awx-3886581826-5mv0l
(changed: True)
Creating instance group tower
Added instance awx-3886581826-5mv0l to tower
```
Once database migrations complete, the web interface will be accessible.
### Accessing AWX
The AWX web interface is running in the AWX pod, behind the `awx-web-svc` service. To view the service, and its port value, run the following command:
```bash
# View available services
$ oc get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
awx-web-svc 172.30.111.74 <nodes> 8052:30083/TCP 37m
postgresql 172.30.102.9 <none> 5432/TCP 38m
```
The deployment process creates a route, `awx-web-svc`, to expose the service. How the ingres is actually created will vary depending on your environment, and how the cluster is configured. You can view the route, and the external IP address and hostname assigned to it, by running the following command:
```bash
# View available routes
$ oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
awx-web-svc awx-web-svc-awx.192.168.64.2.nip.io awx-web-svc http edge/Allow None
```
The above example is taken from a Minishift instance. From a web browser, use `https` to access the `HOST/PORT` value from your environment. Using the above example, the URL to access the server would be [https://awx-web-svc-awx.192.168.64.2.nip.io](https://awx-web-svc-awx.192.168.64.2.nip.io).
Once you access the AWX server, you will be prompted with a login dialog. The default administrator username is `admin`, and the password is `password`.
## Kubernetes
### Prerequisites
A Kubernetes deployment will require you to have access to a Kubernetes cluster as well as the following tools:
- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
- [helm](https://docs.helm.sh/using_helm/#quickstart-guide)
The installation program will reference `kubectl` directly. `helm` is only necessary if you are letting the installer configure PostgreSQL for you.
The default resource requests per-pod requires:
> Memory: 6GB
> CPU: 3 cores
This can be tuned by overriding the variables found in [/installer/kubernetes/defaults/main.yml](/installer/kubernetes[/defaults/main.yml). Special care should be taken when doing this as undersized instances will experience crashes and resource exhaustion.
For more detail on how resource requests are formed see: [https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)
### Pre-build steps
Before starting the build process, review the [inventory](./installer/inventory) file, and uncomment and provide values for the following variables found in the `[all:vars]` section uncommenting when necessary. Make sure the openshift and standalone docker sections are commented out:
*kubernetes_context*
> Prior to running the installer, make sure you've configured the context for the cluster you'll be installing to. This is how the installer knows which cluster to connect to and what authentication to use
*awx_kubernetes_namespace*
> Name of the Kubernetes namespace where the AWX resources will be installed. This will be created if it doesn't exist
*docker_registry_*
> These settings should be used if building your own base images. You'll need access to an external registry and are responsible for making sure your kube cluster can talk to it and use it. If these are undefined and the dockerhub_ configuration settings are uncommented then the images will be pulled from dockerhub instead
### Configuring Helm
If you want the AWX installer to manage creating the database pod (rather than installing and configuring postgres on your own). Then you will need to have a working `helm` installation, you can find details here: [https://docs.helm.sh/using_helm/#quickstart-guide](https://docs.helm.sh/using_helm/#quickstart-guide).
Newer Kubernetes clusters with RBAC enabled will need to make sure a service account is created, make sure to follow the instructions here [https://docs.helm.sh/using_helm/#role-based-access-control](https://docs.helm.sh/using_helm/#role-based-access-control)
### Start the build
After making changes to the `inventory` file use `ansible-playbook` to begin the install
```bash
$ ansible-playbook -i inventory install.yml
```
### Post build
After the playbook run completes, check the status of the deployment by running `kubectl get pods --namespace awx` (replace awx with the namespace you used):
```bash
# View the running pods, it may take a few minutes for everything to be marked in the Running state
$ kubectl get pods --namespace awx
NAME READY STATUS RESTARTS AGE
awx-2558692395-2r8ss 4/4 Running 0 29s
awx-postgresql-355348841-kltkn 1/1 Running 0 1m
```
### Accessing AWX
The AWX web interface is running in the AWX pod behind the `awx-web-svc` service:
```bash
# View available services
$ kubectl get svc --namespace awx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
awx-postgresql ClusterIP 10.7.250.208 <none> 5432/TCP 2m
awx-web-svc NodePort 10.7.241.35 <none> 80:30177/TCP 1m
```
The deployment process creates an `Ingress` named `awx-web-svc` also. Some kubernetes cloud providers will automatically handle routing configuration when an Ingress is created others may require that you more explicitly configure it. You can see what kubernetes knows about things with:
```bash
kubectl get ing --namespace awx
NAME HOSTS ADDRESS PORTS AGE
awx-web-svc * 35.227.x.y 80 3m
```
If your provider is able to allocate an IP Address from the Ingress controller then you can navigate to the address and access the AWX interface. For some providers it can take a few minutes to allocate and make this accessible. For other providers it may require you to manually intervene.
### SSL Termination
Unlike Openshift's `Route` the Kubernetes `Ingress` doesn't yet handle SSL termination. As such the default configuration will only expose AWX through HTTP on port 80. You are responsible for configuring SSL support until support is added (either to Kubernetes or AWX itself).
## Docker or Docker-Compose
### Prerequisites
- [Docker](https://docs.docker.com/engine/installation/) on the host where AWX will be deployed. After installing Docker, the Docker service must be started (depending on your OS, you may have to add the local user that uses Docker to the ``docker`` group, refer to the documentation for details)
- [docker-py](https://github.com/docker/docker-py) Python module.
If you're installing using Docker Compose, you'll need [Docker Compose](https://docs.docker.com/compose/install/).
### Pre-build steps
#### Deploying to a remote host
By default, the delivered [installer/inventory](./installer/inventory) file will deploy AWX to the local host. It is possible; however, to deploy to a remote host. The [installer/install.yml](./installer/install.yml) playbook can be used to build images on the local host, and ship the built images to, and run deployment tasks on, a remote host. To do this, modify the [installer/inventory](./installer/inventory) file, by commenting out `localhost`, and adding the remote host.
For example, suppose you wish to build images locally on your CI/CD host, and deploy them to a remote host named *awx-server*. To do this, add *awx-server* to the [installer/inventory](./installer/inventory) file, and comment out or remove `localhost`, as demonstrated by the following:
```yaml
# localhost ansible_connection=local
awx-server
[all:vars]
...
```
In the above example, image build tasks will be delegated to `localhost`, which is typically where the clone of the AWX project exists. Built images will be archived, copied to remote host, and imported into the remote Docker image cache. Tasks to start the AWX containers will then execute on the remote host.
If you choose to use the official images then the remote host will be the one to pull those images.
**Note**
> You may also want to set additional variables to control how Ansible connects to the host. For more information about this, view [Behavioral Inventory Parameters](http://docs.ansible.com/ansible/latest/intro_inventory.html#id12).
> As mentioned above, in [Prerequisites](#prerequisites-1), the prerequisites are required on the remote host.
> When deploying to a remote host, the playook does not execute tasks with the `become` option. For this reason, make sure the user that connects to the remote host has privileges to run the `docker` command. This typically means that non-privileged users need to be part of the `docker` group.
#### Inventory variables
Before starting the build process, review the [inventory](./installer/inventory) file, and uncomment and provide values for the following variables found in the `[all:vars]` section:
*postgres_data_dir*
> If you're using the default PostgreSQL container (see [PostgreSQL](#postgresql-1) below), provide a path that can be mounted to the container, and where the database can be persisted.
*host_port*
> Provide a port number that can be mapped from the Docker daemon host to the web server running inside the AWX container. Defaults to *80*.
*use_docker_compose*
> Switch to ``true`` to use Docker Compose instead of the standalone Docker install.
*docker_compose_dir*
When using docker-compose, the `docker-compose.yml` file will be created there (default `/var/lib/awx`).
#### Docker registry
If you wish to tag and push built images to a Docker registry, set the following variables in the inventory file:
*docker_registry*
> IP address and port, or URL, for accessing a registry.
*docker_registry_repository*
> Namespace to use when pushing and pulling images to and from the registry. Defaults to *awx*.
*docker_registry_username*
> Username of the user that will push images to the registry. Defaults to *developer*.
*docker_remove_local_images*
> Due to the way that the docker_image module behaves, images will not be pushed to a remote repository if they are present locally. Set this to delete local versions of the images that will be pushed to the remote. This will fail if containers are currently running from those images.
**Note**
> These settings are ignored if using official images
#### Proxy settings
*http_proxy*
> IP address and port, or URL, for using an http_proxy.
*https_proxy*
> IP address and port, or URL, for using an https_proxy.
*no_proxy*
> Exclude IP address or URL from the proxy.
#### PostgreSQL
AWX requires access to a PostgreSQL database, and by default, one will be created and deployed in a container, and data will be persisted to a host volume. In this scenario, you must set the value of `postgres_data_dir` to a path that can be mounted to the container. When the container is stopped, the database files will still exist in the specified path.
If you wish to use an external database, in the inventory file, set the value of `pg_hostname`, and update `pg_username`, `pg_password`, `pg_database`, and `pg_port` with the connection information.
### Start the build
If you are not pushing images to a Docker registry, start the build by running the following:
```bash
# Set the working directory to installer
$ cd installer
# Run the Ansible playbook
$ ansible-playbook -i inventory install.yml
```
If you're pushing built images to a repository, then use the `-e` option to pass the registry password as follows, replacing *password* with the password of the username assigned to `docker_registry_username` (note that you will also need to remove `dockerhub_base` and `dockerhub_version` from the inventory file):
```bash
# Set the working directory to installer
$ cd installer
# Run the Ansible playbook
$ ansible-playbook -i inventory -e docker_registry_password=password install.yml
```
### Post build
After the playbook run completes, Docker will report up to 5 running containers. If you chose to use an existing PostgresSQL database, then it will report 4. You can view the running containers using the `docker ps` command, as follows:
```bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e240ed8209cd awx_task:1.0.0.8 "/tini -- /bin/sh ..." 2 minutes ago Up About a minute 8052/tcp awx_task
1cfd02601690 awx_web:1.0.0.8 "/tini -- /bin/sh ..." 2 minutes ago Up About a minute 0.0.0.0:80->8052/tcp awx_web
55a552142bcd memcached:alpine "docker-entrypoint..." 2 minutes ago Up 2 minutes 11211/tcp memcached
84011c072aad rabbitmq:3 "docker-entrypoint..." 2 minutes ago Up 2 minutes 4369/tcp, 5671-5672/tcp, 25672/tcp rabbitmq
97e196120ab3 postgres:9.6 "docker-entrypoint..." 2 minutes ago Up 2 minutes 5432/tcp postgres
```
If you're deploying using Docker Compose, container names will be prefixed by the name of the folder where the docker-compose.yml file is created (by default, `awx`).
Immediately after the containers start, the *awx_task* container will perform required setup tasks, including database migrations. These tasks need to complete before the web interface can be accessed. To monitor the progress, you can follow the container's STDOUT by running the following:
```bash
# Tail the the awx_task log
$ docker logs -f awx_task
```
You will see output similar to the following:
```bash
Using /etc/ansible/ansible.cfg as config file
127.0.0.1 | SUCCESS => {
"changed": false,
"db": "awx"
}
Operations to perform:
Synchronize unmigrated apps: solo, api, staticfiles, messages, channels, django_extensions, ui, rest_framework, polymorphic
Apply all migrations: sso, taggit, sessions, djcelery, sites, kombu_transport_django, social_auth, contenttypes, auth, conf, main
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying taggit.0001_initial... OK
Applying taggit.0002_auto_20150616_2121... OK
Applying main.0001_initial... OK
...
```
Once migrations complete, you will see the following log output, indicating that migrations have completed:
```bash
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> <User: admin>
>>> Default organization added.
Demo Credential, Inventory, and Job Template added.
Successfully registered instance awx
(changed: True)
Creating instance group tower
Added instance awx to tower
(changed: True)
...
```
### Accessing AWX
The AWX web server is accessible on the deployment host, using the *host_port* value set in the *inventory* file. The default URL is [http://localhost](http://localhost).
You will prompted with a login dialog. The default administrator username is `admin`, and the password is `password`.
### Maintenance using docker-compose
After the installation, maintenance operations with docker-compose can be done by using the `docker-compose.yml` file created at the location pointed by `docker_compose_dir`.
Among the possible operations, you may:
- Stop AWX : `docker-compose stop`
- Upgrade AWX : `docker-compose pull && docker-compose up --force-recreate`
See the [docker-compose documentation](https://docs.docker.com/compose/) for details.

87
ISSUES.md Normal file
View File

@@ -0,0 +1,87 @@
# Issues
## Reporting
Use the GitHub [issue tracker](https://github.com/ansible/awx/issues) for filing bugs. In order to save time, and help us respond to issues quickly, make sure to fill out as much of the issue template
as possible. Version information, and an accurate reproducing scenario are critical to helping us identify the problem.
Please don't use the issue tracker as a way to ask how to do something. Instead, use the [mailing list](https://groups.google.com/forum/#!forum/awx-project) , and the `#ansible-awx` channel on irc.freenode.net to get help.
Before opening a new issue, please use the issue search feature to see if what you're experiencing has already been reported. If you have any extra detail to provide, please comment. Otherwise, rather than posting a "me too" comment, please consider giving it a ["thumbs up"](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comment) to give us an indication of the severity of the problem.
### UI Issues
When reporting issues for the UI, we also appreciate having screen shots and any error messages from the web browser's console. It's not unusual for browser extensions
and plugins to cause problems. Reporting those will also help speed up analyzing and resolving UI bugs.
### API and backend issues
For the API and backend services, please capture all of the logs that you can from the time the problem occurred.
## How issues are resolved
We triage our issues into high, medium, and low, and tag them with the relevant component (e.g. api, ui, installer, etc.). We typically focus on higher priority issues first. There aren't hard and fast rules for determining the severity of an issue, but generally high priority issues have an increased likelihood of breaking existing functionality, and negatively impacting a large number of users.
If your issue isn't considered high priority, then please be patient as it may take some time to get to it.
### Issue states
`state:needs_triage` This issue has not been looked at by a person yet and still needs to be triaged. This is the initial state for all new issues/pull requests.
`state:needs_info` The issue needs more information. This could be more debug output, more specifics out the system such as version information. Any detail that is currently preventing this issue from moving forward. This should be considered a blocked state.
`state:needs_review` The the issue/pull request needs to be reviewed by other maintainers and contributors. This is usually used when there is a question out to another maintainer or when a person is less familar with an area of the code base the issue is for.
`state:needs_revision` More commonly used on pull requests, this state represents that there are changes that are being waited on.
`state:in_progress` The issue is actively being worked on and you should be in contact with who ever is assigned if you are also working on or plan to work on a similar issue.
`state:in_testing` The issue or pull request is currently being tested.
### AWX Issue Bot (awxbot)
We use an issue bot to help us label and organize incoming issues, this bot, awxbot, is a version of [ansible/ansibullbot](https://github.com/ansible/ansibullbot).
#### Overview
AWXbot performs many functions:
* Respond quickly to issues and pull requests.
* Identify the maintainers responsible for reviewing pull requests.
* Identify issues and pull request types and components (e.g. type:bug, component: api)
#### For issue submitters
The bot requires a minimal subset of information from the issue template:
* issue type
* component
* summary
If any of those items are missing your issue will still get the `needs_triage` label, but may end up being responded to slower than issues that have the complete set of information.
So please use the template whenever possible.
Currently you can expect the bot to add common labels such as `state:needs_triage`, `type:bug`, `type:enhancement`, `component:ui`, etc...
These labels are determined by the template data. Please use the template and fill it out as accurately as possible.
The `state:needs_triage` label will remain on your issue until a person has looked at it.
#### For pull request submitters
The bot requires a minimal subset of information from the pull request template:
* issue type
* component
* summary
If any of those items are missing your pull request will still get the `needs_triage` label, but may end up being responded to slower than other pull requests that have a complete set of information.
Currently you can expect awxbot to add common labels such as `state:needs_triage`, `type:bug`, `component:docs`, etc...
These labels are determined by the template data. Please use the template and fill it out as accurately as possible.
The `state:needs_triage` label will will remain on your pull request until a person has looked at it.
You can also expect the bot to CC maintainers of specific areas of the code, this will notify them that there is a pull request by placing a comment on the pull request.
The comment will look something like `CC @matburt @wwitzel3 ...`.

View File

@@ -1,31 +0,0 @@
### Summary
<!-- Briefly describe the problem. -->
### Environment
<!--
* AWX version: X.Y.Z
* Ansible version: X.Y.Z
* Operating System:
* Web Browser:
-->
### Steps To Reproduce:
<!-- For bugs, please show exactly how to reproduce the problem. For new
features, show how the feature would be used. -->
### Expected Results:
<!-- For bug reports, what did you expect to happen when running the steps
above? -->
### Actual Results:
<!-- For bug reports, what actually happened? -->
### Additional Information:
<!-- Include any links to sosreport, database dumps, screenshots or other
information. -->

168
LICENSE.md Normal file
View File

@@ -0,0 +1,168 @@
Apache License
==============
_Version 2.0, January 2004_
_&lt;<http://www.apache.org/licenses/>&gt;_
### Terms and Conditions for use, reproduction, and distribution
#### 1. Definitions
“License” shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
“Licensor” shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
“Legal Entity” shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, “control” means **(i)** the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
outstanding shares, or **(iii)** beneficial ownership of such entity.
“You” (or “Your”) shall mean an individual or Legal Entity exercising
permissions granted by this License.
“Source” form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
“Object” form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
“Work” shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
“Derivative Works” shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
“Contribution” shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
“submitted” means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as “Not a Contribution.”
“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
#### 2. Grant of Copyright License
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
#### 3. Grant of Patent License
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
#### 4. Redistribution
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
* **(a)** You must give any other recipients of the Work or Derivative Works a copy of
this License; and
* **(b)** You must cause any modified files to carry prominent notices stating that You
changed the files; and
* **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
#### 5. Submission of Contributions
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
#### 6. Trademarks
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
#### 7. Disclaimer of Warranty
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
#### 8. Limitation of Liability
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
#### 9. Accepting Warranty or Additional Liability
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.

View File

@@ -1,4 +1,6 @@
recursive-include awx *.py
recursive-include awx *.po
recursive-include awx *.mo
recursive-include awx/static *
recursive-include awx/templates *.html
recursive-include awx/api/templates *.md *.html

View File

@@ -12,10 +12,10 @@ MANAGEMENT_COMMAND ?= awx-manage
IMAGE_REPOSITORY_AUTH ?=
IMAGE_REPOSITORY_BASE ?= https://gcr.io
VERSION=$(shell git describe --long)
VERSION3=$(shell git describe --long | sed 's/\-g.*//')
VERSION3DOT=$(shell git describe --long | sed 's/\-g.*//' | sed 's/\-/\./')
RELEASE_VERSION=$(shell git describe --long | sed 's@\([0-9.]\{1,\}\).*@\1@')
VERSION=$(shell git describe --long --first-parent)
VERSION3=$(shell git describe --long --first-parent | sed 's/\-g.*//')
VERSION3DOT=$(shell git describe --long --first-parent | sed 's/\-g.*//' | sed 's/\-/\./')
RELEASE_VERSION=$(shell git describe --long --first-parent | sed 's@\([0-9.]\{1,\}\).*@\1@')
# NOTE: This defaults the container image version to the branch that's active
COMPOSE_TAG ?= $(GIT_BRANCH)
@@ -23,7 +23,7 @@ COMPOSE_HOST ?= $(shell hostname)
VENV_BASE ?= /venv
SCL_PREFIX ?=
CELERY_SCHEDULE_FILE ?= /celerybeat-schedule
CELERY_SCHEDULE_FILE ?= /var/lib/awx/beat.db
DEV_DOCKER_TAG_BASE ?= gcr.io/ansible-tower-engineering
# Python packages to install only from source (not from binary wheels)
@@ -72,18 +72,20 @@ UI_RELEASE_FLAG_FILE = awx/ui/.release_built
I18N_FLAG_FILE = .i18n_built
.PHONY: clean clean-tmp clean-venv requirements requirements_dev \
.PHONY: awx-link clean clean-tmp clean-venv requirements requirements_dev \
develop refresh adduser migrate dbchange dbshell runserver celeryd \
receiver test test_unit test_ansible test_coverage coverage_html \
dev_build release_build release_clean sdist \
ui-docker-machine ui-docker ui-release ui-devel \
ui-test ui-deps ui-test-ci ui-test-saucelabs VERSION
ui-test ui-deps ui-test-ci VERSION
# remove ui build artifacts
clean-ui:
rm -rf awx/ui/static/
rm -rf awx/ui/node_modules/
rm -rf awx/ui/coverage/
rm -rf awx/ui/test/unit/reports/
rm -rf awx/ui/test/spec/reports/
rm -rf awx/ui/test/e2e/reports/
rm -rf awx/ui/client/languages/
rm -f $(UI_DEPS_FLAG_FILE)
rm -f $(UI_RELEASE_FLAG_FILE)
@@ -182,7 +184,6 @@ requirements_awx: virtualenv_awx
requirements_awx_dev:
$(VENV_BASE)/awx/bin/pip install -r requirements/requirements_dev.txt
$(VENV_BASE)/awx/bin/pip uninstall --yes -r requirements/requirements_dev_uninstall.txt
requirements: requirements_ansible requirements_awx
@@ -201,8 +202,11 @@ develop:
fi
version_file:
mkdir -p /var/lib/awx/
python -c "import awx as awx; print awx.__version__" > /var/lib/awx/.awx_version
mkdir -p /var/lib/awx/; \
if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
python -c "import awx as awx; print awx.__version__" > /var/lib/awx/.awx_version; \
# Do any one-time init tasks.
comma := ,
@@ -211,13 +215,11 @@ init:
. $(VENV_BASE)/awx/bin/activate; \
fi; \
$(MANAGEMENT_COMMAND) provision_instance --hostname=$(COMPOSE_HOST); \
$(MANAGEMENT_COMMAND) register_queue --queuename=tower --hostnames=$(COMPOSE_HOST);\
$(MANAGEMENT_COMMAND) register_queue --queuename=tower --instance_percent=100;\
if [ "$(AWX_GROUP_QUEUES)" == "tower,thepentagon" ]; then \
$(MANAGEMENT_COMMAND) provision_instance --hostname=isolated; \
$(MANAGEMENT_COMMAND) register_queue --queuename='thepentagon' --hostnames=isolated --controller=tower; \
$(MANAGEMENT_COMMAND) generate_isolated_key | ssh -o "StrictHostKeyChecking no" root@isolated 'cat > /root/.ssh/authorized_keys'; \
elif [ "$(AWX_GROUP_QUEUES)" != "tower" ]; then \
$(MANAGEMENT_COMMAND) register_queue --queuename=$(firstword $(subst $(comma), ,$(AWX_GROUP_QUEUES))) --hostnames=$(COMPOSE_HOST); \
fi;
# Refresh development environment after pulling new code.
@@ -232,7 +234,7 @@ migrate:
if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
$(MANAGEMENT_COMMAND) migrate --noinput --fake-initial
$(MANAGEMENT_COMMAND) migrate --noinput
# Run after making changes to the models to create a new migration.
dbchange:
@@ -282,7 +284,7 @@ flower:
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
$(PYTHON) manage.py celery flower --address=0.0.0.0 --port=5555 --broker=amqp://guest:guest@$(RABBITMQ_HOST):5672//
celery flower --address=0.0.0.0 --port=5555 --broker=amqp://guest:guest@$(RABBITMQ_HOST):5672//
collectstatic:
@if [ "$(VENV_BASE)" ]; then \
@@ -294,7 +296,7 @@ uwsgi: collectstatic
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
uwsgi -b 32768 --socket 127.0.0.1:8050 --module=awx.wsgi:application --home=/venv/awx --chdir=/awx_devel/ --vacuum --processes=5 --harakiri=120 --master --no-orphans --py-autoreload 1 --max-requests=1000 --stats /tmp/stats.socket --master-fifo=/awxfifo --lazy-apps --logformat "%(addr) %(method) %(uri) - %(proto) %(status)"
uwsgi -b 32768 --socket 127.0.0.1:8050 --module=awx.wsgi:application --home=/venv/awx --chdir=/awx_devel/ --vacuum --processes=5 --harakiri=120 --master --no-orphans --py-autoreload 1 --max-requests=1000 --stats /tmp/stats.socket --master-fifo=/awxfifo --lazy-apps --logformat "%(addr) %(method) %(uri) - %(proto) %(status)" --hook-accepting1-once="exec:/bin/sh -c '[ -f /tmp/celery_pid ] && kill -1 `cat /tmp/celery_pid` || true'"
daphne:
@if [ "$(VENV_BASE)" ]; then \
@@ -317,11 +319,11 @@ runserver:
# Run to start the background celery worker for development.
celeryd:
rm -f /tmp/celery_pid
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
$(PYTHON) manage.py celeryd -l DEBUG -B -Ofair --autoreload --autoscale=100,4 --schedule=$(CELERY_SCHEDULE_FILE) -Q tower_scheduler,tower_broadcast_all,$(COMPOSE_HOST),$(AWX_GROUP_QUEUES) -n celery@$(COMPOSE_HOST)
#$(PYTHON) manage.py celery multi show projects jobs default -l DEBUG -Q:projects projects -Q:jobs jobs -Q:default default -c:projects 1 -c:jobs 3 -c:default 3 -Ofair -B --schedule=$(CELERY_SCHEDULE_FILE)
celery worker -A awx -l DEBUG -B -Ofair --autoscale=100,4 --schedule=$(CELERY_SCHEDULE_FILE) -n celery@$(COMPOSE_HOST) --pidfile /tmp/celery_pid
# Run to start the zeromq callback receiver
receiver:
@@ -330,17 +332,14 @@ receiver:
fi; \
$(PYTHON) manage.py run_callback_receiver
socketservice:
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
$(PYTHON) manage.py run_socketio_service
nginx:
nginx -g "daemon off;"
rdb:
$(PYTHON) tools/rdb.py
jupyter:
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
$(MANAGEMENT_COMMAND) shell_plus --notebook
reports:
mkdir -p $@
@@ -360,16 +359,29 @@ pyflakes: reports
pylint: reports
@(set -o pipefail && $@ | reports/$@.report)
swagger: reports
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
(set -o pipefail && py.test awx/conf/tests/functional awx/main/tests/functional/api awx/main/tests/docs --release=$(VERSION_TARGET) | tee reports/$@.report)
check: flake8 pep8 # pyflakes pylint
TEST_DIRS ?= awx/main/tests awx/conf/tests awx/sso/tests
awx-link:
cp -R /tmp/awx.egg-info /awx_devel/ || true
sed -i "s/placeholder/$(shell git describe --long | sed 's/\./\\./g')/" /awx_devel/awx.egg-info/PKG-INFO
cp /tmp/awx.egg-link /venv/awx/lib/python2.7/site-packages/awx.egg-link
TEST_DIRS ?= awx/main/tests/unit awx/main/tests/functional awx/conf/tests awx/sso/tests
# Run all API unit tests.
test: test_ansible
test:
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
py.test $(TEST_DIRS)
test_combined: test_ansible test
test_unit:
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
@@ -495,15 +507,14 @@ ui: clean-ui ui-devel
ui-test-ci: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run test:ci
$(NPM_BIN) --prefix awx/ui run unit
testjs_ci:
echo "Update UI unittests later" #ui-test-ci
jshint: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) run --prefix awx/ui jshint
ui-test-saucelabs: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run test:saucelabs
$(NPM_BIN) run --prefix awx/ui lint
# END UI TASKS
# --------------------------------------
@@ -548,6 +559,7 @@ docker-isolated:
TAG=$(COMPOSE_TAG) DEV_DOCKER_TAG_BASE=$(DEV_DOCKER_TAG_BASE) docker-compose -f tools/docker-compose.yml -f tools/docker-isolated-override.yml create
docker start tools_awx_1
docker start tools_isolated_1
echo "__version__ = '`python setup.py --version`'" | docker exec -i tools_isolated_1 /bin/bash -c "cat > /venv/awx/lib/python2.7/site-packages/awx.py"
if [ "`docker exec -i -t tools_isolated_1 cat /root/.ssh/authorized_keys`" == "`docker exec -t tools_awx_1 cat /root/.ssh/id_rsa.pub`" ]; then \
echo "SSH keys already copied to isolated instance"; \
else \
@@ -603,14 +615,8 @@ clean-elk:
docker rm tools_kibana_1
psql-container:
docker run -it --net tools_default --rm postgres:9.4.1 sh -c 'exec psql -h "postgres" -p "5432" -U postgres'
docker run -it --net tools_default --rm postgres:9.6 sh -c 'exec psql -h "postgres" -p "5432" -U postgres'
VERSION:
echo $(VERSION_TARGET) > $@
production-openshift-image: sdist
cat installer/openshift/Dockerfile | sed "s/{{ version }}/$(VERSION_TARGET)/g" | sed "s/{{ tar }}/$(SDIST_TAR_FILE)/g" > ./Dockerfile.production
cp installer/openshift/Dockerfile.celery ./Dockerfile.celery.production
docker build -t awx_web -f ./Dockerfile.production .
docker build -t awx_task -f ./Dockerfile.celery.production .
@echo $(VERSION_TARGET) > $@
@echo "awx: $(VERSION_TARGET)"

View File

@@ -1,16 +1,46 @@
[![Devel Requirements Status](https://requires.io/github/ansible/awx/requirements.svg?branch=devel)](https://requires.io/github/ansible/awx/requirements/?branch=devel)
[![Run Status](https://api.shippable.com/projects/591c82a22f895107009e8b35/badge?branch=devel)](https://app.shippable.com/github/ansible/awx)
AWX
=============
===
AWX provides a web-based user interface, REST API and task engine built on top of
Ansible.
AWX provides a web-based user interface, REST API, and task engine built on top of [Ansible](https://github.com/ansible/ansible). It is the upstream project for [Tower](https://www.ansible.com/tower), a commercial derivative of AWX.
Resources
---------
To install AWX, please view the [Install guide](./INSTALL.md).
Refer to `CONTRIBUTING.md` to get started developing, testing and building AWX.
To learn more about using AWX, and Tower, view the [Tower docs site](http://docs.ansible.com/ansible-tower/index.html).
Refer to `INSTALL.md` to get started deploying AWX.
The AWX Project Frequently Asked Questions can be found [here](https://www.ansible.com/awx-project-faq).
Contributing
------------
- Refer to the [Contributing guide](./CONTRIBUTING.md) to get started developing, testing, and building AWX.
- All code submissions are done through pull requests against the `devel` branch.
- All contributors must use git commit --signoff for any commit to be merged, and agree that usage of --signoff constitutes agreement with the terms of [DCO 1.1](./DCO_1_1.md)
- Take care to make sure no merge commits are in the submission, and use `git rebase` vs `git merge` for this reason.
- If submitting a large code change, it's a good idea to join the `#ansible-awx` channel on irc.freenode.net, and talk about what you would like to do or add first. This not only helps everyone know what's going on, it also helps save time and effort, if the community decides some changes are needed.
Reporting Issues
----------------
If you're experiencing a problem, we encourage you to open an issue, and share your feedback. But before opening a new issue, we ask that you please take a look at our [Issues guide](./ISSUES.md).
Code of Conduct
---------------
We ask all of our community members and contributors to adhere to the [Ansible code of conduct](http://docs.ansible.com/ansible/latest/community/code_of_conduct.html). If you have questions, or need assistance, please reach out to our community team at [codeofconduct@ansible.com](mailto:codeofconduct@ansible.com)
Get Involved
------------
We welcome your feedback and ideas. Here's how to reach us:
- Join the `#ansible-awx` channel on irc.freenode.net
- Join the [mailing list](https://groups.google.com/forum/#!forum/awx-project)
- [Open an Issue](https://github.com/ansible/awx/issues)
License
-------
[Apache v2](./LICENSE.md)
Refer to `LOCALIZATION.md` for translation and localization help.

View File

@@ -1,15 +1,17 @@
# Copyright (c) 2015 Ansible, Inc.
# All Rights Reserved.
from __future__ import absolute_import, unicode_literals
import os
import sys
import warnings
from pkg_resources import get_distribution
from .celery import app as celery_app # noqa
__version__ = get_distribution('awx').version
__all__ = ['__version__']
__all__ = ['__version__', 'celery_app']
# Check for the presence/absence of "devonly" module to determine if running
# from a source code checkout or release packaage.

View File

@@ -2,126 +2,21 @@
# All Rights Reserved.
# Python
import urllib
import logging
# Django
from django.conf import settings
from django.utils.timezone import now as tz_now
from django.utils.encoding import smart_text
from django.utils.translation import ugettext_lazy as _
# Django REST Framework
from rest_framework import authentication
from rest_framework import exceptions
from rest_framework import HTTP_HEADER_ENCODING
# AWX
from awx.main.models import UnifiedJob, AuthToken
# Django OAuth Toolkit
from oauth2_provider.contrib.rest_framework import OAuth2Authentication
logger = logging.getLogger('awx.api.authentication')
class TokenAuthentication(authentication.TokenAuthentication):
'''
Custom token authentication using tokens that expire and are associated
with parameters specific to the request.
'''
model = AuthToken
@staticmethod
def _get_x_auth_token_header(request):
auth = request.META.get('HTTP_X_AUTH_TOKEN', '')
if isinstance(auth, type('')):
# Work around django test client oddness
auth = auth.encode(HTTP_HEADER_ENCODING)
return auth
@staticmethod
def _get_auth_token_cookie(request):
token = request.COOKIES.get('token', '')
if token:
token = urllib.unquote(token).strip('"')
return 'token %s' % token
return ''
def authenticate(self, request):
self.request = request
# Prefer the custom X-Auth-Token header over the Authorization header,
# to handle cases where the browser submits saved Basic auth and
# overrides the UI's normal use of the Authorization header.
auth = TokenAuthentication._get_x_auth_token_header(request).split()
if not auth or auth[0].lower() != 'token':
auth = authentication.get_authorization_header(request).split()
# Prefer basic auth over cookie token
if auth and auth[0].lower() == 'basic':
return None
elif not auth or auth[0].lower() != 'token':
auth = TokenAuthentication._get_auth_token_cookie(request).split()
if not auth or auth[0].lower() != 'token':
return None
if len(auth) == 1:
msg = _('Invalid token header. No credentials provided.')
raise exceptions.AuthenticationFailed(msg)
elif len(auth) > 2:
msg = _('Invalid token header. Token string should not contain spaces.')
raise exceptions.AuthenticationFailed(msg)
return self.authenticate_credentials(auth[1])
def authenticate_credentials(self, key):
now = tz_now()
# Retrieve the request hash and token.
try:
request_hash = self.model.get_request_hash(self.request)
token = self.model.objects.select_related('user').get(
key=key,
request_hash=request_hash,
)
except self.model.DoesNotExist:
raise exceptions.AuthenticationFailed(AuthToken.reason_long('invalid_token'))
# Tell the user why their token was previously invalidated.
if token.invalidated:
raise exceptions.AuthenticationFailed(AuthToken.reason_long(token.reason))
# Explicitly handle expired tokens
if token.is_expired(now=now):
token.invalidate(reason='timeout_reached')
raise exceptions.AuthenticationFailed(AuthToken.reason_long('timeout_reached'))
# Token invalidated due to session limit config being reduced
# Session limit reached invalidation will also take place on authentication
if settings.AUTH_TOKEN_PER_USER != -1:
if not token.in_valid_tokens(now=now):
token.invalidate(reason='limit_reached')
raise exceptions.AuthenticationFailed(AuthToken.reason_long('limit_reached'))
# If the user is inactive, then return an error.
if not token.user.is_active:
raise exceptions.AuthenticationFailed(_('User inactive or deleted'))
# Refresh the token.
# The token is extended from "right now" + configurable setting amount.
token.refresh(now=now)
# Return the user object and the token.
return (token.user, token)
class TokenGetAuthentication(TokenAuthentication):
def authenticate(self, request):
if request.method.lower() == 'get':
token = request.GET.get('token', None)
if token:
request.META['HTTP_X_AUTH_TOKEN'] = 'Token %s' % token
return super(TokenGetAuthentication, self).authenticate(request)
class LoggedBasicAuthentication(authentication.BasicAuthentication):
def authenticate(self, request):
@@ -139,27 +34,26 @@ class LoggedBasicAuthentication(authentication.BasicAuthentication):
return super(LoggedBasicAuthentication, self).authenticate_header(request)
class TaskAuthentication(authentication.BaseAuthentication):
'''
Custom authentication used for views accessed by the inventory and callback
scripts when running a task.
'''
class SessionAuthentication(authentication.SessionAuthentication):
def authenticate_header(self, request):
return 'Session'
model = None
def enforce_csrf(self, request):
return None
class LoggedOAuth2Authentication(OAuth2Authentication):
def authenticate(self, request):
auth = authentication.get_authorization_header(request).split()
if len(auth) != 2 or auth[0].lower() != 'token' or '-' not in auth[1]:
return None
pk, key = auth[1].split('-', 1)
try:
unified_job = UnifiedJob.objects.get(pk=pk, status='running')
except UnifiedJob.DoesNotExist:
return None
token = unified_job.task_auth_token
if auth[1] != token:
raise exceptions.AuthenticationFailed(_('Invalid task token'))
return (None, token)
def authenticate_header(self, request):
return 'Token'
ret = super(LoggedOAuth2Authentication, self).authenticate(request)
if ret:
user, token = ret
username = user.username if user else '<none>'
logger.debug(smart_text(
u"User {} performed a {} to {} through the API using OAuth token {}.".format(
username, request.method, request.path, token.pk
)
))
setattr(user, 'oauth_scopes', [x for x in token.scope.split() if x])
return ret

View File

@@ -1,30 +1,30 @@
# Django
from django.utils.translation import ugettext_lazy as _
# Tower
# AWX
from awx.conf import fields, register
from awx.api.fields import OAuth2ProviderField
register(
'AUTH_TOKEN_EXPIRATION',
'SESSION_COOKIE_AGE',
field_class=fields.IntegerField,
min_value=60,
max_value=30000000000, # approx 1,000 years, higher values give OverflowError
label=_('Idle Time Force Log Out'),
help_text=_('Number of seconds that a user is inactive before they will need to login again.'),
category=_('Authentication'),
category_slug='authentication',
)
register(
'AUTH_TOKEN_PER_USER',
'SESSIONS_PER_USER',
field_class=fields.IntegerField,
min_value=-1,
label=_('Maximum number of simultaneous logins'),
help_text=_('Maximum number of simultaneous logins a user may have. To disable enter -1.'),
label=_('Maximum number of simultaneous logged in sessions'),
help_text=_('Maximum number of simultaneous logged in sessions a user may have. To disable enter -1.'),
category=_('Authentication'),
category_slug='authentication',
)
register(
'AUTH_BASIC_ENABLED',
field_class=fields.BooleanField,
@@ -33,3 +33,16 @@ register(
category=_('Authentication'),
category_slug='authentication',
)
register(
'OAUTH2_PROVIDER',
field_class=OAuth2ProviderField,
default={'ACCESS_TOKEN_EXPIRE_SECONDS': 315360000000,
'AUTHORIZATION_CODE_EXPIRE_SECONDS': 600},
label=_('OAuth 2 Timeout Settings'),
help_text=_('Dictionary for customizing OAuth 2 timeouts, available items are '
'`ACCESS_TOKEN_EXPIRE_SECONDS`, the duration of access tokens in the number '
'of seconds, and `AUTHORIZATION_CODE_EXPIRE_SECONDS`, the duration of '
'authorization grants in the number of seconds.'),
category=_('Authentication'),
category_slug='authentication',
)

18
awx/api/exceptions.py Normal file
View File

@@ -0,0 +1,18 @@
# Copyright (c) 2018 Ansible by Red Hat
# All Rights Reserved.
# Django
from django.utils.translation import ugettext_lazy as _
# Django REST Framework
from rest_framework.exceptions import ValidationError
class ActiveJobConflict(ValidationError):
status_code = 409
def __init__(self, active_jobs):
super(ActiveJobConflict, self).__init__({
"error": _("Resource is being used by running jobs."),
"active_jobs": active_jobs
})

View File

@@ -1,10 +1,17 @@
# Copyright (c) 2016 Ansible, Inc.
# All Rights Reserved.
# Django
from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import ObjectDoesNotExist
# Django REST Framework
from rest_framework import serializers
# AWX
from awx.conf import fields
from awx.main.models import Credential
__all__ = ['BooleanNullField', 'CharNullField', 'ChoiceNullField', 'VerbatimField']
@@ -66,3 +73,36 @@ class VerbatimField(serializers.Field):
def to_representation(self, value):
return value
class OAuth2ProviderField(fields.DictField):
default_error_messages = {
'invalid_key_names': _('Invalid key names: {invalid_key_names}'),
}
valid_key_names = {'ACCESS_TOKEN_EXPIRE_SECONDS', 'AUTHORIZATION_CODE_EXPIRE_SECONDS'}
child = fields.IntegerField(min_value=1)
def to_internal_value(self, data):
data = super(OAuth2ProviderField, self).to_internal_value(data)
invalid_flags = (set(data.keys()) - self.valid_key_names)
if invalid_flags:
self.fail('invalid_key_names', invalid_key_names=', '.join(list(invalid_flags)))
return data
class DeprecatedCredentialField(serializers.IntegerField):
def __init__(self, **kwargs):
kwargs['allow_null'] = True
kwargs['default'] = None
kwargs['min_value'] = 1
kwargs['help_text'] = 'This resource has been deprecated and will be removed in a future release'
super(DeprecatedCredentialField, self).__init__(**kwargs)
def to_internal_value(self, pk):
try:
Credential.objects.get(pk=pk)
except ObjectDoesNotExist:
raise serializers.ValidationError(_('Credential {} does not exist').format(pk))
return pk

View File

@@ -22,17 +22,11 @@ from rest_framework.filters import BaseFilterBackend
# AWX
from awx.main.utils import get_type_for_model, to_python_boolean
from awx.main.utils.db import get_all_field_names
from awx.main.models.credential import CredentialType
from awx.main.models.rbac import RoleAncestorEntry
class MongoFilterBackend(BaseFilterBackend):
# FIX: Note that MongoEngine can't use the filter backends from DRF
def filter_queryset(self, request, queryset, view):
return queryset
class V1CredentialFilterBackend(BaseFilterBackend):
'''
For /api/v1/ requests, filter out v2 (custom) credentials
@@ -70,7 +64,7 @@ class TypeFilterBackend(BaseFilterBackend):
types_map[ct_type] = ct.pk
model = queryset.model
model_type = get_type_for_model(model)
if 'polymorphic_ctype' in model._meta.get_all_field_names():
if 'polymorphic_ctype' in get_all_field_names(model):
types_pks = set([v for k,v in types_map.items() if k in types])
queryset = queryset.filter(polymorphic_ctype_id__in=types_pks)
elif model_type in types:
@@ -119,7 +113,7 @@ class FieldLookupBackend(BaseFilterBackend):
'last_updated': 'last_job_run',
}.get(name, name)
if name == 'type' and 'polymorphic_ctype' in model._meta.get_all_field_names():
if name == 'type' and 'polymorphic_ctype' in get_all_field_names(model):
name = 'polymorphic_ctype'
new_parts.append('polymorphic_ctype__model')
else:
@@ -136,7 +130,9 @@ class FieldLookupBackend(BaseFilterBackend):
new_parts.pop()
new_parts.append(name_alt)
else:
field = model._meta.get_field_by_name(name)[0]
field = model._meta.get_field(name)
if 'auth' in name or 'token' in name:
raise PermissionDenied(_('Filtering on %s is not allowed.' % name))
if isinstance(field, ForeignObjectRel) and getattr(field.field, '__prevent_search__', False):
raise PermissionDenied(_('Filtering on %s is not allowed.' % name))
elif getattr(field, '__prevent_search__', False):
@@ -165,7 +161,13 @@ class FieldLookupBackend(BaseFilterBackend):
elif isinstance(field, models.BooleanField):
return to_python_boolean(value)
elif isinstance(field, (ForeignObjectRel, ManyToManyField, GenericForeignKey, ForeignKey)):
return self.to_python_related(value)
try:
return self.to_python_related(value)
except ValueError:
raise ParseError(_('Invalid {field_name} id: {field_id}').format(
field_name=getattr(field, 'name', 'related field'),
field_id=value)
)
else:
return field.to_python(value)
@@ -242,11 +244,10 @@ class FieldLookupBackend(BaseFilterBackend):
# Search across related objects.
if key.endswith('__search'):
for value in values:
for search_term in force_text(value).replace(',', ' ').split():
search_value, new_keys = self.value_to_python(queryset.model, key, search_term)
assert isinstance(new_keys, list)
for new_key in new_keys:
search_filters.append((new_key, search_value))
search_value, new_keys = self.value_to_python(queryset.model, key, force_text(value))
assert isinstance(new_keys, list)
for new_key in new_keys:
search_filters.append((new_key, search_value))
continue
# Custom chain__ and or__ filters, mutually exclusive (both can
@@ -268,8 +269,10 @@ class FieldLookupBackend(BaseFilterBackend):
# Make legacy v1 Job/Template fields work for backwards compatability
# TODO: remove after API v1 deprecation period
if queryset.model._meta.object_name in ('JobTemplate', 'Job') and key in ('cloud_credential', 'network_credential'):
key = 'extra_credentials'
if queryset.model._meta.object_name in ('JobTemplate', 'Job') and key in (
'credential', 'vault_credential', 'cloud_credential', 'network_credential'
) or queryset.model._meta.object_name in ('InventorySource', 'InventoryUpdate') and key == 'credential':
key = 'credentials'
# Make legacy v1 Credential fields work for backwards compatability
# TODO: remove after API v1 deprecation period
@@ -375,7 +378,7 @@ class OrderByBackend(BaseFilterBackend):
# given the limited number of views with multiple types,
# sorting on polymorphic_ctype.model is effectively the same.
new_order_by = []
if 'polymorphic_ctype' in queryset.model._meta.get_all_field_names():
if 'polymorphic_ctype' in get_all_field_names(queryset.model):
for field in order_by:
if field == 'type':
new_order_by.append('polymorphic_ctype__model')

View File

@@ -5,6 +5,7 @@
import inspect
import logging
import time
import six
# Django
from django.conf import settings
@@ -18,38 +19,75 @@ from django.utils.encoding import smart_text
from django.utils.safestring import mark_safe
from django.contrib.contenttypes.models import ContentType
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth import views as auth_views
# Django REST Framework
from rest_framework.authentication import get_authorization_header
from rest_framework.exceptions import PermissionDenied
from rest_framework.exceptions import PermissionDenied, AuthenticationFailed, ParseError
from rest_framework import generics
from rest_framework.response import Response
from rest_framework import status
from rest_framework import views
from rest_framework.permissions import AllowAny
# cryptography
from cryptography.fernet import InvalidToken
# AWX
from awx.api.filters import FieldLookupBackend
from awx.main.models import * # noqa
from awx.main.access import access_registry
from awx.main.utils import * # noqa
from awx.api.serializers import ResourceAccessListElementSerializer
from awx.main.utils.db import get_all_field_names
from awx.api.serializers import ResourceAccessListElementSerializer, CopySerializer
from awx.api.versioning import URLPathVersioning, get_request_version
from awx.api.metadata import SublistAttachDetatchMetadata
from awx.api.metadata import SublistAttachDetatchMetadata, Metadata
__all__ = ['APIView', 'GenericAPIView', 'ListAPIView', 'SimpleListAPIView',
'ListCreateAPIView', 'SubListAPIView', 'SubListCreateAPIView',
'SubListDestroyAPIView',
'SubListCreateAttachDetachAPIView', 'RetrieveAPIView',
'RetrieveUpdateAPIView', 'RetrieveDestroyAPIView',
'RetrieveUpdateDestroyAPIView', 'DestroyAPIView',
'RetrieveUpdateDestroyAPIView',
'SubDetailAPIView',
'ResourceAccessList',
'ParentMixin',
'DeleteLastUnattachLabelMixin',
'SubListAttachDetachAPIView',]
'SubListAttachDetachAPIView',
'CopyAPIView']
logger = logging.getLogger('awx.api.generics')
analytics_logger = logging.getLogger('awx.analytics.performance')
class LoggedLoginView(auth_views.LoginView):
def post(self, request, *args, **kwargs):
original_user = getattr(request, 'user', None)
ret = super(LoggedLoginView, self).post(request, *args, **kwargs)
current_user = getattr(request, 'user', None)
if current_user and getattr(current_user, 'pk', None) and current_user != original_user:
logger.info("User {} logged in.".format(current_user.username))
if request.user.is_authenticated:
return ret
else:
ret.status_code = 401
return ret
class LoggedLogoutView(auth_views.LogoutView):
def dispatch(self, request, *args, **kwargs):
original_user = getattr(request, 'user', None)
ret = super(LoggedLogoutView, self).dispatch(request, *args, **kwargs)
current_user = getattr(request, 'user', None)
if (not current_user or not getattr(current_user, 'pk', True)) \
and current_user != original_user:
logger.info("User {} logged out.".format(original_user.username))
return ret
def get_view_name(cls, suffix=None):
'''
Wrapper around REST framework get_view_name() to support get_name() method
@@ -88,8 +126,17 @@ def get_view_description(cls, request, html=False):
return mark_safe(desc)
def get_default_schema():
if settings.SETTINGS_MODULE == 'awx.settings.development':
from awx.api.swagger import AutoSchema
return AutoSchema()
else:
return views.APIView.schema
class APIView(views.APIView):
schema = get_default_schema()
versioning_class = URLPathVersioning
def initialize_request(self, request, *args, **kwargs):
@@ -114,6 +161,13 @@ class APIView(views.APIView):
drf_request = super(APIView, self).initialize_request(request, *args, **kwargs)
request.drf_request = drf_request
try:
request.drf_request_user = getattr(drf_request, 'user', False)
except AuthenticationFailed:
request.drf_request_user = None
except ParseError as exc:
request.drf_request_user = None
self.__init_request_error__ = exc
return drf_request
def finalize_response(self, request, response, *args, **kwargs):
@@ -123,6 +177,8 @@ class APIView(views.APIView):
if response.status_code >= 400:
status_msg = "status %s received by user %s attempting to access %s from %s" % \
(response.status_code, request.user, request.path, request.META.get('REMOTE_ADDR', None))
if hasattr(self, '__init_request_error__'):
response = self.handle_exception(self.__init_request_error__)
if response.status_code == 401:
logger.info(status_msg)
else:
@@ -139,7 +195,6 @@ class APIView(views.APIView):
response['X-API-Query-Count'] = len(q_times)
response['X-API-Query-Time'] = '%0.3fs' % sum(q_times)
analytics_logger.info("api response", extra=dict(python_objects=dict(request=request, response=response)))
return response
def get_authenticate_header(self, request):
@@ -170,26 +225,14 @@ class APIView(views.APIView):
and in the browsable API.
"""
func = self.settings.VIEW_DESCRIPTION_FUNCTION
return func(self.__class__, self._request, html)
return func(self.__class__, getattr(self, '_request', None), html)
def get_description_context(self):
return {
'view': self,
'docstring': type(self).__doc__ or '',
'new_in_13': getattr(self, 'new_in_13', False),
'new_in_14': getattr(self, 'new_in_14', False),
'new_in_145': getattr(self, 'new_in_145', False),
'new_in_148': getattr(self, 'new_in_148', False),
'new_in_200': getattr(self, 'new_in_200', False),
'new_in_210': getattr(self, 'new_in_210', False),
'new_in_220': getattr(self, 'new_in_220', False),
'new_in_230': getattr(self, 'new_in_230', False),
'new_in_240': getattr(self, 'new_in_240', False),
'new_in_300': getattr(self, 'new_in_300', False),
'new_in_310': getattr(self, 'new_in_310', False),
'new_in_320': getattr(self, 'new_in_320', False),
'new_in_api_v2': getattr(self, 'new_in_api_v2', False),
'deprecated': getattr(self, 'deprecated', False),
'swagger_method': getattr(self.request, 'swagger_method', None),
}
def get_description(self, request, html=False):
@@ -207,7 +250,7 @@ class APIView(views.APIView):
context['deprecated'] = True
description = render_to_string(template_list, context)
if context.get('deprecated'):
if context.get('deprecated') and context.get('swagger_method') is None:
# render deprecation messages at the very top
description = '\n'.join([render_to_string('api/_deprecated.md', context), description])
return description
@@ -267,12 +310,17 @@ class GenericAPIView(generics.GenericAPIView, APIView):
return serializer
def get_queryset(self):
#if hasattr(self.request.user, 'get_queryset'):
# return self.request.user.get_queryset(self.model)
if self.queryset is not None:
return self.queryset._clone()
elif self.model is not None:
return self.model._default_manager.all()
qs = self.model._default_manager
if self.model in access_registry:
access_class = access_registry[self.model]
if access_class.select_related:
qs = qs.select_related(*access_class.select_related)
if access_class.prefetch_related:
qs = qs.prefetch_related(*access_class.prefetch_related)
return qs
else:
return super(GenericAPIView, self).get_queryset()
@@ -313,16 +361,8 @@ class ListAPIView(generics.ListAPIView, GenericAPIView):
def get_queryset(self):
return self.request.user.get_queryset(self.model)
def paginate_queryset(self, queryset):
page = super(ListAPIView, self).paginate_queryset(queryset)
# Queries RBAC info & stores into list objects
if hasattr(self, 'capabilities_prefetch') and page is not None:
cache_list_capabilities(page, self.capabilities_prefetch, self.model, self.request.user)
return page
def get_description_context(self):
opts = self.model._meta
if 'username' in opts.get_all_field_names():
if 'username' in get_all_field_names(self.model):
order_field = 'username'
else:
order_field = 'name'
@@ -441,6 +481,41 @@ class SubListAPIView(ParentMixin, ListAPIView):
return qs & sublist_qs
class DestroyAPIView(generics.DestroyAPIView):
def has_delete_permission(self, obj):
return self.request.user.can_access(self.model, 'delete', obj)
def perform_destroy(self, instance, check_permission=True):
if check_permission and not self.has_delete_permission(instance):
raise PermissionDenied()
super(DestroyAPIView, self).perform_destroy(instance)
class SubListDestroyAPIView(DestroyAPIView, SubListAPIView):
"""
Concrete view for deleting everything related by `relationship`.
"""
check_sub_obj_permission = True
def destroy(self, request, *args, **kwargs):
instance_list = self.get_queryset()
if (not self.check_sub_obj_permission and
not request.user.can_access(self.parent_model, 'delete', self.get_parent_object())):
raise PermissionDenied()
self.perform_list_destroy(instance_list)
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_list_destroy(self, instance_list):
if self.check_sub_obj_permission:
# Check permissions for all before deleting, avoiding half-deleted lists
for instance in instance_list:
if self.has_delete_permission(instance):
raise PermissionDenied()
for instance in instance_list:
self.perform_destroy(instance, check_permission=False)
class SubListCreateAPIView(SubListAPIView, ListCreateAPIView):
# Base class for a sublist view that allows for creating subobjects
# associated with the parent object.
@@ -679,22 +754,11 @@ class RetrieveUpdateAPIView(RetrieveAPIView, generics.RetrieveUpdateAPIView):
pass
class RetrieveDestroyAPIView(RetrieveAPIView, generics.RetrieveDestroyAPIView):
def destroy(self, request, *args, **kwargs):
# somewhat lame that delete has to call it's own permissions check
obj = self.get_object()
if not request.user.can_access(self.model, 'delete', obj):
raise PermissionDenied()
obj.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
class RetrieveUpdateDestroyAPIView(RetrieveUpdateAPIView, RetrieveDestroyAPIView):
class RetrieveDestroyAPIView(RetrieveAPIView, DestroyAPIView):
pass
class DestroyAPIView(GenericAPIView, generics.DestroyAPIView):
class RetrieveUpdateDestroyAPIView(RetrieveUpdateAPIView, DestroyAPIView):
pass
@@ -712,3 +776,152 @@ class ResourceAccessList(ParentMixin, ListAPIView):
for r in roles:
ancestors.update(set(r.ancestors.all()))
return User.objects.filter(roles__in=list(ancestors)).distinct()
def trigger_delayed_deep_copy(*args, **kwargs):
from awx.main.tasks import deep_copy_model_obj
connection.on_commit(lambda: deep_copy_model_obj.delay(*args, **kwargs))
class CopyAPIView(GenericAPIView):
serializer_class = CopySerializer
permission_classes = (AllowAny,)
copy_return_serializer_class = None
new_in_330 = True
new_in_api_v2 = True
def _get_copy_return_serializer(self, *args, **kwargs):
if not self.copy_return_serializer_class:
return self.get_serializer(*args, **kwargs)
serializer_class_store = self.serializer_class
self.serializer_class = self.copy_return_serializer_class
ret = self.get_serializer(*args, **kwargs)
self.serializer_class = serializer_class_store
return ret
@staticmethod
def _decrypt_model_field_if_needed(obj, field_name, field_val):
if field_name in getattr(type(obj), 'REENCRYPTION_BLACKLIST_AT_COPY', []):
return field_val
if isinstance(field_val, dict):
for sub_field in field_val:
if isinstance(sub_field, six.string_types) \
and isinstance(field_val[sub_field], six.string_types):
try:
field_val[sub_field] = decrypt_field(obj, field_name, sub_field)
except InvalidToken:
# Catching the corner case with v1 credential fields
field_val[sub_field] = decrypt_field(obj, sub_field)
elif isinstance(field_val, six.string_types):
field_val = decrypt_field(obj, field_name)
return field_val
def _build_create_dict(self, obj):
ret = {}
if self.copy_return_serializer_class:
all_fields = Metadata().get_serializer_info(
self._get_copy_return_serializer(), method='POST'
)
for field_name, field_info in all_fields.items():
if not hasattr(obj, field_name) or field_info.get('read_only', True):
continue
ret[field_name] = CopyAPIView._decrypt_model_field_if_needed(
obj, field_name, getattr(obj, field_name)
)
return ret
@staticmethod
def copy_model_obj(old_parent, new_parent, model, obj, creater, copy_name='', create_kwargs=None):
fields_to_preserve = set(getattr(model, 'FIELDS_TO_PRESERVE_AT_COPY', []))
fields_to_discard = set(getattr(model, 'FIELDS_TO_DISCARD_AT_COPY', []))
m2m_to_preserve = {}
o2m_to_preserve = {}
create_kwargs = create_kwargs or {}
for field_name in fields_to_discard:
create_kwargs.pop(field_name, None)
for field in model._meta.get_fields():
try:
field_val = getattr(obj, field.name)
except AttributeError:
continue
# Adjust copy blacklist fields here.
if field.name in fields_to_discard or field.name in [
'id', 'pk', 'polymorphic_ctype', 'unifiedjobtemplate_ptr', 'created_by', 'modified_by'
] or field.name.endswith('_role'):
create_kwargs.pop(field.name, None)
continue
if field.one_to_many:
if field.name in fields_to_preserve:
o2m_to_preserve[field.name] = field_val
elif field.many_to_many:
if field.name in fields_to_preserve and not old_parent:
m2m_to_preserve[field.name] = field_val
elif field.many_to_one and not field_val:
create_kwargs.pop(field.name, None)
elif field.many_to_one and field_val == old_parent:
create_kwargs[field.name] = new_parent
elif field.name == 'name' and not old_parent:
create_kwargs[field.name] = copy_name or field_val + ' copy'
elif field.name in fields_to_preserve:
create_kwargs[field.name] = CopyAPIView._decrypt_model_field_if_needed(
obj, field.name, field_val
)
new_obj = model.objects.create(**create_kwargs)
# Need to save separatedly because Djang-crum get_current_user would
# not work properly in non-request-response-cycle context.
new_obj.created_by = creater
new_obj.save()
for m2m in m2m_to_preserve:
for related_obj in m2m_to_preserve[m2m].all():
getattr(new_obj, m2m).add(related_obj)
if not old_parent:
sub_objects = []
for o2m in o2m_to_preserve:
for sub_obj in o2m_to_preserve[o2m].all():
sub_model = type(sub_obj)
sub_objects.append((sub_model.__module__, sub_model.__name__, sub_obj.pk))
return new_obj, sub_objects
ret = {obj: new_obj}
for o2m in o2m_to_preserve:
for sub_obj in o2m_to_preserve[o2m].all():
ret.update(CopyAPIView.copy_model_obj(obj, new_obj, type(sub_obj), sub_obj, creater))
return ret
def get(self, request, *args, **kwargs):
obj = self.get_object()
create_kwargs = self._build_create_dict(obj)
for key in create_kwargs:
create_kwargs[key] = getattr(create_kwargs[key], 'pk', None) or create_kwargs[key]
return Response({'can_copy': request.user.can_access(self.model, 'add', create_kwargs)})
def post(self, request, *args, **kwargs):
obj = self.get_object()
create_kwargs = self._build_create_dict(obj)
create_kwargs_check = {}
for key in create_kwargs:
create_kwargs_check[key] = getattr(create_kwargs[key], 'pk', None) or create_kwargs[key]
if not request.user.can_access(self.model, 'add', create_kwargs_check):
raise PermissionDenied()
serializer = self.get_serializer(data=request.data)
if not serializer.is_valid():
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
new_obj, sub_objs = CopyAPIView.copy_model_obj(
None, None, self.model, obj, request.user, create_kwargs=create_kwargs,
copy_name=serializer.validated_data.get('name', '')
)
if hasattr(new_obj, 'admin_role') and request.user not in new_obj.admin_role:
new_obj.admin_role.members.add(request.user)
if sub_objs:
permission_check_func = None
if hasattr(type(self), 'deep_copy_permission_check_func'):
permission_check_func = (
type(self).__module__, type(self).__name__, 'deep_copy_permission_check_func'
)
trigger_delayed_deep_copy(
self.model.__module__, self.model.__name__,
obj.pk, new_obj.pk, request.user.pk, sub_objs,
permission_check_func=permission_check_func
)
serializer = self._get_copy_return_serializer(new_obj)
return Response(serializer.data, status=status.HTTP_201_CREATED)

View File

@@ -44,9 +44,9 @@ class Metadata(metadata.SimpleMetadata):
if placeholder is not serializers.empty:
field_info['placeholder'] = placeholder
# Update help text for common fields.
serializer = getattr(field, 'parent', None)
if serializer:
if serializer and hasattr(serializer, 'Meta') and hasattr(serializer.Meta, 'model'):
# Update help text for common fields.
field_help_text = {
'id': _('Database ID for this {}.'),
'name': _('Name of this {}.'),
@@ -59,10 +59,18 @@ class Metadata(metadata.SimpleMetadata):
'modified': _('Timestamp when this {} was last modified.'),
}
if field.field_name in field_help_text:
if hasattr(serializer, 'Meta') and hasattr(serializer.Meta, 'model'):
opts = serializer.Meta.model._meta.concrete_model._meta
verbose_name = smart_text(opts.verbose_name)
field_info['help_text'] = field_help_text[field.field_name].format(verbose_name)
opts = serializer.Meta.model._meta.concrete_model._meta
verbose_name = smart_text(opts.verbose_name)
field_info['help_text'] = field_help_text[field.field_name].format(verbose_name)
# If field is not part of the model, then show it as non-filterable
else:
is_model_field = False
for model_field in serializer.Meta.model._meta.fields:
if field.field_name == model_field.name:
is_model_field = True
break
if not is_model_field:
field_info['filterable'] = False
# Indicate if a field has a default value.
# FIXME: Still isn't showing all default values?
@@ -89,7 +97,7 @@ class Metadata(metadata.SimpleMetadata):
# Special handling of inventory source_region choices that vary based on
# selected inventory source.
if field.field_name == 'source_regions':
for cp in ('azure', 'ec2', 'gce'):
for cp in ('azure_rm', 'ec2', 'gce'):
get_regions = getattr(InventorySource, 'get_%s_region_choices' % cp)
field_info['%s_region_choices' % cp] = get_regions()
@@ -190,23 +198,6 @@ class Metadata(metadata.SimpleMetadata):
finally:
delattr(view, '_request')
# Add version number in which view was added to Tower.
added_in_version = '1.2'
for version in ('3.2.0', '3.1.0', '3.0.0', '2.4.0', '2.3.0', '2.2.0',
'2.1.0', '2.0.0', '1.4.8', '1.4.5', '1.4', '1.3'):
if getattr(view, 'new_in_%s' % version.replace('.', ''), False):
added_in_version = version
break
metadata['added_in_version'] = added_in_version
# Add API version number in which view was added to Tower.
added_in_api_version = 'v1'
for version in ('v2',):
if getattr(view, 'new_in_api_%s' % version, False):
added_in_api_version = version
break
metadata['added_in_api_version'] = added_in_api_version
# Add type(s) handled by this view/serializer.
if hasattr(view, 'get_serializer'):
serializer = view.get_serializer()

View File

@@ -1,7 +1,6 @@
# Python
from collections import OrderedDict
import json
import yaml
# Django
from django.conf import settings
@@ -13,36 +12,6 @@ from rest_framework import parsers
from rest_framework.exceptions import ParseError
class OrderedDictLoader(yaml.SafeLoader):
"""
This yaml loader is used to deal with current pyYAML (3.12) not supporting
custom object pairs hook. Remove it when new version adds that support.
"""
def construct_mapping(self, node, deep=False):
if isinstance(node, yaml.nodes.MappingNode):
self.flatten_mapping(node)
else:
raise yaml.constructor.ConstructorError(
None, None,
"expected a mapping node, but found %s" % node.id,
node.start_mark
)
mapping = OrderedDict()
for key_node, value_node in node.value:
key = self.construct_object(key_node, deep=deep)
try:
hash(key)
except TypeError, exc:
raise yaml.constructor.ConstructorError(
"while constructing a mapping", node.start_mark,
"found unacceptable key (%s)" % exc, key_node.start_mark
)
value = self.construct_object(value_node, deep=deep)
mapping[key] = value
return mapping
class JSONParser(parsers.JSONParser):
"""
Parses JSON-serialized data, preserving order of dictionary keys.

View File

@@ -17,7 +17,7 @@ logger = logging.getLogger('awx.api.permissions')
__all__ = ['ModelAccessPermission', 'JobTemplateCallbackPermission',
'TaskPermission', 'ProjectUpdatePermission', 'InventoryInventorySourcesUpdatePermission',
'UserPermission', 'IsSuperUser']
'UserPermission', 'IsSuperUser', 'InstanceGroupTowerPermission',]
class ModelAccessPermission(permissions.BasePermission):
@@ -34,7 +34,7 @@ class ModelAccessPermission(permissions.BasePermission):
def check_get_permissions(self, request, view, obj=None):
if hasattr(view, 'parent_model'):
parent_obj = get_object_or_400(view.parent_model, pk=view.kwargs['pk'])
parent_obj = view.get_parent_object()
if not check_user_access(request.user, view.parent_model, 'read',
parent_obj):
return False
@@ -44,22 +44,26 @@ class ModelAccessPermission(permissions.BasePermission):
def check_post_permissions(self, request, view, obj=None):
if hasattr(view, 'parent_model'):
parent_obj = get_object_or_400(view.parent_model, pk=view.kwargs['pk'])
parent_obj = view.get_parent_object()
if not check_user_access(request.user, view.parent_model, 'read',
parent_obj):
return False
if hasattr(view, 'parent_key'):
if not check_user_access(request.user, view.model, 'add', {view.parent_key: parent_obj.pk}):
if not check_user_access(request.user, view.model, 'add', {view.parent_key: parent_obj}):
return False
return True
elif getattr(view, 'is_job_start', False):
elif hasattr(view, 'obj_permission_type'):
# Generic object-centric view permission check without object not needed
if not obj:
return True
return check_user_access(request.user, view.model, 'start', obj)
elif getattr(view, 'is_job_cancel', False):
if not obj:
return True
return check_user_access(request.user, view.model, 'cancel', obj)
# Permission check that happens when get_object() is called
extra_kwargs = {}
if view.obj_permission_type == 'admin':
extra_kwargs['data'] = {}
return check_user_access(
request.user, view.model, view.obj_permission_type, obj,
**extra_kwargs
)
else:
if obj:
return True
@@ -99,7 +103,8 @@ class ModelAccessPermission(permissions.BasePermission):
return False
# Always allow superusers
if getattr(view, 'always_allow_superuser', True) and request.user.is_superuser:
if getattr(view, 'always_allow_superuser', True) and request.user.is_superuser \
and not hasattr(request.user, 'oauth_scopes'):
return True
# Check if view supports the request method before checking permission
@@ -222,3 +227,11 @@ class IsSuperUser(permissions.BasePermission):
def has_permission(self, request, view):
return request.user and request.user.is_superuser
class InstanceGroupTowerPermission(ModelAccessPermission):
def has_object_permission(self, request, view, obj):
if request.method == 'DELETE' and obj.name == "tower":
return False
return super(InstanceGroupTowerPermission, self).has_object_permission(request, view, obj)

View File

@@ -5,6 +5,8 @@
from rest_framework import renderers
from rest_framework.request import override_method
import six
class BrowsableAPIRenderer(renderers.BrowsableAPIRenderer):
'''
@@ -48,7 +50,8 @@ class BrowsableAPIRenderer(renderers.BrowsableAPIRenderer):
obj = getattr(view, 'object', None)
if obj is None and hasattr(view, 'get_object') and hasattr(view, 'retrieve'):
try:
obj = view.get_object()
view.object = view.get_object()
obj = view.object
except Exception:
obj = None
with override_method(view, request, method) as request:
@@ -68,8 +71,8 @@ class PlainTextRenderer(renderers.BaseRenderer):
format = 'txt'
def render(self, data, media_type=None, renderer_context=None):
if not isinstance(data, basestring):
data = unicode(data)
if not isinstance(data, six.string_types):
data = six.text_type(data)
return data.encode(self.charset)

File diff suppressed because it is too large Load Diff

103
awx/api/swagger.py Normal file
View File

@@ -0,0 +1,103 @@
import json
import warnings
from coreapi.document import Object, Link
from rest_framework import exceptions
from rest_framework.permissions import AllowAny
from rest_framework.renderers import CoreJSONRenderer
from rest_framework.response import Response
from rest_framework.schemas import SchemaGenerator, AutoSchema as DRFAuthSchema
from rest_framework.views import APIView
from rest_framework_swagger import renderers
class AutoSchema(DRFAuthSchema):
def get_link(self, path, method, base_url):
link = super(AutoSchema, self).get_link(path, method, base_url)
try:
serializer = self.view.get_serializer()
except Exception:
serializer = None
warnings.warn('{}.get_serializer() raised an exception during '
'schema generation. Serializer fields will not be '
'generated for {} {}.'
.format(self.view.__class__.__name__, method, path))
link.__dict__['deprecated'] = getattr(self.view, 'deprecated', False)
# auto-generate a topic/tag for the serializer based on its model
if hasattr(self.view, 'swagger_topic'):
link.__dict__['topic'] = str(self.view.swagger_topic).title()
elif serializer and hasattr(serializer, 'Meta'):
link.__dict__['topic'] = str(
serializer.Meta.model._meta.verbose_name_plural
).title()
elif hasattr(self.view, 'model'):
link.__dict__['topic'] = str(self.view.model._meta.verbose_name_plural).title()
else:
warnings.warn('Could not determine a Swagger tag for path {}'.format(path))
return link
def get_description(self, path, method):
self.view._request = self.view.request
setattr(self.view.request, 'swagger_method', method)
description = super(AutoSchema, self).get_description(path, method)
return description
class SwaggerSchemaView(APIView):
_ignore_model_permissions = True
exclude_from_schema = True
permission_classes = [AllowAny]
renderer_classes = [
CoreJSONRenderer,
renderers.OpenAPIRenderer,
renderers.SwaggerUIRenderer
]
def get(self, request):
generator = SchemaGenerator(
title='Ansible Tower API',
patterns=None,
urlconf=None
)
schema = generator.get_schema(request=request)
# python core-api doesn't support the deprecation yet, so track it
# ourselves and return it in a response header
_deprecated = []
# By default, DRF OpenAPI serialization places all endpoints in
# a single node based on their root path (/api). Instead, we want to
# group them by topic/tag so that they're categorized in the rendered
# output
document = schema._data.pop('api')
for path, node in document.items():
if isinstance(node, Object):
for action in node.values():
topic = getattr(action, 'topic', None)
if topic:
schema._data.setdefault(topic, Object())
schema._data[topic]._data[path] = node
if isinstance(action, Object):
for link in action.links.values():
if link.deprecated:
_deprecated.append(link.url)
elif isinstance(node, Link):
topic = getattr(node, 'topic', None)
if topic:
schema._data.setdefault(topic, Object())
schema._data[topic]._data[path] = node
if not schema:
raise exceptions.ValidationError(
'The schema generator did not return a schema Document'
)
return Response(
schema,
headers={'X-Deprecated-Paths': json.dumps(_deprecated)}
)

View File

@@ -1,9 +1,9 @@
The resulting data structure contains:
{
"count": 99,
"next": null,
"previous": null,
"count": 99,
"next": null,
"previous": null,
"results": [
...
]
@@ -60,6 +60,11 @@ _Added in AWX 1.4_
?related__search=findme
Note: If you want to provide more than one search term, multiple
search fields with the same key, like `?related__search=foo&related__search=bar`,
will be ORed together. Terms separated by commas, like `?related__search=foo,bar`
will be ANDed together.
## Filtering
Any additional query string parameters may be used to filter the list of
@@ -70,7 +75,7 @@ in the specified value should be url-encoded. For example:
?field=value%20xyz
Fields may also span relations, only for fields and relationships defined in
the database:
the database:
?other__field=value

View File

@@ -1,13 +0,0 @@
{% if not version_label_flag or version_label_flag == 'true' %}
{% if new_in_13 %}> _Added in AWX 1.3_{% endif %}
{% if new_in_14 %}> _Added in AWX 1.4_{% endif %}
{% if new_in_145 %}> _Added in Ansible Tower 1.4.5_{% endif %}
{% if new_in_148 %}> _Added in Ansible Tower 1.4.8_{% endif %}
{% if new_in_200 %}> _Added in Ansible Tower 2.0.0_{% endif %}
{% if new_in_220 %}> _Added in Ansible Tower 2.2.0_{% endif %}
{% if new_in_230 %}> _Added in Ansible Tower 2.3.0_{% endif %}
{% if new_in_240 %}> _Added in Ansible Tower 2.4.0_{% endif %}
{% if new_in_300 %}> _Added in Ansible Tower 3.0.0_{% endif %}
{% if new_in_310 %}> _New in Ansible Tower 3.1.0_{% endif %}
{% if new_in_320 %}> _New in Ansible Tower 3.2.0_{% endif %}
{% endif %}

View File

@@ -0,0 +1,3 @@
Relaunch an Ad Hoc Command:
Make a POST request to this resource to launch a job. If any passwords or variables are required then they should be passed in via POST data. In order to determine what values are required in order to launch a job based on this job template you may make a GET request to this endpoint.

View File

@@ -0,0 +1,122 @@
# Token Handling using OAuth2
This page lists OAuth 2 utility endpoints used for authorization, token refresh and revoke.
Note endpoints other than `/api/o/authorize/` are not meant to be used in browsers and do not
support HTTP GET. The endpoints here strictly follow
[RFC specs for OAuth2](https://tools.ietf.org/html/rfc6749), so please use that for detailed
reference. Note AWX net location default to `http://localhost:8013` in examples:
## Create Token for an Application using Authorization code grant type
Given an application "AuthCodeApp" of grant type `authorization-code`,
from the client app, the user makes a GET to the Authorize endpoint with
* `response_type`
* `client_id`
* `redirect_uris`
* `scope`
AWX will respond with the authorization `code` and `state`
to the redirect_uri specified in the application. The client application will then make a POST to the
`api/o/token/` endpoint on AWX with
* `code`
* `client_id`
* `client_secret`
* `grant_type`
* `redirect_uri`
AWX will respond with the `access_token`, `token_type`, `refresh_token`, and `expires_in`. For more
information on testing this flow, refer to [django-oauth-toolkit](http://django-oauth-toolkit.readthedocs.io/en/latest/tutorial/tutorial_01.html#test-your-authorization-server).
## Create Token for an Application using Implicit grant type
Suppose we have an application "admin's app" of grant type `implicit`.
In API browser, first make sure the user is logged in via session auth, then visit authorization
endpoint with given parameters:
```text
http://localhost:8013/api/o/authorize/?response_type=token&client_id=L0uQQWW8pKX51hoqIRQGsuqmIdPi2AcXZ9EJRGmj&scope=read
```
Here the value of `client_id` should be the same as that of `client_id` field of underlying application.
On success, an authorization page should be displayed asking the logged in user to grant/deny the access token.
Once the user clicks on 'grant', the API browser will try POSTing to the same endpoint with the same parameters
in POST body, on success a 302 redirect will be returned.
## Create Token for an Application using Password grant type
Log in is not required for `password` grant type, so a simple `curl` can be used to acquire a personal access token
via `/api/o/token/` with
* `grant_type`: Required to be "password"
* `username`
* `password`
* `client_id`: Associated application must have grant_type "password"
* `client_secret`
For example:
```bash
curl -X POST \
-d "grant_type=password&username=<username>&password=<password>&scope=read" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569e
IaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://localhost:8013/api/o/token/ -i
```
In the above post request, parameters `username` and `password` are username and password of the related
AWX user of the underlying application, and the authentication information is of format
`<client_id>:<client_secret>`, where `client_id` and `client_secret` are the corresponding fields of
underlying application.
Upon success, access token, refresh token and other information are given in the response body in JSON
format:
```text
{
"access_token": "9epHOqHhnXUcgYK8QanOmUQPSgX92g",
"token_type": "Bearer",
"expires_in": 31536000000,
"refresh_token": "jMRX6QvzOTf046KHee3TU5mT3nyXsz",
"scope": "read"
}
```
## Refresh an existing access token
The `/api/o/token/` endpoint is used for refreshing access token:
```bash
curl -X POST \
-d "grant_type=refresh_token&refresh_token=AL0NK9TTpv0qp54dGbC4VUZtsZ9r8z" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://localhost:8013/api/o/token/ -i
```
In the above post request, `refresh_token` is provided by `refresh_token` field of the access token
above. The authentication information is of format `<client_id>:<client_secret>`, where `client_id`
and `client_secret` are the corresponding fields of underlying related application of the access token.
Upon success, the new (refreshed) access token with the same scope information as the previous one is
given in the response body in JSON format:
```text
{
"access_token": "NDInWxGJI4iZgqpsreujjbvzCfJqgR",
"token_type": "Bearer",
"expires_in": 31536000000,
"refresh_token": "DqOrmz8bx3srlHkZNKmDpqA86bnQkT",
"scope": "read write"
}
```
Internally, the refresh operation deletes the existing token and a new token is created immediately
after, with information like scope and related application identical to the original one. We can
verify by checking the new token is present at the `api/v2/tokens` endpoint.
## Revoke an access token
Revoking an access token is the same as deleting the token resource object.
Revoking is done by POSTing to `/api/o/revoke_token/` with the token to revoke as parameter:
```bash
curl -X POST -d "token=rQONsve372fQwuc2pn76k3IHDCYpi7" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://localhost:8013/api/o/revoke_token/ -i
```
`200 OK` means a successful delete.

View File

@@ -1,4 +1,5 @@
Site configuration settings and general information.
{% ifmeth GET %}
# Site configuration settings and general information
Make a GET request to this resource to retrieve the configuration containing
the following fields (some fields may not be visible to all users):
@@ -11,6 +12,10 @@ the following fields (some fields may not be visible to all users):
* `license_info`: Information about the current license.
* `version`: Version of Ansible Tower package installed.
* `eula`: The current End-User License Agreement
{% endifmeth %}
{% ifmeth POST %}
# Install or update an existing license
(_New in Ansible Tower 2.0.0_) Make a POST request to this resource as a super
user to install or update the existing license. The license data itself can
@@ -18,3 +23,11 @@ be POSTed as a normal json data structure.
(_New in Ansible Tower 2.1.1_) The POST must include a `eula_accepted` boolean
element indicating acceptance of the End-User License Agreement.
{% endifmeth %}
{% ifmeth DELETE %}
# Delete an existing license
(_New in Ansible Tower 2.0.0_) Make a DELETE request to this resource as a super
user to delete the existing license
{% endifmeth %}

View File

@@ -1,3 +1 @@
{{ docstring }}
{% include "api/_new_in_awx.md" %}

View File

@@ -1,37 +0,0 @@
Make a POST request to this resource with `username` and `password` fields to
obtain an authentication token to use for subsequent requests.
Example JSON to POST (content type is `application/json`):
{"username": "user", "password": "my pass"}
Example form data to post (content type is `application/x-www-form-urlencoded`):
username=user&password=my%20pass
If the username and password provided are valid, the response will contain a
`token` field with the authentication token to use and an `expires` field with
the timestamp when the token will expire:
{
"token": "8f17825cf08a7efea124f2638f3896f6637f8745",
"expires": "2013-09-05T21:46:35.729Z"
}
Otherwise, the response will indicate the error that occurred and return a 4xx
status code.
For subsequent requests, pass the token via the HTTP `Authorization` request
header:
Authorization: Token 8f17825cf08a7efea124f2638f3896f6637f8745
The auth token is only valid when used from the same remote address and user
agent that originally obtained it.
Each request that uses the token for authentication will refresh its expiration
timestamp and keep it from expiring. A token only expires when it is not used
for the configured timeout interval (default 1800 seconds).
A DELETE request with the token set will cause the token to be invalidated and
no further requests can be made with it.

View File

@@ -1,9 +1,13 @@
{% ifmeth GET %}
# Retrieve {{ model_verbose_name|title }} Variable Data:
Make a GET request to this resource to retrieve all variables defined for this
Make a GET request to this resource to retrieve all variables defined for a
{{ model_verbose_name }}.
{% endifmeth %}
{% ifmeth PUT PATCH %}
# Update {{ model_verbose_name|title }} Variable Data:
Make a PUT request to this resource to update variables defined for this
Make a PUT or PATCH request to this resource to update variables defined for a
{{ model_verbose_name }}.
{% endifmeth %}

View File

@@ -38,5 +38,3 @@ Data about failed and successfull hosts by inventory will be given as:
"id": 2,
"name": "Test Inventory"
},
{% include "api/_new_in_awx.md" %}

View File

@@ -1,3 +1,5 @@
# View Statistics for Job Runs
Make a GET request to this resource to retrieve aggregate statistics about job runs suitable for graphing.
## Parmeters and Filtering
@@ -33,5 +35,3 @@ Data will be returned in the following format:
Each element contains an epoch timestamp represented in seconds and a numerical value indicating
the number of events during that time period
{% include "api/_new_in_awx.md" %}

View File

@@ -1,3 +1 @@
Make a GET request to this resource to retrieve aggregate statistics for Tower.
{% include "api/_new_in_awx.md" %}

View File

@@ -1,4 +1,4 @@
# List All {{ model_verbose_name_plural|title }} for this {{ parent_model_verbose_name|title }}:
# List All {{ model_verbose_name_plural|title }} for {{ parent_model_verbose_name|title|anora }}:
Make a GET request to this resource to retrieve a list of all
{{ model_verbose_name_plural }} directly or indirectly belonging to this

View File

@@ -1,9 +1,7 @@
# List Potential Child Groups for this {{ parent_model_verbose_name|title }}:
# List Potential Child Groups for {{ parent_model_verbose_name|title|anora }}:
Make a GET request to this resource to retrieve a list of
{{ model_verbose_name_plural }} available to be added as children of the
current {{ parent_model_verbose_name }}.
{% include "api/_list_common.md" %}
{% include "api/_new_in_awx.md" %}

View File

@@ -1,4 +1,4 @@
# List All {{ model_verbose_name_plural|title }} for this {{ parent_model_verbose_name|title }}:
# List All {{ model_verbose_name_plural|title }} for {{ parent_model_verbose_name|title|anora }}:
Make a GET request to this resource to retrieve a list of all
{{ model_verbose_name_plural }} of which the selected

View File

@@ -1,3 +1,5 @@
# List Fact Scans for a Host Specific Host Scan
Make a GET request to this resource to retrieve system tracking data for a particular scan
You may filter by datetime:
@@ -7,5 +9,3 @@ You may filter by datetime:
and module
`?datetime=2015-06-01&module=ansible`
{% include "api/_new_in_awx.md" %}

View File

@@ -1,3 +1,5 @@
# List Fact Scans for a Host by Module and Date
Make a GET request to this resource to retrieve system tracking scans by module and date/time
You may filter scan runs using the `from` and `to` properties:
@@ -7,5 +9,3 @@ You may filter scan runs using the `from` and `to` properties:
You may also filter by module
`?module=packages`
{% include "api/_new_in_awx.md" %}

View File

@@ -0,0 +1 @@
# List Red Hat Insights for a Host

View File

@@ -29,5 +29,3 @@ Response code from this action will be:
- 202 if some inventory source updates were successful, but some failed
- 400 if all of the inventory source updates failed
- 400 if there are no inventory sources in the inventory
{% include "api/_new_in_awx.md" %}

View File

@@ -1,7 +1,9 @@
# List Root {{ model_verbose_name_plural|title }} for this {{ parent_model_verbose_name|title }}:
{% ifmeth GET %}
# List Root {{ model_verbose_name_plural|title }} for {{ parent_model_verbose_name|title|anora }}:
Make a GET request to this resource to retrieve a list of root (top-level)
{{ model_verbose_name_plural }} associated with this
{{ parent_model_verbose_name }}.
{% include "api/_list_common.md" %}
{% endifmeth %}

View File

@@ -9,5 +9,3 @@ cancelled. The response will include the following field:
Make a POST request to this resource to cancel a pending or running inventory
update. The response status code will be 202 if successful, or 405 if the
update cannot be canceled.
{% include "api/_new_in_awx.md" %}

View File

@@ -9,5 +9,3 @@ from its inventory source. The response will include the following field:
Make a POST request to this resource to update the inventory source. If
successful, the response status code will be 202. If the inventory source is
not defined or cannot be updated, a 405 status code will be returned.
{% include "api/_new_in_awx.md" %}

View File

@@ -1,4 +1,4 @@
# Group Tree for this {{ model_verbose_name|title }}:
# Group Tree for {{ model_verbose_name|title|anora }}:
Make a GET request to this resource to retrieve a hierarchical view of groups
associated with the selected {{ model_verbose_name }}.
@@ -11,5 +11,3 @@ also containing a list of its children.
Each group data structure includes the following fields:
{% include "api/_result_fields_common.md" %}
{% include "api/_new_in_awx.md" %}

View File

@@ -1,10 +1,15 @@
# Cancel Job
{% ifmeth GET %}
# Determine if a Job can be cancelled
Make a GET request to this resource to determine if the job can be cancelled.
The response will include the following field:
* `can_cancel`: Indicates whether this job can be canceled (boolean, read-only)
{% endifmeth %}
{% ifmeth POST %}
# Cancel a Job
Make a POST request to this resource to cancel a pending or running job. The
response status code will be 202 if successful, or 405 if the job cannot be
canceled.
{% endifmeth %}

View File

@@ -0,0 +1,12 @@
Create a schedule based on a job:
Make a POST request to this endpoint to create a schedule that launches
the job template that launched this job, and uses the same
parameters that the job was launched with. These parameters include all
"prompted" resources such as `extra_vars`, `inventory`, `limit`, etc.
Jobs that were launched with user-provided passwords cannot have a schedule
created from them.
Make a GET request for information about what those prompts are and
whether or not a schedule can be created.

View File

@@ -23,5 +23,3 @@ Will show only failed plays. Alternatively `false` may be used.
?play__icontains=test
Will filter plays matching the substring `test`
{% include "api/_new_in_awx.md" %}

View File

@@ -25,5 +25,3 @@ Will show only failed plays. Alternatively `false` may be used.
?task__icontains=test
Will filter tasks matching the substring `test`
{% include "api/_new_in_awx.md" %}

View File

@@ -1,3 +1,3 @@
Relaunch a job:
Relaunch a Job:
Make a POST request to this resource to launch a job. If any passwords or variables are required then they should be passed in via POST data. In order to determine what values are required in order to launch a job based on this job template you may make a GET request to this endpoint.
Make a POST request to this resource to launch a job. If any passwords or variables are required then they should be passed in via POST data. In order to determine what values are required in order to launch a job based on this job template you may make a GET request to this endpoint.

View File

@@ -1,4 +1,5 @@
# Start Job
{% ifmeth GET %}
# Determine if a Job can be started
Make a GET request to this resource to determine if the job can be started and
whether any passwords are required to start the job. The response will include
@@ -7,10 +8,14 @@ the following fields:
* `can_start`: Flag indicating if this job can be started (boolean, read-only)
* `passwords_needed_to_start`: Password names required to start the job (array,
read-only)
{% endifmeth %}
{% ifmeth POST %}
# Start a Job
Make a POST request to this resource to start the job. If any passwords are
required, they must be passed via POST data.
If successful, the response status code will be 202. If any required passwords
are not provided, a 400 status code will be returned. If the job cannot be
started, a 405 status code will be returned.
{% endifmeth %}

View File

@@ -1,13 +1,7 @@
{% with 'false' as version_label_flag %}
{% include "api/sub_list_create_api_view.md" %}
{% endwith %}
Labels not associated with any other resources are deleted. A label can become disassociated with a resource as a result of 3 events.
1. A label is explicitly disassociated with a related job template
2. A job is deleted with labels
3. A cleanup job deletes a job with labels
{% with 'true' as version_label_flag %}
{% include "api/_new_in_awx.md" %}
{% endwith %}

View File

@@ -26,9 +26,6 @@ The response will include the following fields:
job_template (array, read-only)
* `survey_enabled`: Flag indicating whether the job_template has an enabled
survey (boolean, read-only)
* `credential_needed_to_start`: Flag indicating the presence of a credential
associated with the job template. If not then one should be supplied when
launching the job (boolean, read-only)
* `inventory_needed_to_start`: Flag indicating the presence of an inventory
associated with the job template. If not then one should be supplied when
launching the job (boolean, read-only)
@@ -36,9 +33,8 @@ The response will include the following fields:
Make a POST request to this resource to launch the job_template. If any
passwords, inventory, or extra variables (extra_vars) are required, they must
be passed via POST data, with extra_vars given as a YAML or JSON string and
escaped parentheses. If `credential_needed_to_start` is `True` then the
`credential` field is required and if the `inventory_needed_to_start` is
`True` then the `inventory` is required as well.
escaped parentheses. If the `inventory_needed_to_start` is `True` then the
`inventory` is required.
If successful, the response status code will be 201. If any required passwords
are not provided, a 400 status code will be returned. If the job cannot be

View File

@@ -1,8 +1,8 @@
{% ifmeth GET %}
# List {{ model_verbose_name_plural|title }}:
Make a GET request to this resource to retrieve the list of
{{ model_verbose_name_plural }}.
{% include "api/_list_common.md" %}
{% include "api/_new_in_awx.md" %}
{% endifmeth %}

View File

@@ -1,6 +1,6 @@
{% include "api/list_api_view.md" %}
# Create {{ model_verbose_name_plural|title }}:
# Create {{ model_verbose_name|title|anora }}:
Make a POST request to this resource with the following {{ model_verbose_name }}
fields to create a new {{ model_verbose_name }}:
@@ -8,5 +8,3 @@ fields to create a new {{ model_verbose_name }}:
{% with write_only=1 %}
{% include "api/_result_fields_common.md" with serializer_fields=serializer_create_fields %}
{% endwith %}
{% include "api/_new_in_awx.md" %}

View File

@@ -1,4 +1,4 @@
# Retrieve {{ model_verbose_name|title }} Playbooks:
Make GET request to this resource to retrieve a list of playbooks available
for this {{ model_verbose_name }}.
for {{ model_verbose_name|anora }}.

View File

@@ -9,5 +9,3 @@ cancelled. The response will include the following field:
Make a POST request to this resource to cancel a pending or running project
update. The response status code will be 202 if successful, or 405 if the
update cannot be canceled.
{% include "api/_new_in_awx.md" %}

View File

@@ -8,5 +8,3 @@ from its SCM source. The response will include the following field:
Make a POST request to this resource to update the project. If the project
cannot be updated, a 405 status code will be returned.
{% include "api/_new_in_awx.md" %}

View File

@@ -2,11 +2,9 @@
### Note: starting from api v2, this resource object can be accessed via its named URL.
{% endif %}
# Retrieve {{ model_verbose_name|title }}:
# Retrieve {{ model_verbose_name|title|anora }}:
Make GET request to this resource to retrieve a single {{ model_verbose_name }}
record containing the following fields:
{% include "api/_result_fields_common.md" %}
{% include "api/_new_in_awx.md" %}

View File

@@ -2,15 +2,17 @@
### Note: starting from api v2, this resource object can be accessed via its named URL.
{% endif %}
# Retrieve {{ model_verbose_name|title }}:
{% ifmeth GET %}
# Retrieve {{ model_verbose_name|title|anora }}:
Make GET request to this resource to retrieve a single {{ model_verbose_name }}
record containing the following fields:
{% include "api/_result_fields_common.md" %}
{% endifmeth %}
# Delete {{ model_verbose_name|title }}:
{% ifmeth DELETE %}
# Delete {{ model_verbose_name|title|anora }}:
Make a DELETE request to this resource to delete this {{ model_verbose_name }}.
{% include "api/_new_in_awx.md" %}
{% endifmeth %}

View File

@@ -2,14 +2,17 @@
### Note: starting from api v2, this resource object can be accessed via its named URL.
{% endif %}
# Retrieve {{ model_verbose_name|title }}:
{% ifmeth GET %}
# Retrieve {{ model_verbose_name|title|anora }}:
Make GET request to this resource to retrieve a single {{ model_verbose_name }}
record containing the following fields:
{% include "api/_result_fields_common.md" %}
{% endifmeth %}
# Update {{ model_verbose_name|title }}:
{% ifmeth PUT PATCH %}
# Update {{ model_verbose_name|title|anora }}:
Make a PUT or PATCH request to this resource to update this
{{ model_verbose_name }}. The following fields may be modified:
@@ -17,9 +20,12 @@ Make a PUT or PATCH request to this resource to update this
{% with write_only=1 %}
{% include "api/_result_fields_common.md" with serializer_fields=serializer_update_fields %}
{% endwith %}
{% endifmeth %}
{% ifmeth PUT %}
For a PUT request, include **all** fields in the request.
{% endifmeth %}
{% ifmeth PATCH %}
For a PATCH request, include only the fields that are being modified.
{% include "api/_new_in_awx.md" %}
{% endifmeth %}

View File

@@ -2,14 +2,17 @@
### Note: starting from api v2, this resource object can be accessed via its named URL.
{% endif %}
# Retrieve {{ model_verbose_name|title }}:
{% ifmeth GET %}
# Retrieve {{ model_verbose_name|title|anora }}:
Make GET request to this resource to retrieve a single {{ model_verbose_name }}
record containing the following fields:
{% include "api/_result_fields_common.md" %}
{% endifmeth %}
# Update {{ model_verbose_name|title }}:
{% ifmeth PUT PATCH %}
# Update {{ model_verbose_name|title|anora }}:
Make a PUT or PATCH request to this resource to update this
{{ model_verbose_name }}. The following fields may be modified:
@@ -17,13 +20,18 @@ Make a PUT or PATCH request to this resource to update this
{% with write_only=1 %}
{% include "api/_result_fields_common.md" with serializer_fields=serializer_update_fields %}
{% endwith %}
{% endifmeth %}
{% ifmeth PUT %}
For a PUT request, include **all** fields in the request.
{% endifmeth %}
{% ifmeth PATCH %}
For a PATCH request, include only the fields that are being modified.
{% endifmeth %}
# Delete {{ model_verbose_name|title }}:
{% ifmeth DELETE %}
# Delete {{ model_verbose_name|title|anora }}:
Make a DELETE request to this resource to delete this {{ model_verbose_name }}.
{% include "api/_new_in_awx.md" %}
{% endifmeth %}

View File

@@ -0,0 +1 @@
# Test Logging Configuration

View File

@@ -1,9 +1,9 @@
# List {{ model_verbose_name_plural|title }} for this {{ parent_model_verbose_name|title }}:
{% ifmeth GET %}
# List {{ model_verbose_name_plural|title }} for {{ parent_model_verbose_name|title|anora }}:
Make a GET request to this resource to retrieve a list of
{{ model_verbose_name_plural }} associated with the selected
{{ parent_model_verbose_name }}.
{% include "api/_list_common.md" %}
{% include "api/_new_in_awx.md" %}
{% endifmeth %}

View File

@@ -1,6 +1,6 @@
{% include "api/sub_list_api_view.md" %}
# Create {{ model_verbose_name_plural|title }} for this {{ parent_model_verbose_name|title }}:
# Create {{ model_verbose_name|title|anora }} for {{ parent_model_verbose_name|title|anora }}:
Make a POST request to this resource with the following {{ model_verbose_name }}
fields to create a new {{ model_verbose_name }} associated with this
@@ -25,7 +25,7 @@ delete the associated {{ model_verbose_name }}.
}
{% else %}
# Add {{ model_verbose_name_plural|title }} for this {{ parent_model_verbose_name|title }}:
# Add {{ model_verbose_name_plural|title }} for {{ parent_model_verbose_name|title|anora }}:
Make a POST request to this resource with only an `id` field to associate an
existing {{ model_verbose_name }} with this {{ parent_model_verbose_name }}.
@@ -37,5 +37,3 @@ remove the {{ model_verbose_name }} from this {{ parent_model_verbose_name }}
{% if model_verbose_name != "label" %} without deleting the {{ model_verbose_name }}{% endif %}.
{% endif %}
{% endif %}
{% include "api/_new_in_awx.md" %}

View File

@@ -0,0 +1,6 @@
{% include "api/sub_list_create_api_view.md" %}
# Delete all {{ model_verbose_name_plural }} of this {{ parent_model_verbose_name|title }}:
Make a DELETE request to this resource to delete all {{ model_verbose_name_plural }} show in the list.
The {{ parent_model_verbose_name|title }} will not be deleted by this request.

View File

@@ -12,12 +12,6 @@ For example on `cleanup_jobs` and `cleanup_activitystream`:
Which will act on data older than 30 days.
For `cleanup_facts`:
`{"extra_vars": {"older_than": "4w", "granularity": "3d"}}`
Which will reduce the granularity of scan data to one scan per 3 days when the data is older than 4w.
For `cleanup_activitystream` and `cleanup_jobs` commands, providing
`"dry_run": true` inside of `extra_vars` will show items that will be
removed without deleting them.
@@ -27,7 +21,6 @@ applicable either when running it from the command line or launching its
system job template with empty `extra_vars`.
- Defaults for `cleanup_activitystream`: days=90
- Defaults for `cleanup_facts`: older_than="30d", granularity="1w"
- Defaults for `cleanup_jobs`: days=90
If successful, the response status code will be 202. If the job cannot be

View File

@@ -1,12 +1,16 @@
# List Roles for this Team:
# List Roles for a Team:
{% ifmeth GET %}
Make a GET request to this resource to retrieve a list of roles associated with the selected team.
{% include "api/_list_common.md" %}
{% endifmeth %}
{% ifmeth POST %}
# Associate Roles with this Team:
Make a POST request to this resource to add or remove a role from this team. The following fields may be modified:
* `id`: The Role ID to add to the team. (int, required)
* `disassociate`: Provide if you want to remove the role. (any value, optional)
{% endifmeth %}

View File

@@ -25,5 +25,3 @@ dark background.
Files over {{ settings.STDOUT_MAX_BYTES_DISPLAY|filesizeformat }} (configurable)
will not display in the browser. Use the `txt_download` or `ansi_download`
formats to download the file directly to view it.
{% include "api/_new_in_awx.md" %}

View File

@@ -1,3 +1,5 @@
# Retrieve Information about the current User
Make a GET request to retrieve user information about the current user.
One result should be returned containing the following fields:

View File

@@ -1,12 +1,16 @@
# List Roles for this User:
# List Roles for a User:
{% ifmeth GET %}
Make a GET request to this resource to retrieve a list of roles associated with the selected user.
{% include "api/_list_common.md" %}
{% endifmeth %}
{% ifmeth POST %}
# Associate Roles with this User:
Make a POST request to this resource to add or remove a role from this user. The following fields may be modified:
* `id`: The Role ID to add to the user. (int, required)
* `disassociate`: Provide if you want to remove the role. (any value, optional)
{% endifmeth %}

View File

@@ -1,19 +0,0 @@
ANSIBLE TOWER BY RED HAT END USER LICENSE AGREEMENT
This end user license agreement (“EULA”) governs the use of the Ansible Tower software and any related updates, upgrades, versions, appearance, structure and organization (the “Ansible Tower Software”), regardless of the delivery mechanism.
1. License Grant. Subject to the terms of this EULA, Red Hat, Inc. and its affiliates (“Red Hat”) grant to you (“You”) a non-transferable, non-exclusive, worldwide, non-sublicensable, limited, revocable license to use the Ansible Tower Software for the term of the associated Red Hat Software Subscription(s) and in a quantity equal to the number of Red Hat Software Subscriptions purchased from Red Hat for the Ansible Tower Software (“License”), each as set forth on the applicable Red Hat ordering document. You acquire only the right to use the Ansible Tower Software and do not acquire any rights of ownership. Red Hat reserves all rights to the Ansible Tower Software not expressly granted to You. This License grant pertains solely to Your use of the Ansible Tower Software and is not intended to limit Your rights under, or grant You rights that supersede, the license terms of any software packages which may be made available with the Ansible Tower Software that are subject to an open source software license.
2. Intellectual Property Rights. Title to the Ansible Tower Software and each component, copy and modification, including all derivative works whether made by Red Hat, You or on Red Hat's behalf, including those made at Your suggestion and all associated intellectual property rights, are and shall remain the sole and exclusive property of Red Hat and/or it licensors. The License does not authorize You (nor may You allow any third party, specifically non-employees of Yours) to: (a) copy, distribute, reproduce, use or allow third party access to the Ansible Tower Software except as expressly authorized hereunder; (b) decompile, disassemble, reverse engineer, translate, modify, convert or apply any procedure or process to the Ansible Tower Software in order to ascertain, derive, and/or appropriate for any reason or purpose, including the Ansible Tower Software source code or source listings or any trade secret information or process contained in the Ansible Tower Software (except as permitted under applicable law); (c) execute or incorporate other software (except for approved software as appears in the Ansible Tower Software documentation or specifically approved by Red Hat in writing) into Ansible Tower Software, or create a derivative work of any part of the Ansible Tower Software; (d) remove any trademarks, trade names or titles, copyrights legends or any other proprietary marking on the Ansible Tower Software; (e) disclose the results of any benchmarking of the Ansible Tower Software (whether or not obtained with Red Hats assistance) to any third party; (f) attempt to circumvent any user limits or other license, timing or use restrictions that are built into, defined or agreed upon, regarding the Ansible Tower Software. You are hereby notified that the Ansible Tower Software may contain time-out devices, counter devices, and/or other devices intended to ensure the limits of the License will not be exceeded (“Limiting Devices”). If the Ansible Tower Software contains Limiting Devices, Red Hat will provide You materials necessary to use the Ansible Tower Software to the extent permitted. You may not tamper with or otherwise take any action to defeat or circumvent a Limiting Device or other control measure, including but not limited to, resetting the unit amount or using false host identification number for the purpose of extending any term of the License.
3. Evaluation Licenses. Unless You have purchased Ansible Tower Software Subscriptions from Red Hat or an authorized reseller under the terms of a commercial agreement with Red Hat, all use of the Ansible Tower Software shall be limited to testing purposes and not for production use (“Evaluation”). Unless otherwise agreed by Red Hat, Evaluation of the Ansible Tower Software shall be limited to an evaluation environment and the Ansible Tower Software shall not be used to manage any systems or virtual machines on networks being used in the operation of Your business or any other non-evaluation purpose. Unless otherwise agreed by Red Hat, You shall limit all Evaluation use to a single 30 day evaluation period and shall not download or otherwise obtain additional copies of the Ansible Tower Software or license keys for Evaluation.
4. Limited Warranty. Except as specifically stated in this Section 4, to the maximum extent permitted under applicable law, the Ansible Tower Software and the components are provided and licensed “as is” without warranty of any kind, expressed or implied, including the implied warranties of merchantability, non-infringement or fitness for a particular purpose. Red Hat warrants solely to You that the media on which the Ansible Tower Software may be furnished will be free from defects in materials and manufacture under normal use for a period of thirty (30) days from the date of delivery to You. Red Hat does not warrant that the functions contained in the Ansible Tower Software will meet Your requirements or that the operation of the Ansible Tower Software will be entirely error free, appear precisely as described in the accompanying documentation, or comply with regulatory requirements.
5. Limitation of Remedies and Liability. To the maximum extent permitted by applicable law, Your exclusive remedy under this EULA is to return any defective media within thirty (30) days of delivery along with a copy of Your payment receipt and Red Hat, at its option, will replace it or refund the money paid by You for the media. To the maximum extent permitted under applicable law, neither Red Hat nor any Red Hat authorized distributor will be liable to You for any incidental or consequential damages, including lost profits or lost savings arising out of the use or inability to use the Ansible Tower Software or any component, even if Red Hat or the authorized distributor has been advised of the possibility of such damages. In no event shall Red Hat's liability or an authorized distributors liability exceed the amount that You paid to Red Hat for the Ansible Tower Software during the twelve months preceding the first event giving rise to liability.
6. Export Control. In accordance with the laws of the United States and other countries, You represent and warrant that You: (a) understand that the Ansible Tower Software and its components may be subject to export controls under the U.S. Commerce Departments Export Administration Regulations (“EAR”); (b) are not located in any country listed in Country Group E:1 in Supplement No. 1 to part 740 of the EAR; (c) will not export, re-export, or transfer the Ansible Tower Software to any prohibited destination or to any end user who has been prohibited from participating in US export transactions by any federal agency of the US government; (d) will not use or transfer the Ansible Tower Software for use in connection with the design, development or production of nuclear, chemical or biological weapons, or rocket systems, space launch vehicles, or sounding rockets or unmanned air vehicle systems; (e) understand and agree that if you are in the United States and you export or transfer the Ansible Tower Software to eligible end users, you will, to the extent required by EAR Section 740.17 obtain a license for such export or transfer and will submit semi-annual reports to the Commerce Departments Bureau of Industry and Security, which include the name and address (including country) of each transferee; and (f) understand that countries including the United States may restrict the import, use, or export of encryption products (which may include the Ansible Tower Software) and agree that you shall be solely responsible for compliance with any such import, use, or export restrictions.
7. General. If any provision of this EULA is held to be unenforceable, that shall not affect the enforceability of the remaining provisions. This agreement shall be governed by the laws of the State of New York and of the United States, without regard to any conflict of laws provisions. The rights and obligations of the parties to this EULA shall not be governed by the United Nations Convention on the International Sale of Goods.
Copyright © 2015 Red Hat, Inc. All rights reserved. "Red Hat" and “Ansible Tower” are registered trademarks of Red Hat, Inc. All other trademarks are the property of their respective owners.

View File

@@ -1,420 +0,0 @@
# Copyright (c) 2015 Ansible, Inc.
# All Rights Reserved.
# noqa
from django.conf.urls import include, patterns, url as original_url
def url(regex, view, kwargs=None, name=None, prefix=''):
# Set default name from view name (if a string).
if isinstance(view, basestring) and name is None:
name = view
return original_url(regex, view, kwargs, name, prefix)
organization_urls = patterns('awx.api.views',
url(r'^$', 'organization_list'),
url(r'^(?P<pk>[0-9]+)/$', 'organization_detail'),
url(r'^(?P<pk>[0-9]+)/users/$', 'organization_users_list'),
url(r'^(?P<pk>[0-9]+)/admins/$', 'organization_admins_list'),
url(r'^(?P<pk>[0-9]+)/inventories/$', 'organization_inventories_list'),
url(r'^(?P<pk>[0-9]+)/projects/$', 'organization_projects_list'),
url(r'^(?P<pk>[0-9]+)/workflow_job_templates/$', 'organization_workflow_job_templates_list'),
url(r'^(?P<pk>[0-9]+)/teams/$', 'organization_teams_list'),
url(r'^(?P<pk>[0-9]+)/credentials/$', 'organization_credential_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'organization_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates/$', 'organization_notification_templates_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', 'organization_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', 'organization_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', 'organization_notification_templates_success_list'),
url(r'^(?P<pk>[0-9]+)/instance_groups/$', 'organization_instance_groups_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'organization_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'organization_access_list'),
)
user_urls = patterns('awx.api.views',
url(r'^$', 'user_list'),
url(r'^(?P<pk>[0-9]+)/$', 'user_detail'),
url(r'^(?P<pk>[0-9]+)/teams/$', 'user_teams_list'),
url(r'^(?P<pk>[0-9]+)/organizations/$', 'user_organizations_list'),
url(r'^(?P<pk>[0-9]+)/admin_of_organizations/$', 'user_admin_of_organizations_list'),
url(r'^(?P<pk>[0-9]+)/projects/$', 'user_projects_list'),
url(r'^(?P<pk>[0-9]+)/credentials/$', 'user_credentials_list'),
url(r'^(?P<pk>[0-9]+)/roles/$', 'user_roles_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'user_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'user_access_list'),
)
project_urls = patterns('awx.api.views',
url(r'^$', 'project_list'),
url(r'^(?P<pk>[0-9]+)/$', 'project_detail'),
url(r'^(?P<pk>[0-9]+)/playbooks/$', 'project_playbooks'),
url(r'^(?P<pk>[0-9]+)/inventories/$', 'project_inventories'),
url(r'^(?P<pk>[0-9]+)/scm_inventory_sources/$', 'project_scm_inventory_sources'),
url(r'^(?P<pk>[0-9]+)/teams/$', 'project_teams_list'),
url(r'^(?P<pk>[0-9]+)/update/$', 'project_update_view'),
url(r'^(?P<pk>[0-9]+)/project_updates/$', 'project_updates_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'project_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/schedules/$', 'project_schedules_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', 'project_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', 'project_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', 'project_notification_templates_success_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'project_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'project_access_list'),
)
project_update_urls = patterns('awx.api.views',
url(r'^$', 'project_update_list'),
url(r'^(?P<pk>[0-9]+)/$', 'project_update_detail'),
url(r'^(?P<pk>[0-9]+)/cancel/$', 'project_update_cancel'),
url(r'^(?P<pk>[0-9]+)/stdout/$', 'project_update_stdout'),
url(r'^(?P<pk>[0-9]+)/scm_inventory_updates/$', 'project_update_scm_inventory_updates'),
url(r'^(?P<pk>[0-9]+)/notifications/$', 'project_update_notifications_list'),
)
team_urls = patterns('awx.api.views',
url(r'^$', 'team_list'),
url(r'^(?P<pk>[0-9]+)/$', 'team_detail'),
url(r'^(?P<pk>[0-9]+)/projects/$', 'team_projects_list'),
url(r'^(?P<pk>[0-9]+)/users/$', 'team_users_list'),
url(r'^(?P<pk>[0-9]+)/credentials/$', 'team_credentials_list'),
url(r'^(?P<pk>[0-9]+)/roles/$', 'team_roles_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'team_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'team_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'team_access_list'),
)
inventory_urls = patterns('awx.api.views',
url(r'^$', 'inventory_list'),
url(r'^(?P<pk>[0-9]+)/$', 'inventory_detail'),
url(r'^(?P<pk>[0-9]+)/hosts/$', 'inventory_hosts_list'),
url(r'^(?P<pk>[0-9]+)/groups/$', 'inventory_groups_list'),
url(r'^(?P<pk>[0-9]+)/root_groups/$', 'inventory_root_groups_list'),
url(r'^(?P<pk>[0-9]+)/variable_data/$', 'inventory_variable_data'),
url(r'^(?P<pk>[0-9]+)/script/$', 'inventory_script_view'),
url(r'^(?P<pk>[0-9]+)/tree/$', 'inventory_tree_view'),
url(r'^(?P<pk>[0-9]+)/inventory_sources/$', 'inventory_inventory_sources_list'),
url(r'^(?P<pk>[0-9]+)/update_inventory_sources/$', 'inventory_inventory_sources_update'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'inventory_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/job_templates/$', 'inventory_job_template_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_commands/$', 'inventory_ad_hoc_commands_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'inventory_access_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'inventory_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/instance_groups/$', 'inventory_instance_groups_list'),
#url(r'^(?P<pk>[0-9]+)/single_fact/$', 'inventory_single_fact_view'),
)
host_urls = patterns('awx.api.views',
url(r'^$', 'host_list'),
url(r'^(?P<pk>[0-9]+)/$', 'host_detail'),
url(r'^(?P<pk>[0-9]+)/variable_data/$', 'host_variable_data'),
url(r'^(?P<pk>[0-9]+)/groups/$', 'host_groups_list'),
url(r'^(?P<pk>[0-9]+)/all_groups/$', 'host_all_groups_list'),
url(r'^(?P<pk>[0-9]+)/job_events/', 'host_job_events_list'),
url(r'^(?P<pk>[0-9]+)/job_host_summaries/$', 'host_job_host_summaries_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'host_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/inventory_sources/$', 'host_inventory_sources_list'),
url(r'^(?P<pk>[0-9]+)/smart_inventories/$', 'host_smart_inventories_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_commands/$', 'host_ad_hoc_commands_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_command_events/$', 'host_ad_hoc_command_events_list'),
#url(r'^(?P<pk>[0-9]+)/single_fact/$', 'host_single_fact_view'),
url(r'^(?P<pk>[0-9]+)/fact_versions/$', 'host_fact_versions_list'),
url(r'^(?P<pk>[0-9]+)/fact_view/$', 'host_fact_compare_view'),
url(r'^(?P<pk>[0-9]+)/insights/$', 'host_insights'),
)
group_urls = patterns('awx.api.views',
url(r'^$', 'group_list'),
url(r'^(?P<pk>[0-9]+)/$', 'group_detail'),
url(r'^(?P<pk>[0-9]+)/children/$', 'group_children_list'),
url(r'^(?P<pk>[0-9]+)/hosts/$', 'group_hosts_list'),
url(r'^(?P<pk>[0-9]+)/all_hosts/$', 'group_all_hosts_list'),
url(r'^(?P<pk>[0-9]+)/variable_data/$', 'group_variable_data'),
url(r'^(?P<pk>[0-9]+)/job_events/$', 'group_job_events_list'),
url(r'^(?P<pk>[0-9]+)/job_host_summaries/$', 'group_job_host_summaries_list'),
url(r'^(?P<pk>[0-9]+)/potential_children/$', 'group_potential_children_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'group_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/inventory_sources/$', 'group_inventory_sources_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_commands/$', 'group_ad_hoc_commands_list'),
#url(r'^(?P<pk>[0-9]+)/single_fact/$', 'group_single_fact_view'),
)
inventory_source_urls = patterns('awx.api.views',
url(r'^$', 'inventory_source_list'),
url(r'^(?P<pk>[0-9]+)/$', 'inventory_source_detail'),
url(r'^(?P<pk>[0-9]+)/update/$', 'inventory_source_update_view'),
url(r'^(?P<pk>[0-9]+)/inventory_updates/$', 'inventory_source_updates_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'inventory_source_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/schedules/$', 'inventory_source_schedules_list'),
url(r'^(?P<pk>[0-9]+)/groups/$', 'inventory_source_groups_list'),
url(r'^(?P<pk>[0-9]+)/hosts/$', 'inventory_source_hosts_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', 'inventory_source_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', 'inventory_source_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', 'inventory_source_notification_templates_success_list'),
)
inventory_update_urls = patterns('awx.api.views',
url(r'^$', 'inventory_update_list'),
url(r'^(?P<pk>[0-9]+)/$', 'inventory_update_detail'),
url(r'^(?P<pk>[0-9]+)/cancel/$', 'inventory_update_cancel'),
url(r'^(?P<pk>[0-9]+)/stdout/$', 'inventory_update_stdout'),
url(r'^(?P<pk>[0-9]+)/notifications/$', 'inventory_update_notifications_list'),
)
inventory_script_urls = patterns('awx.api.views',
url(r'^$', 'inventory_script_list'),
url(r'^(?P<pk>[0-9]+)/$', 'inventory_script_detail'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'inventory_script_object_roles_list'),
)
credential_type_urls = patterns('awx.api.views',
url(r'^$', 'credential_type_list'),
url(r'^(?P<pk>[0-9]+)/$', 'credential_type_detail'),
url(r'^(?P<pk>[0-9]+)/credentials/$', 'credential_type_credential_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'credential_type_activity_stream_list'),
)
credential_urls = patterns('awx.api.views',
url(r'^$', 'credential_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'credential_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/$', 'credential_detail'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'credential_access_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'credential_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/owner_users/$', 'credential_owner_users_list'),
url(r'^(?P<pk>[0-9]+)/owner_teams/$', 'credential_owner_teams_list'),
# See also credentials resources on users/teams.
)
role_urls = patterns('awx.api.views',
url(r'^$', 'role_list'),
url(r'^(?P<pk>[0-9]+)/$', 'role_detail'),
url(r'^(?P<pk>[0-9]+)/users/$', 'role_users_list'),
url(r'^(?P<pk>[0-9]+)/teams/$', 'role_teams_list'),
url(r'^(?P<pk>[0-9]+)/parents/$', 'role_parents_list'),
url(r'^(?P<pk>[0-9]+)/children/$', 'role_children_list'),
)
job_template_urls = patterns('awx.api.views',
url(r'^$', 'job_template_list'),
url(r'^(?P<pk>[0-9]+)/$', 'job_template_detail'),
url(r'^(?P<pk>[0-9]+)/launch/$', 'job_template_launch'),
url(r'^(?P<pk>[0-9]+)/jobs/$', 'job_template_jobs_list'),
url(r'^(?P<pk>[0-9]+)/callback/$', 'job_template_callback'),
url(r'^(?P<pk>[0-9]+)/schedules/$', 'job_template_schedules_list'),
url(r'^(?P<pk>[0-9]+)/survey_spec/$', 'job_template_survey_spec'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'job_template_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', 'job_template_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', 'job_template_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', 'job_template_notification_templates_success_list'),
url(r'^(?P<pk>[0-9]+)/instance_groups/$', 'job_template_instance_groups_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'job_template_access_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'job_template_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/labels/$', 'job_template_label_list'),
)
job_urls = patterns('awx.api.views',
url(r'^$', 'job_list'),
url(r'^(?P<pk>[0-9]+)/$', 'job_detail'),
url(r'^(?P<pk>[0-9]+)/start/$', 'job_start'),
url(r'^(?P<pk>[0-9]+)/cancel/$', 'job_cancel'),
url(r'^(?P<pk>[0-9]+)/relaunch/$', 'job_relaunch'),
url(r'^(?P<pk>[0-9]+)/job_host_summaries/$', 'job_job_host_summaries_list'),
url(r'^(?P<pk>[0-9]+)/job_events/$', 'job_job_events_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'job_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/stdout/$', 'job_stdout'),
url(r'^(?P<pk>[0-9]+)/notifications/$', 'job_notifications_list'),
url(r'^(?P<pk>[0-9]+)/labels/$', 'job_label_list'),
)
job_host_summary_urls = patterns('awx.api.views',
url(r'^(?P<pk>[0-9]+)/$', 'job_host_summary_detail'),
)
job_event_urls = patterns('awx.api.views',
url(r'^$', 'job_event_list'),
url(r'^(?P<pk>[0-9]+)/$', 'job_event_detail'),
url(r'^(?P<pk>[0-9]+)/children/$', 'job_event_children_list'),
url(r'^(?P<pk>[0-9]+)/hosts/$', 'job_event_hosts_list'),
)
ad_hoc_command_urls = patterns('awx.api.views',
url(r'^$', 'ad_hoc_command_list'),
url(r'^(?P<pk>[0-9]+)/$', 'ad_hoc_command_detail'),
url(r'^(?P<pk>[0-9]+)/cancel/$', 'ad_hoc_command_cancel'),
url(r'^(?P<pk>[0-9]+)/relaunch/$', 'ad_hoc_command_relaunch'),
url(r'^(?P<pk>[0-9]+)/events/$', 'ad_hoc_command_ad_hoc_command_events_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'ad_hoc_command_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/notifications/$', 'ad_hoc_command_notifications_list'),
url(r'^(?P<pk>[0-9]+)/stdout/$', 'ad_hoc_command_stdout'),
)
ad_hoc_command_event_urls = patterns('awx.api.views',
url(r'^$', 'ad_hoc_command_event_list'),
url(r'^(?P<pk>[0-9]+)/$', 'ad_hoc_command_event_detail'),
)
system_job_template_urls = patterns('awx.api.views',
url(r'^$', 'system_job_template_list'),
url(r'^(?P<pk>[0-9]+)/$', 'system_job_template_detail'),
url(r'^(?P<pk>[0-9]+)/launch/$', 'system_job_template_launch'),
url(r'^(?P<pk>[0-9]+)/jobs/$', 'system_job_template_jobs_list'),
url(r'^(?P<pk>[0-9]+)/schedules/$', 'system_job_template_schedules_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', 'system_job_template_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', 'system_job_template_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', 'system_job_template_notification_templates_success_list'),
)
system_job_urls = patterns('awx.api.views',
url(r'^$', 'system_job_list'),
url(r'^(?P<pk>[0-9]+)/$', 'system_job_detail'),
url(r'^(?P<pk>[0-9]+)/cancel/$', 'system_job_cancel'),
url(r'^(?P<pk>[0-9]+)/notifications/$', 'system_job_notifications_list'),
)
workflow_job_template_urls = patterns('awx.api.views',
url(r'^$', 'workflow_job_template_list'),
url(r'^(?P<pk>[0-9]+)/$', 'workflow_job_template_detail'),
url(r'^(?P<pk>[0-9]+)/workflow_jobs/$', 'workflow_job_template_jobs_list'),
url(r'^(?P<pk>[0-9]+)/launch/$', 'workflow_job_template_launch'),
url(r'^(?P<pk>[0-9]+)/copy/$', 'workflow_job_template_copy'),
url(r'^(?P<pk>[0-9]+)/schedules/$', 'workflow_job_template_schedules_list'),
url(r'^(?P<pk>[0-9]+)/survey_spec/$', 'workflow_job_template_survey_spec'),
url(r'^(?P<pk>[0-9]+)/workflow_nodes/$', 'workflow_job_template_workflow_nodes_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'workflow_job_template_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', 'workflow_job_template_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', 'workflow_job_template_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', 'workflow_job_template_notification_templates_success_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'workflow_job_template_access_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', 'workflow_job_template_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/labels/$', 'workflow_job_template_label_list'),
)
workflow_job_urls = patterns('awx.api.views',
url(r'^$', 'workflow_job_list'),
url(r'^(?P<pk>[0-9]+)/$', 'workflow_job_detail'),
url(r'^(?P<pk>[0-9]+)/workflow_nodes/$', 'workflow_job_workflow_nodes_list'),
url(r'^(?P<pk>[0-9]+)/labels/$', 'workflow_job_label_list'),
url(r'^(?P<pk>[0-9]+)/cancel/$', 'workflow_job_cancel'),
url(r'^(?P<pk>[0-9]+)/relaunch/$', 'workflow_job_relaunch'),
url(r'^(?P<pk>[0-9]+)/notifications/$', 'workflow_job_notifications_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', 'workflow_job_activity_stream_list'),
)
notification_template_urls = patterns('awx.api.views',
url(r'^$', 'notification_template_list'),
url(r'^(?P<pk>[0-9]+)/$', 'notification_template_detail'),
url(r'^(?P<pk>[0-9]+)/test/$', 'notification_template_test'),
url(r'^(?P<pk>[0-9]+)/notifications/$', 'notification_template_notification_list'),
)
notification_urls = patterns('awx.api.views',
url(r'^$', 'notification_list'),
url(r'^(?P<pk>[0-9]+)/$', 'notification_detail'),
)
label_urls = patterns('awx.api.views',
url(r'^$', 'label_list'),
url(r'^(?P<pk>[0-9]+)/$', 'label_detail'),
)
workflow_job_template_node_urls = patterns('awx.api.views',
url(r'^$', 'workflow_job_template_node_list'),
url(r'^(?P<pk>[0-9]+)/$', 'workflow_job_template_node_detail'),
url(r'^(?P<pk>[0-9]+)/success_nodes/$', 'workflow_job_template_node_success_nodes_list'),
url(r'^(?P<pk>[0-9]+)/failure_nodes/$', 'workflow_job_template_node_failure_nodes_list'),
url(r'^(?P<pk>[0-9]+)/always_nodes/$', 'workflow_job_template_node_always_nodes_list'),
)
workflow_job_node_urls = patterns('awx.api.views',
url(r'^$', 'workflow_job_node_list'),
url(r'^(?P<pk>[0-9]+)/$', 'workflow_job_node_detail'),
url(r'^(?P<pk>[0-9]+)/success_nodes/$', 'workflow_job_node_success_nodes_list'),
url(r'^(?P<pk>[0-9]+)/failure_nodes/$', 'workflow_job_node_failure_nodes_list'),
url(r'^(?P<pk>[0-9]+)/always_nodes/$', 'workflow_job_node_always_nodes_list'),
)
schedule_urls = patterns('awx.api.views',
url(r'^$', 'schedule_list'),
url(r'^(?P<pk>[0-9]+)/$', 'schedule_detail'),
url(r'^(?P<pk>[0-9]+)/jobs/$', 'schedule_unified_jobs_list'),
)
activity_stream_urls = patterns('awx.api.views',
url(r'^$', 'activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/$', 'activity_stream_detail'),
)
instance_urls = patterns('awx.api.views',
url(r'^$', 'instance_list'),
url(r'^(?P<pk>[0-9]+)/$', 'instance_detail'),
url(r'^(?P<pk>[0-9]+)/jobs/$', 'instance_unified_jobs_list'),
url(r'^(?P<pk>[0-9]+)/instance_groups/$', 'instance_instance_groups_list'),
)
instance_group_urls = patterns('awx.api.views',
url(r'^$', 'instance_group_list'),
url(r'^(?P<pk>[0-9]+)/$', 'instance_group_detail'),
url(r'^(?P<pk>[0-9]+)/jobs/$', 'instance_group_unified_jobs_list'),
url(r'^(?P<pk>[0-9]+)/instances/$', 'instance_group_instance_list'),
)
v1_urls = patterns('awx.api.views',
url(r'^$', 'api_v1_root_view'),
url(r'^ping/$', 'api_v1_ping_view'),
url(r'^config/$', 'api_v1_config_view'),
url(r'^auth/$', 'auth_view'),
url(r'^authtoken/$', 'auth_token_view'),
url(r'^me/$', 'user_me_list'),
url(r'^dashboard/$', 'dashboard_view'),
url(r'^dashboard/graphs/jobs/$','dashboard_jobs_graph_view'),
url(r'^settings/', include('awx.conf.urls')),
url(r'^instances/', include(instance_urls)),
url(r'^instance_groups/', include(instance_group_urls)),
url(r'^schedules/', include(schedule_urls)),
url(r'^organizations/', include(organization_urls)),
url(r'^users/', include(user_urls)),
url(r'^projects/', include(project_urls)),
url(r'^project_updates/', include(project_update_urls)),
url(r'^teams/', include(team_urls)),
url(r'^inventories/', include(inventory_urls)),
url(r'^hosts/', include(host_urls)),
url(r'^groups/', include(group_urls)),
url(r'^inventory_sources/', include(inventory_source_urls)),
url(r'^inventory_updates/', include(inventory_update_urls)),
url(r'^inventory_scripts/', include(inventory_script_urls)),
url(r'^credentials/', include(credential_urls)),
url(r'^roles/', include(role_urls)),
url(r'^job_templates/', include(job_template_urls)),
url(r'^jobs/', include(job_urls)),
url(r'^job_host_summaries/', include(job_host_summary_urls)),
url(r'^job_events/', include(job_event_urls)),
url(r'^ad_hoc_commands/', include(ad_hoc_command_urls)),
url(r'^ad_hoc_command_events/', include(ad_hoc_command_event_urls)),
url(r'^system_job_templates/', include(system_job_template_urls)),
url(r'^system_jobs/', include(system_job_urls)),
url(r'^notification_templates/', include(notification_template_urls)),
url(r'^notifications/', include(notification_urls)),
url(r'^workflow_job_templates/',include(workflow_job_template_urls)),
url(r'^workflow_jobs/' ,include(workflow_job_urls)),
url(r'^labels/', include(label_urls)),
url(r'^workflow_job_template_nodes/', include(workflow_job_template_node_urls)),
url(r'^workflow_job_nodes/', include(workflow_job_node_urls)),
url(r'^unified_job_templates/$','unified_job_template_list'),
url(r'^unified_jobs/$', 'unified_job_list'),
url(r'^activity_stream/', include(activity_stream_urls)),
)
v2_urls = patterns('awx.api.views',
url(r'^$', 'api_v2_root_view'),
url(r'^credential_types/', include(credential_type_urls)),
url(r'^hosts/(?P<pk>[0-9]+)/ansible_facts/$', 'host_ansible_facts_detail'),
url(r'^jobs/(?P<pk>[0-9]+)/extra_credentials/$', 'job_extra_credentials_list'),
url(r'^job_templates/(?P<pk>[0-9]+)/extra_credentials/$', 'job_template_extra_credentials_list'),
)
urlpatterns = patterns('awx.api.views',
url(r'^$', 'api_root_view'),
url(r'^(?P<version>(v2))/', include(v2_urls)),
url(r'^(?P<version>(v1|v2))/', include(v1_urls))
)

7
awx/api/urls/__init__.py Normal file
View File

@@ -0,0 +1,7 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from __future__ import absolute_import, unicode_literals
from .urls import urlpatterns
__all__ = ['urlpatterns']

View File

@@ -0,0 +1,17 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
ActivityStreamList,
ActivityStreamDetail,
)
urls = [
url(r'^$', ActivityStreamList.as_view(), name='activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/$', ActivityStreamDetail.as_view(), name='activity_stream_detail'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,29 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
AdHocCommandList,
AdHocCommandDetail,
AdHocCommandCancel,
AdHocCommandRelaunch,
AdHocCommandAdHocCommandEventsList,
AdHocCommandActivityStreamList,
AdHocCommandNotificationsList,
AdHocCommandStdout,
)
urls = [
url(r'^$', AdHocCommandList.as_view(), name='ad_hoc_command_list'),
url(r'^(?P<pk>[0-9]+)/$', AdHocCommandDetail.as_view(), name='ad_hoc_command_detail'),
url(r'^(?P<pk>[0-9]+)/cancel/$', AdHocCommandCancel.as_view(), name='ad_hoc_command_cancel'),
url(r'^(?P<pk>[0-9]+)/relaunch/$', AdHocCommandRelaunch.as_view(), name='ad_hoc_command_relaunch'),
url(r'^(?P<pk>[0-9]+)/events/$', AdHocCommandAdHocCommandEventsList.as_view(), name='ad_hoc_command_ad_hoc_command_events_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', AdHocCommandActivityStreamList.as_view(), name='ad_hoc_command_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/notifications/$', AdHocCommandNotificationsList.as_view(), name='ad_hoc_command_notifications_list'),
url(r'^(?P<pk>[0-9]+)/stdout/$', AdHocCommandStdout.as_view(), name='ad_hoc_command_stdout'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,17 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
AdHocCommandEventList,
AdHocCommandEventDetail,
)
urls = [
url(r'^$', AdHocCommandEventList.as_view(), name='ad_hoc_command_event_list'),
url(r'^(?P<pk>[0-9]+)/$', AdHocCommandEventDetail.as_view(), name='ad_hoc_command_event_detail'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,29 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
CredentialList,
CredentialActivityStreamList,
CredentialDetail,
CredentialAccessList,
CredentialObjectRolesList,
CredentialOwnerUsersList,
CredentialOwnerTeamsList,
CredentialCopy,
)
urls = [
url(r'^$', CredentialList.as_view(), name='credential_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', CredentialActivityStreamList.as_view(), name='credential_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/$', CredentialDetail.as_view(), name='credential_detail'),
url(r'^(?P<pk>[0-9]+)/access_list/$', CredentialAccessList.as_view(), name='credential_access_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', CredentialObjectRolesList.as_view(), name='credential_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/owner_users/$', CredentialOwnerUsersList.as_view(), name='credential_owner_users_list'),
url(r'^(?P<pk>[0-9]+)/owner_teams/$', CredentialOwnerTeamsList.as_view(), name='credential_owner_teams_list'),
url(r'^(?P<pk>[0-9]+)/copy/$', CredentialCopy.as_view(), name='credential_copy'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,21 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
CredentialTypeList,
CredentialTypeDetail,
CredentialTypeCredentialList,
CredentialTypeActivityStreamList,
)
urls = [
url(r'^$', CredentialTypeList.as_view(), name='credential_type_list'),
url(r'^(?P<pk>[0-9]+)/$', CredentialTypeDetail.as_view(), name='credential_type_detail'),
url(r'^(?P<pk>[0-9]+)/credentials/$', CredentialTypeCredentialList.as_view(), name='credential_type_credential_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', CredentialTypeActivityStreamList.as_view(), name='credential_type_activity_stream_list'),
]
__all__ = ['urls']

37
awx/api/urls/group.py Normal file
View File

@@ -0,0 +1,37 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
GroupList,
GroupDetail,
GroupChildrenList,
GroupHostsList,
GroupAllHostsList,
GroupVariableData,
GroupJobEventsList,
GroupJobHostSummariesList,
GroupPotentialChildrenList,
GroupActivityStreamList,
GroupInventorySourcesList,
GroupAdHocCommandsList,
)
urls = [
url(r'^$', GroupList.as_view(), name='group_list'),
url(r'^(?P<pk>[0-9]+)/$', GroupDetail.as_view(), name='group_detail'),
url(r'^(?P<pk>[0-9]+)/children/$', GroupChildrenList.as_view(), name='group_children_list'),
url(r'^(?P<pk>[0-9]+)/hosts/$', GroupHostsList.as_view(), name='group_hosts_list'),
url(r'^(?P<pk>[0-9]+)/all_hosts/$', GroupAllHostsList.as_view(), name='group_all_hosts_list'),
url(r'^(?P<pk>[0-9]+)/variable_data/$', GroupVariableData.as_view(), name='group_variable_data'),
url(r'^(?P<pk>[0-9]+)/job_events/$', GroupJobEventsList.as_view(), name='group_job_events_list'),
url(r'^(?P<pk>[0-9]+)/job_host_summaries/$', GroupJobHostSummariesList.as_view(), name='group_job_host_summaries_list'),
url(r'^(?P<pk>[0-9]+)/potential_children/$', GroupPotentialChildrenList.as_view(), name='group_potential_children_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', GroupActivityStreamList.as_view(), name='group_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/inventory_sources/$', GroupInventorySourcesList.as_view(), name='group_inventory_sources_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_commands/$', GroupAdHocCommandsList.as_view(), name='group_ad_hoc_commands_list'),
]
__all__ = ['urls']

43
awx/api/urls/host.py Normal file
View File

@@ -0,0 +1,43 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
HostList,
HostDetail,
HostVariableData,
HostGroupsList,
HostAllGroupsList,
HostJobEventsList,
HostJobHostSummariesList,
HostActivityStreamList,
HostInventorySourcesList,
HostSmartInventoriesList,
HostAdHocCommandsList,
HostAdHocCommandEventsList,
HostFactVersionsList,
HostFactCompareView,
HostInsights,
)
urls = [
url(r'^$', HostList.as_view(), name='host_list'),
url(r'^(?P<pk>[0-9]+)/$', HostDetail.as_view(), name='host_detail'),
url(r'^(?P<pk>[0-9]+)/variable_data/$', HostVariableData.as_view(), name='host_variable_data'),
url(r'^(?P<pk>[0-9]+)/groups/$', HostGroupsList.as_view(), name='host_groups_list'),
url(r'^(?P<pk>[0-9]+)/all_groups/$', HostAllGroupsList.as_view(), name='host_all_groups_list'),
url(r'^(?P<pk>[0-9]+)/job_events/', HostJobEventsList.as_view(), name='host_job_events_list'),
url(r'^(?P<pk>[0-9]+)/job_host_summaries/$', HostJobHostSummariesList.as_view(), name='host_job_host_summaries_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', HostActivityStreamList.as_view(), name='host_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/inventory_sources/$', HostInventorySourcesList.as_view(), name='host_inventory_sources_list'),
url(r'^(?P<pk>[0-9]+)/smart_inventories/$', HostSmartInventoriesList.as_view(), name='host_smart_inventories_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_commands/$', HostAdHocCommandsList.as_view(), name='host_ad_hoc_commands_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_command_events/$', HostAdHocCommandEventsList.as_view(), name='host_ad_hoc_command_events_list'),
url(r'^(?P<pk>[0-9]+)/fact_versions/$', HostFactVersionsList.as_view(), name='host_fact_versions_list'),
url(r'^(?P<pk>[0-9]+)/fact_view/$', HostFactCompareView.as_view(), name='host_fact_compare_view'),
url(r'^(?P<pk>[0-9]+)/insights/$', HostInsights.as_view(), name='host_insights'),
]
__all__ = ['urls']

22
awx/api/urls/instance.py Normal file
View File

@@ -0,0 +1,22 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
InstanceList,
InstanceDetail,
InstanceUnifiedJobsList,
InstanceInstanceGroupsList,
)
urls = [
url(r'^$', InstanceList.as_view(), name='instance_list'),
url(r'^(?P<pk>[0-9]+)/$', InstanceDetail.as_view(), name='instance_detail'),
url(r'^(?P<pk>[0-9]+)/jobs/$', InstanceUnifiedJobsList.as_view(), name='instance_unified_jobs_list'),
url(r'^(?P<pk>[0-9]+)/instance_groups/$', InstanceInstanceGroupsList.as_view(),
name='instance_instance_groups_list'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,21 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
InstanceGroupList,
InstanceGroupDetail,
InstanceGroupUnifiedJobsList,
InstanceGroupInstanceList,
)
urls = [
url(r'^$', InstanceGroupList.as_view(), name='instance_group_list'),
url(r'^(?P<pk>[0-9]+)/$', InstanceGroupDetail.as_view(), name='instance_group_detail'),
url(r'^(?P<pk>[0-9]+)/jobs/$', InstanceGroupUnifiedJobsList.as_view(), name='instance_group_unified_jobs_list'),
url(r'^(?P<pk>[0-9]+)/instances/$', InstanceGroupInstanceList.as_view(), name='instance_group_instance_list'),
]
__all__ = ['urls']

47
awx/api/urls/inventory.py Normal file
View File

@@ -0,0 +1,47 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
InventoryList,
InventoryDetail,
InventoryHostsList,
InventoryGroupsList,
InventoryRootGroupsList,
InventoryVariableData,
InventoryScriptView,
InventoryTreeView,
InventoryInventorySourcesList,
InventoryInventorySourcesUpdate,
InventoryActivityStreamList,
InventoryJobTemplateList,
InventoryAdHocCommandsList,
InventoryAccessList,
InventoryObjectRolesList,
InventoryInstanceGroupsList,
InventoryCopy,
)
urls = [
url(r'^$', InventoryList.as_view(), name='inventory_list'),
url(r'^(?P<pk>[0-9]+)/$', InventoryDetail.as_view(), name='inventory_detail'),
url(r'^(?P<pk>[0-9]+)/hosts/$', InventoryHostsList.as_view(), name='inventory_hosts_list'),
url(r'^(?P<pk>[0-9]+)/groups/$', InventoryGroupsList.as_view(), name='inventory_groups_list'),
url(r'^(?P<pk>[0-9]+)/root_groups/$', InventoryRootGroupsList.as_view(), name='inventory_root_groups_list'),
url(r'^(?P<pk>[0-9]+)/variable_data/$', InventoryVariableData.as_view(), name='inventory_variable_data'),
url(r'^(?P<pk>[0-9]+)/script/$', InventoryScriptView.as_view(), name='inventory_script_view'),
url(r'^(?P<pk>[0-9]+)/tree/$', InventoryTreeView.as_view(), name='inventory_tree_view'),
url(r'^(?P<pk>[0-9]+)/inventory_sources/$', InventoryInventorySourcesList.as_view(), name='inventory_inventory_sources_list'),
url(r'^(?P<pk>[0-9]+)/update_inventory_sources/$', InventoryInventorySourcesUpdate.as_view(), name='inventory_inventory_sources_update'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', InventoryActivityStreamList.as_view(), name='inventory_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/job_templates/$', InventoryJobTemplateList.as_view(), name='inventory_job_template_list'),
url(r'^(?P<pk>[0-9]+)/ad_hoc_commands/$', InventoryAdHocCommandsList.as_view(), name='inventory_ad_hoc_commands_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', InventoryAccessList.as_view(), name='inventory_access_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', InventoryObjectRolesList.as_view(), name='inventory_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/instance_groups/$', InventoryInstanceGroupsList.as_view(), name='inventory_instance_groups_list'),
url(r'^(?P<pk>[0-9]+)/copy/$', InventoryCopy.as_view(), name='inventory_copy'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,21 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
InventoryScriptList,
InventoryScriptDetail,
InventoryScriptObjectRolesList,
InventoryScriptCopy,
)
urls = [
url(r'^$', InventoryScriptList.as_view(), name='inventory_script_list'),
url(r'^(?P<pk>[0-9]+)/$', InventoryScriptDetail.as_view(), name='inventory_script_detail'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', InventoryScriptObjectRolesList.as_view(), name='inventory_script_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/copy/$', InventoryScriptCopy.as_view(), name='inventory_script_copy'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,40 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
InventorySourceList,
InventorySourceDetail,
InventorySourceUpdateView,
InventorySourceUpdatesList,
InventorySourceActivityStreamList,
InventorySourceSchedulesList,
InventorySourceCredentialsList,
InventorySourceGroupsList,
InventorySourceHostsList,
InventorySourceNotificationTemplatesAnyList,
InventorySourceNotificationTemplatesErrorList,
InventorySourceNotificationTemplatesSuccessList,
)
urls = [
url(r'^$', InventorySourceList.as_view(), name='inventory_source_list'),
url(r'^(?P<pk>[0-9]+)/$', InventorySourceDetail.as_view(), name='inventory_source_detail'),
url(r'^(?P<pk>[0-9]+)/update/$', InventorySourceUpdateView.as_view(), name='inventory_source_update_view'),
url(r'^(?P<pk>[0-9]+)/inventory_updates/$', InventorySourceUpdatesList.as_view(), name='inventory_source_updates_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', InventorySourceActivityStreamList.as_view(), name='inventory_source_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/schedules/$', InventorySourceSchedulesList.as_view(), name='inventory_source_schedules_list'),
url(r'^(?P<pk>[0-9]+)/credentials/$', InventorySourceCredentialsList.as_view(), name='inventory_source_credentials_list'),
url(r'^(?P<pk>[0-9]+)/groups/$', InventorySourceGroupsList.as_view(), name='inventory_source_groups_list'),
url(r'^(?P<pk>[0-9]+)/hosts/$', InventorySourceHostsList.as_view(), name='inventory_source_hosts_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', InventorySourceNotificationTemplatesAnyList.as_view(),
name='inventory_source_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', InventorySourceNotificationTemplatesErrorList.as_view(),
name='inventory_source_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', InventorySourceNotificationTemplatesSuccessList.as_view(),
name='inventory_source_notification_templates_success_list'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,27 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
InventoryUpdateList,
InventoryUpdateDetail,
InventoryUpdateCancel,
InventoryUpdateStdout,
InventoryUpdateNotificationsList,
InventoryUpdateCredentialsList,
InventoryUpdateEventsList,
)
urls = [
url(r'^$', InventoryUpdateList.as_view(), name='inventory_update_list'),
url(r'^(?P<pk>[0-9]+)/$', InventoryUpdateDetail.as_view(), name='inventory_update_detail'),
url(r'^(?P<pk>[0-9]+)/cancel/$', InventoryUpdateCancel.as_view(), name='inventory_update_cancel'),
url(r'^(?P<pk>[0-9]+)/stdout/$', InventoryUpdateStdout.as_view(), name='inventory_update_stdout'),
url(r'^(?P<pk>[0-9]+)/notifications/$', InventoryUpdateNotificationsList.as_view(), name='inventory_update_notifications_list'),
url(r'^(?P<pk>[0-9]+)/credentials/$', InventoryUpdateCredentialsList.as_view(), name='inventory_update_credentials_list'),
url(r'^(?P<pk>[0-9]+)/events/$', InventoryUpdateEventsList.as_view(), name='inventory_update_events_list'),
]
__all__ = ['urls']

39
awx/api/urls/job.py Normal file
View File

@@ -0,0 +1,39 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
JobList,
JobDetail,
JobStart,
JobCancel,
JobRelaunch,
JobCreateSchedule,
JobJobHostSummariesList,
JobJobEventsList,
JobActivityStreamList,
JobStdout,
JobNotificationsList,
JobLabelList,
JobHostSummaryDetail,
)
urls = [
url(r'^$', JobList.as_view(), name='job_list'),
url(r'^(?P<pk>[0-9]+)/$', JobDetail.as_view(), name='job_detail'),
url(r'^(?P<pk>[0-9]+)/start/$', JobStart.as_view(), name='job_start'), # Todo: Remove In 3.3
url(r'^(?P<pk>[0-9]+)/cancel/$', JobCancel.as_view(), name='job_cancel'),
url(r'^(?P<pk>[0-9]+)/relaunch/$', JobRelaunch.as_view(), name='job_relaunch'),
url(r'^(?P<pk>[0-9]+)/create_schedule/$', JobCreateSchedule.as_view(), name='job_create_schedule'),
url(r'^(?P<pk>[0-9]+)/job_host_summaries/$', JobJobHostSummariesList.as_view(), name='job_job_host_summaries_list'),
url(r'^(?P<pk>[0-9]+)/job_events/$', JobJobEventsList.as_view(), name='job_job_events_list'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', JobActivityStreamList.as_view(), name='job_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/stdout/$', JobStdout.as_view(), name='job_stdout'),
url(r'^(?P<pk>[0-9]+)/notifications/$', JobNotificationsList.as_view(), name='job_notifications_list'),
url(r'^(?P<pk>[0-9]+)/labels/$', JobLabelList.as_view(), name='job_label_list'),
url(r'^(?P<pk>[0-9]+)/$', JobHostSummaryDetail.as_view(), name='job_host_summary_detail'),
]
__all__ = ['urls']

21
awx/api/urls/job_event.py Normal file
View File

@@ -0,0 +1,21 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
JobEventList,
JobEventDetail,
JobEventChildrenList,
JobEventHostsList,
)
urls = [
url(r'^$', JobEventList.as_view(), name='job_event_list'),
url(r'^(?P<pk>[0-9]+)/$', JobEventDetail.as_view(), name='job_event_detail'),
url(r'^(?P<pk>[0-9]+)/children/$', JobEventChildrenList.as_view(), name='job_event_children_list'),
url(r'^(?P<pk>[0-9]+)/hosts/$', JobEventHostsList.as_view(), name='job_event_hosts_list'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,15 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
JobHostSummaryDetail,
)
urls = [
url(r'^(?P<pk>[0-9]+)/$', JobHostSummaryDetail.as_view(), name='job_host_summary_detail'),
]
__all__ = ['urls']

View File

@@ -0,0 +1,48 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
JobTemplateList,
JobTemplateDetail,
JobTemplateLaunch,
JobTemplateJobsList,
JobTemplateCallback,
JobTemplateSchedulesList,
JobTemplateSurveySpec,
JobTemplateActivityStreamList,
JobTemplateNotificationTemplatesAnyList,
JobTemplateNotificationTemplatesErrorList,
JobTemplateNotificationTemplatesSuccessList,
JobTemplateInstanceGroupsList,
JobTemplateAccessList,
JobTemplateObjectRolesList,
JobTemplateLabelList,
JobTemplateCopy,
)
urls = [
url(r'^$', JobTemplateList.as_view(), name='job_template_list'),
url(r'^(?P<pk>[0-9]+)/$', JobTemplateDetail.as_view(), name='job_template_detail'),
url(r'^(?P<pk>[0-9]+)/launch/$', JobTemplateLaunch.as_view(), name='job_template_launch'),
url(r'^(?P<pk>[0-9]+)/jobs/$', JobTemplateJobsList.as_view(), name='job_template_jobs_list'),
url(r'^(?P<pk>[0-9]+)/callback/$', JobTemplateCallback.as_view(), name='job_template_callback'),
url(r'^(?P<pk>[0-9]+)/schedules/$', JobTemplateSchedulesList.as_view(), name='job_template_schedules_list'),
url(r'^(?P<pk>[0-9]+)/survey_spec/$', JobTemplateSurveySpec.as_view(), name='job_template_survey_spec'),
url(r'^(?P<pk>[0-9]+)/activity_stream/$', JobTemplateActivityStreamList.as_view(), name='job_template_activity_stream_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', JobTemplateNotificationTemplatesAnyList.as_view(),
name='job_template_notification_templates_any_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', JobTemplateNotificationTemplatesErrorList.as_view(),
name='job_template_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', JobTemplateNotificationTemplatesSuccessList.as_view(),
name='job_template_notification_templates_success_list'),
url(r'^(?P<pk>[0-9]+)/instance_groups/$', JobTemplateInstanceGroupsList.as_view(), name='job_template_instance_groups_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', JobTemplateAccessList.as_view(), name='job_template_access_list'),
url(r'^(?P<pk>[0-9]+)/object_roles/$', JobTemplateObjectRolesList.as_view(), name='job_template_object_roles_list'),
url(r'^(?P<pk>[0-9]+)/labels/$', JobTemplateLabelList.as_view(), name='job_template_label_list'),
url(r'^(?P<pk>[0-9]+)/copy/$', JobTemplateCopy.as_view(), name='job_template_copy'),
]
__all__ = ['urls']

17
awx/api/urls/label.py Normal file
View File

@@ -0,0 +1,17 @@
# Copyright (c) 2017 Ansible, Inc.
# All Rights Reserved.
from django.conf.urls import url
from awx.api.views import (
LabelList,
LabelDetail,
)
urls = [
url(r'^$', LabelList.as_view(), name='label_list'),
url(r'^(?P<pk>[0-9]+)/$', LabelDetail.as_view(), name='label_detail'),
]
__all__ = ['urls']

Some files were not shown because too many files have changed in this diff Show More