mirror of
https://github.com/ZwareBear/awx.git
synced 2026-03-19 23:33:37 -05:00
430 lines
9.2 KiB
YAML
430 lines
9.2 KiB
YAML
---
|
|
- name: Generate a random string for test
|
|
set_fact:
|
|
test_id: "{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}"
|
|
|
|
- name: generate random string for project
|
|
set_fact:
|
|
org_name: "AWX-Collection-tests-tower_organization-org-{{ test_id }}"
|
|
cred1: "AWX-Collection-tests-tower_job_template-cred1-{{ test_id }}"
|
|
cred2: "AWX-Collection-tests-tower_job_template-cred2-{{ test_id }}"
|
|
cred3: "AWX-Collection-tests-tower_job_template-cred3-{{ test_id }}"
|
|
proj1: "AWX-Collection-tests-tower_job_template-proj-{{ test_id }}"
|
|
jt1: "AWX-Collection-tests-tower_job_template-jt1-{{ test_id }}"
|
|
jt2: "AWX-Collection-tests-tower_job_template-jt2-{{ test_id }}"
|
|
lab1: "AWX-Collection-tests-tower_job_template-lab1-{{ test_id }}"
|
|
email_not: "AWX-Collection-tests-tower_job_template-email-not-{{ test_id }}"
|
|
webhook_not: "AWX-Collection-tests-tower_notification_template-wehbook-not-{{ test_id }}"
|
|
group_name1: "AWX-Collection-tests-tower_instance_group-group1-{{ test_id }}"
|
|
|
|
- name: "Create a new organization"
|
|
tower_organization:
|
|
name: "{{ org_name }}"
|
|
galaxy_credentials:
|
|
- Ansible Galaxy
|
|
register: result
|
|
|
|
- name: Create a Demo Project
|
|
project:
|
|
name: "{{ proj1 }}"
|
|
organization: Default
|
|
state: present
|
|
scm_type: git
|
|
scm_url: https://github.com/ansible/ansible-tower-samples.git
|
|
register: proj_result
|
|
|
|
- name: Create Credential1
|
|
credential:
|
|
name: "{{ cred1 }}"
|
|
organization: Default
|
|
kind: tower
|
|
register: cred1_result
|
|
|
|
- name: Create Credential2
|
|
credential:
|
|
name: "{{ cred2 }}"
|
|
organization: Default
|
|
kind: ssh
|
|
|
|
- name: Create Credential3
|
|
credential:
|
|
name: "{{ cred3 }}"
|
|
organization: Default
|
|
kind: ssh
|
|
|
|
- name: Create Labels
|
|
tower_label:
|
|
name: "{{ lab1 }}"
|
|
organization: "{{ item }}"
|
|
loop:
|
|
- Default
|
|
- "{{ org_name }}"
|
|
|
|
- name: Create an Instance Group
|
|
instance_group:
|
|
name: "{{ group_name1 }}"
|
|
state: present
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Add email notification
|
|
notification_template:
|
|
name: "{{ email_not }}"
|
|
organization: Default
|
|
notification_type: email
|
|
username: user
|
|
password: s3cr3t
|
|
sender: tower@example.com
|
|
recipients:
|
|
- user1@example.com
|
|
host: smtp.example.com
|
|
port: 25
|
|
use_tls: false
|
|
use_ssl: false
|
|
state: present
|
|
|
|
- name: Add webhook notification
|
|
notification_template:
|
|
name: "{{ webhook_not }}"
|
|
organization: Default
|
|
notification_type: webhook
|
|
url: http://www.example.com/hook
|
|
headers:
|
|
X-Custom-Header: value123
|
|
state: present
|
|
register: result
|
|
|
|
- name: Create Job Template 1
|
|
job_template:
|
|
name: "{{ jt1 }}"
|
|
project: "{{ proj1 }}"
|
|
inventory: Demo Inventory
|
|
playbook: hello_world.yml
|
|
credentials:
|
|
- "{{ cred1 }}"
|
|
- "{{ cred2 }}"
|
|
instance_groups:
|
|
- "{{ group_name1 }}"
|
|
job_type: run
|
|
state: present
|
|
register: jt1_result
|
|
|
|
- assert:
|
|
that:
|
|
- "jt1_result is changed"
|
|
|
|
- name: Add a credential to this JT
|
|
job_template:
|
|
name: "{{ jt1 }}"
|
|
project: "{{ proj_result.id }}"
|
|
playbook: hello_world.yml
|
|
credentials:
|
|
- "{{ cred1_result.id }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Try to add the same credential to this JT
|
|
job_template:
|
|
name: "{{ jt1_result.id }}"
|
|
project: "{{ proj1 }}"
|
|
playbook: hello_world.yml
|
|
credentials:
|
|
- "{{ cred1 }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is not changed"
|
|
|
|
- name: Add another credential to this JT
|
|
job_template:
|
|
name: "{{ jt1 }}"
|
|
project: "{{ proj1 }}"
|
|
playbook: hello_world.yml
|
|
credentials:
|
|
- "{{ cred1 }}"
|
|
- "{{ cred2 }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Remove a credential for this JT
|
|
job_template:
|
|
name: "{{ jt1 }}"
|
|
project: "{{ proj1 }}"
|
|
playbook: hello_world.yml
|
|
credentials:
|
|
- "{{ cred1 }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Remove all credentials from this JT
|
|
job_template:
|
|
name: "{{ jt1 }}"
|
|
project: "{{ proj1 }}"
|
|
playbook: hello_world.yml
|
|
credentials: []
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Copy Job Template
|
|
job_template:
|
|
name: "copy_{{ jt1 }}"
|
|
copy_from: "{{ jt1 }}"
|
|
state: "present"
|
|
|
|
- name: Delete copied Job Template
|
|
job_template:
|
|
name: "copy_{{ jt1 }}"
|
|
job_type: run
|
|
state: absent
|
|
register: result
|
|
|
|
# This doesnt work if you include the credentials parameter
|
|
- name: Delete Job Template 1
|
|
job_template:
|
|
name: "{{ jt1 }}"
|
|
playbook: hello_world.yml
|
|
job_type: run
|
|
project: "Does Not Exist"
|
|
inventory: "Does Not Exist"
|
|
webhook_credential: "Does Not Exist"
|
|
state: absent
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Create Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
organization: Default
|
|
project: "{{ proj1 }}"
|
|
inventory: Demo Inventory
|
|
playbook: hello_world.yml
|
|
credential: "{{ cred3 }}"
|
|
job_type: run
|
|
labels:
|
|
- "{{ lab1 }}"
|
|
state: present
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Add survey to Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
survey_enabled: true
|
|
survey_spec:
|
|
name: ""
|
|
description: ""
|
|
spec:
|
|
- question_name: "Q1"
|
|
question_description: "The first question"
|
|
required: true
|
|
type: "text"
|
|
variable: "q1"
|
|
min: 5
|
|
max: 15
|
|
default: "hello"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Re Add survey to Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
survey_enabled: true
|
|
survey_spec:
|
|
name: ""
|
|
description: ""
|
|
spec:
|
|
- question_name: "Q1"
|
|
question_description: "The first question"
|
|
required: true
|
|
type: "text"
|
|
variable: "q1"
|
|
min: 5
|
|
max: 15
|
|
default: "hello"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is not changed"
|
|
|
|
- name: Add question to survey to Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
survey_enabled: true
|
|
survey_spec:
|
|
name: ""
|
|
description: ""
|
|
spec:
|
|
- question_name: "Q1"
|
|
question_description: "The first question"
|
|
required: true
|
|
type: "text"
|
|
variable: "q1"
|
|
min: 5
|
|
max: 15
|
|
default: "hello"
|
|
choices: ""
|
|
- question_name: "Q2"
|
|
type: "text"
|
|
variable: "q2"
|
|
required: false
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Remove survey from Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
survey_enabled: false
|
|
survey_spec: {}
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Add started notifications to Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
notification_templates_started:
|
|
- "{{ email_not }}"
|
|
- "{{ webhook_not }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Re Add started notifications to Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
notification_templates_started:
|
|
- "{{ email_not }}"
|
|
- "{{ webhook_not }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is not changed"
|
|
|
|
- name: Add success notifications to Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
notification_templates_success:
|
|
- "{{ email_not }}"
|
|
- "{{ webhook_not }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Remove "on start" webhook notification from Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
notification_templates_started:
|
|
- "{{ email_not }}"
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
|
|
- name: Delete Job Template 2
|
|
job_template:
|
|
name: "{{ jt2 }}"
|
|
project: "{{ proj1 }}"
|
|
inventory: Demo Inventory
|
|
playbook: hello_world.yml
|
|
credential: "{{ cred3 }}"
|
|
job_type: run
|
|
state: absent
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- "result is changed"
|
|
|
|
- name: Delete the Demo Project
|
|
project:
|
|
name: "{{ proj1 }}"
|
|
organization: Default
|
|
state: absent
|
|
scm_type: git
|
|
scm_url: https://github.com/ansible/ansible-tower-samples.git
|
|
register: result
|
|
|
|
- name: Delete Credential1
|
|
credential:
|
|
name: "{{ cred1 }}"
|
|
organization: Default
|
|
kind: tower
|
|
state: absent
|
|
|
|
- name: Delete Credential2
|
|
credential:
|
|
name: "{{ cred2 }}"
|
|
organization: Default
|
|
kind: ssh
|
|
state: absent
|
|
|
|
- name: Delete Credential3
|
|
credential:
|
|
name: "{{ cred3 }}"
|
|
organization: Default
|
|
kind: ssh
|
|
state: absent
|
|
|
|
# You can't delete a label directly so no cleanup needed
|
|
|
|
- name: Delete email notification
|
|
notification_template:
|
|
name: "{{ email_not }}"
|
|
organization: Default
|
|
state: absent
|
|
|
|
- name: Delete the instance groups
|
|
instance_group:
|
|
name: "{{ group_name1 }}"
|
|
state: absent
|
|
|
|
- name: Delete webhook notification
|
|
notification_template:
|
|
name: "{{ webhook_not }}"
|
|
organization: Default
|
|
state: absent
|
|
|
|
- name: "Remove the organization"
|
|
tower_organization:
|
|
name: "{{ org_name }}"
|
|
state: absent
|
|
register: result
|