From fc80cf5241af122cda85eaaf1d09bb5407990efd Mon Sep 17 00:00:00 2001 From: Caleb Boylan Date: Sun, 19 Jan 2020 19:15:14 -0800 Subject: [PATCH] Replace randstr with password plugin in collection tests --- .../targets/tower_group/tasks/main.yml | 57 +++++++++++ .../targets/tower_host/tasks/main.yml | 56 +++++++++++ .../tower_inventory_source/tasks/main.yml | 34 +++++++ .../targets/tower_job_template/tasks/main.yml | 44 +++++++++ .../targets/tower_project/tasks/main.yml | 95 +++++++++++++++++++ .../tower_project_manual/tasks/main.yml | 32 +++++++ 6 files changed, 318 insertions(+) create mode 100644 awx_collection/tests/integration/targets/tower_group/tasks/main.yml create mode 100644 awx_collection/tests/integration/targets/tower_host/tasks/main.yml create mode 100644 awx_collection/tests/integration/targets/tower_inventory_source/tasks/main.yml create mode 100644 awx_collection/tests/integration/targets/tower_job_template/tasks/main.yml create mode 100644 awx_collection/tests/integration/targets/tower_project/tasks/main.yml create mode 100644 awx_collection/tests/integration/targets/tower_project_manual/tasks/main.yml diff --git a/awx_collection/tests/integration/targets/tower_group/tasks/main.yml b/awx_collection/tests/integration/targets/tower_group/tasks/main.yml new file mode 100644 index 0000000000..4d163dfb6c --- /dev/null +++ b/awx_collection/tests/integration/targets/tower_group/tasks/main.yml @@ -0,0 +1,57 @@ +- name: create a tempdir for hostvars + local_action: shell mktemp -d + register: tempdir + +- name: write a file w/ hostvars + local_action: + module: lineinfile + dest: "{{ tempdir.stdout }}/vars" + line: '{"foo": "bar"}' + create: true + +- name: Generate an inventory name + set_fact: + inv_name: "inv-for-group-{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" + +- name: Create an Inventory + tower_inventory: + name: "{{ inv_name }}" + organization: Default + state: present + +- name: Create a Group + tower_group: + name: Some Group + inventory: "{{ inv_name }}" + state: present + source: ec2 + variables: "@{{ tempdir.stdout }}/vars" + register: result + +- assert: + that: + - "result is changed" + +- name: Delete a Group + tower_group: + name: Some Group + inventory: "{{ inv_name }}" + state: absent + register: result + +- assert: + that: + - "result is changed" + +- name: Check module fails with correct msg + tower_group: + name: test-group + description: Group Description + inventory: test-non-existing-inventory + state: present + register: result + ignore_errors: true + +- assert: + that: + - "result.msg =='Failed to update the group, inventory not found: The requested object could not be found.'" diff --git a/awx_collection/tests/integration/targets/tower_host/tasks/main.yml b/awx_collection/tests/integration/targets/tower_host/tasks/main.yml new file mode 100644 index 0000000000..9a47bcff14 --- /dev/null +++ b/awx_collection/tests/integration/targets/tower_host/tasks/main.yml @@ -0,0 +1,56 @@ +- name: create a tempdir for hostvars + local_action: shell mktemp -d + register: tempdir + +- name: write a file w/ hostvars + local_action: + module: lineinfile + dest: "{{ tempdir.stdout }}/vars" + line: '{"foo": "bar"}' + create: true + +- name: Generate an inventory name + set_fact: + inv_name: "inv-for-group-{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" + +- name: Create an Inventory + tower_inventory: + name: "{{ inv_name }}" + organization: Default + state: present + +- name: Create a Host + tower_host: + name: "some-host" + inventory: "{{ inv_name }}" + state: present + variables: "@{{ tempdir.stdout }}/vars" + register: result + +- assert: + that: + - "result is changed" + +- name: Delete a Host + tower_host: + name: "some-host" + inventory: "{{ inv_name }}" + state: absent + register: result + +- assert: + that: + - "result is changed" + +- name: Check module fails with correct msg + tower_host: + name: test-host + description: Host Description + inventory: test-non-existing-inventory + state: present + register: result + ignore_errors: true + +- assert: + that: + - "result.msg =='Failed to update host, inventory not found: The requested object could not be found.'" diff --git a/awx_collection/tests/integration/targets/tower_inventory_source/tasks/main.yml b/awx_collection/tests/integration/targets/tower_inventory_source/tasks/main.yml new file mode 100644 index 0000000000..68658c980d --- /dev/null +++ b/awx_collection/tests/integration/targets/tower_inventory_source/tasks/main.yml @@ -0,0 +1,34 @@ +--- +- name: Add a Tower credential + tower_credential: + description: Credentials for Openstack Test project + name: openstack-test-credential + kind: openstack + organization: Default + project: Test + username: admin + host: https://example.org:5000 + password: passw0rd + domain: test + +- name: Add a Tower inventory + tower_inventory: + description: Test inventory + name: openstack-test-inventory + organization: Default + +- name: Create a source inventory + tower_inventory_source: + name: "source-test-inventory {{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" + description: Source for Test inventory + inventory: openstack-test-inventory + credential: openstack-test-credential + overwrite: True + update_on_launch: True + source_vars: "---\nprivate: false" + source: openstack + register: result + +- assert: + that: + - "result is changed" diff --git a/awx_collection/tests/integration/targets/tower_job_template/tasks/main.yml b/awx_collection/tests/integration/targets/tower_job_template/tasks/main.yml new file mode 100644 index 0000000000..71d8594df0 --- /dev/null +++ b/awx_collection/tests/integration/targets/tower_job_template/tasks/main.yml @@ -0,0 +1,44 @@ +- name: Create an SCM Credential + tower_credential: + name: SCM Credential for JT + organization: Default + kind: scm + +- name: Create a Demo Project + tower_project: + name: Job Template Test Project + organization: Default + state: present + scm_type: git + scm_url: https://github.com/ansible/ansible-tower-samples.git + scm_credential: SCM Credential for JT + register: result + +- name: Wait for the project to be status=successful + uri: + url: "{{ lookup('ENV', 'TOWER_HOST') }}/api/v2/projects/{{ result.id }}/" + method: GET + user: "{{ lookup('ENV', 'TOWER_USERNAME') }}" + password: "{{ lookup('ENV', 'TOWER_PASSWORD') }}" + validate_certs: false + force_basic_auth: true + return_content: true + register: result + until: result.json.summary_fields.last_update is defined and result.json.summary_fields.last_update.status == "successful" + retries: 60 + delay: 1 + +- name: Create a Job Template + tower_job_template: + name: "hello-world {{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" + project: Job Template Test Project + inventory: Demo Inventory + playbook: hello_world.yml + credential: Demo Credential + job_type: run + state: present + register: result + +- assert: + that: + - "result is changed" diff --git a/awx_collection/tests/integration/targets/tower_project/tasks/main.yml b/awx_collection/tests/integration/targets/tower_project/tasks/main.yml new file mode 100644 index 0000000000..4e68db95eb --- /dev/null +++ b/awx_collection/tests/integration/targets/tower_project/tasks/main.yml @@ -0,0 +1,95 @@ +- name: Create an SCM Credential + tower_credential: + name: SCM Credential for Project + organization: Default + kind: scm + +- name: Create a Project + tower_project: + name: my-project + organization: Default + state: present + scm_credential: SCM Credential for Project + register: result + +- assert: + that: + - "result is changed" + +- name: Delete a Project + tower_project: + name: my-project + state: absent + register: result + +- assert: + that: + - "result is changed" + +- name: Create a git project without credentials + tower_project: + name: git project + organization: Default + scm_type: git + scm_url: https://github.com/ansible/ansible + +- name: "Create {{ item }}" + tower_organization: + name: "{{ item }}" + loop: + - TestOrg1 + - TestOrg2 + +- name: "Create credential" + tower_credential: + kind: scm + name: TestCred1 + organization: "{{ item }}" + loop: + - TestOrg2 + - TestOrg1 + +- name: Generate random project name appender + set_fact: + project_name_rand: "{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" + +- name: Create project TestProject + tower_project: + name: "TestProject {{ project_name_rand }}" + organization: TestOrg1 + scm_type: git + scm_url: "https://github.com/ansible/ansible" + scm_credential: TestCred1 + register: multi_org_cred_project + +- assert: + that: + - "multi_org_cred_project is changed" + +- name: Check module fails with correct msg + tower_project: + name: "TestProject {{ project_name_rand }}" + organization: Non Existing Org + scm_type: git + scm_url: "https://github.com/ansible/ansible" + scm_credential: TestCred1 + register: result + ignore_errors: true + +- assert: + that: + - "result.msg == 'Failed to update project, organization not found: Non Existing Org'" + +- name: Check module fails with correct msg + tower_project: + name: "TestProject {{ project_name_rand }}" + organization: TestOrg1 + scm_type: git + scm_url: "https://github.com/ansible/ansible" + scm_credential: Non Existing Credential + register: result + ignore_errors: true + +- assert: + that: + - "result.msg =='Failed to update project, credential not found: Non Existing Credential'" diff --git a/awx_collection/tests/integration/targets/tower_project_manual/tasks/main.yml b/awx_collection/tests/integration/targets/tower_project_manual/tasks/main.yml new file mode 100644 index 0000000000..44d9b5fd06 --- /dev/null +++ b/awx_collection/tests/integration/targets/tower_project_manual/tasks/main.yml @@ -0,0 +1,32 @@ +- name: Generate manual project dir name + set_fact: + project_name: "manual project {{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" + +- name: Generate manual project dir name + set_fact: + project_dir_name: "proj {{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" + +- name: create a project directory for manual project + import_tasks: create_project_dir.yml + +- name: Create a manual project + tower_project: + name: "{{ project_name }}" + organization: Default + scm_type: manual + local_path: "{{ project_dir_name }}" + register: result + +- assert: + that: + - "result is changed" + +- name: Delete a manual project + tower_project: + name: "{{ project_name }}" + state: absent + register: result + +- assert: + that: + - "result is changed"