Skip to content

Commit

Permalink
Merge pull request #6304 from AlanCoding/workflow_role
Browse files Browse the repository at this point in the history
Add workflow to tower_role module

Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
  • Loading branch information
softwarefactory-project-zuul[bot] committed Mar 18, 2020
2 parents 6b51b41 + d9932ea commit 26d5d7a
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 0 deletions.
6 changes: 6 additions & 0 deletions awx_collection/plugins/modules/tower_role.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@
description:
- The job template the role acts on.
type: str
workflow:
description:
- The job template the role acts on.
type: str
credential:
description:
- Credential the role acts on.
Expand Down Expand Up @@ -108,6 +112,7 @@ def update_resources(module, p):
'target_team': 'name',
'inventory': 'name',
'job_template': 'name',
'workflow': 'name',
'credential': 'name',
'organization': 'name',
'project': 'name',
Expand All @@ -133,6 +138,7 @@ def main():
target_team=dict(),
inventory=dict(),
job_template=dict(),
workflow=dict(),
credential=dict(),
organization=dict(),
project=dict(),
Expand Down
37 changes: 37 additions & 0 deletions awx_collection/test/awx/test_role.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

import pytest

from awx.main.models import WorkflowJobTemplate, User


@pytest.mark.django_db
def test_grant_organization_permission(run_module, admin_user, organization):
rando = User.objects.create(username='rando')

result = run_module('tower_role', {
'user': rando.username,
'organization': organization.name,
'role': 'admin',
'state': 'present'
}, admin_user)
assert not result.get('failed', False), result.get('msg', result)

assert rando in organization.execute_role


@pytest.mark.django_db
def test_grant_workflow_permission(run_module, admin_user, organization):
wfjt = WorkflowJobTemplate.objects.create(organization=organization, name='foo-workflow')
rando = User.objects.create(username='rando')

result = run_module('tower_role', {
'user': rando.username,
'workflow': wfjt.name,
'role': 'execute',
'state': 'present'
}, admin_user)
assert not result.get('failed', False), result.get('msg', result)

assert rando in wfjt.execute_role
18 changes: 18 additions & 0 deletions awx_collection/tests/integration/targets/tower_role/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,24 @@
that:
- "result is changed"

- name: Create a workflow
tower_workflow_template:
name: test-role-workflow
organization: Default
state: present

- name: Add Joe to workflow execute role
tower_role:
user: joe
role: execute
workflow: test-role-workflow
state: present
register: result

- assert:
that:
- "result is changed"

- name: Delete a User
tower_user:
username: joe
Expand Down

0 comments on commit 26d5d7a

Please sign in to comment.