123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 |
- # Copyright 2020 Dell Inc. or its subsidiaries. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- ---
- # Testcase OMNIA_CRM_US_AWXD_TC_001
- # Test case to verify the prerequisites are installed and execute the AWX deployment
- - name: OMNIA_CRM_US_AWXD_TC_001
- hosts: localhost
- connection: local
- gather_subset:
- - 'min'
- vars_files:
- - ../roles/web_ui/vars/main.yml
- - test_vars/test_web_ui_vars.yml
- tasks:
- - name: Get the docker package facts
- package_facts:
- manager: auto
- tags: TC_001
- - name: Check if docker-ce is already installed
- debug:
- var: ansible_facts.packages['{{ package }}']
- tags: TC_001
- - block:
- - name: Call common role
- include_role:
- name: ../roles/common
- vars:
- input_config_filename: "{{ test_input_config_filename }}"
- - name: Calling the web_ui role to be tested
- include_role:
- name: ../roles/web_ui
- tags: TC_001
- - name: Check that you can connect to github repo and it returns a status 200
- uri:
- url: "{{ awx_git_repo }}"
- status_code: "{{ return_status }}"
- return_content: true
- tags: TC_001
- - name: Check that you can can connect to AWX UI and it returns a status 200
- uri:
- url: "{{ awx_ip }}"
- status_code: "{{ return_status }}"
- return_content: true
- tags: TC_001
- - name: verify awx-server is listening on 8081
- wait_for:
- port: "{{ awx_listening_port }}"
- timeout: "{{ time }}"
- tags: TC_001
- - name: Get the containers count
- shell: |
- set -o pipefail
- docker ps -a | grep awx | wc -l
- register: containers_count
- changed_when: False
- tags: TC_001
- - name: Validate the containers count
- assert:
- that: containers_count.stdout | int >= actual_containers
- success_msg: "{{ awx_exists_msg }}"
- fail_msg: "{{ awx_not_exists_msg }}"
- tags: TC_001
- # Testcase OMNIA_CRM_US_AWXD_TC_002
- # Test case to verify regression testing
- - name: OMNIA_CRM_US_AWXD_TC_002
- hosts: localhost
- connection: local
- gather_subset:
- - 'min'
- vars_files:
- - ../roles/web_ui/vars/main.yml
- - test_vars/test_web_ui_vars.yml
- tasks:
- - block:
- - name: Call common role
- include_role:
- name: ../roles/common
- vars:
- input_config_filename: "{{ test_input_config_filename }}"
- - name: Calling the web_ui role to be tested
- include_role:
- name: ../roles/web_ui
- tags: TC_002
- - name: Check that you can connect to github repo and it returns a status 200
- uri:
- url: "{{ awx_git_repo }}"
- status_code: "{{ return_status }}"
- return_content: true
- tags: TC_002
- - name: Check that you can can connect to AWX UI and it returns a status 200
- uri:
- url: "{{ awx_ip }}"
- status_code: "{{ return_status }}"
- return_content: true
- tags: TC_002
- - name: verify awx-server is listening on 80
- wait_for:
- port: "{{ awx_listening_port }}"
- timeout: "{{ time }}"
- tags: TC_002
- - name: Get the containers count
- shell: |
- set -o pipefail
- docker ps -a | grep awx | wc -l
- register: containers_count
- changed_when: False
- tags: TC_002
- - name: Validate the containers count
- assert:
- that: containers_count.stdout | int >= actual_containers
- success_msg: "{{ awx_exists_msg }}"
- fail_msg: "{{ awx_not_exists_msg }}"
- tags: TC_002
- # Testcase OMNIA_CRM_US_AWXD_TC_003
- # Test case to validate the AWX configuration
- - name: OMNIA_CRM_US_AWXD_TC_003
- hosts: localhost
- connection: local
- gather_subset:
- - 'min'
- vars_files:
- - ../roles/web_ui/vars/main.yml
- - ../roles/common/vars/main.yml
- - test_vars/test_web_ui_vars.yml
- tasks:
- - block:
- - name: Call common role
- include_role:
- name: ../roles/common
- vars:
- input_config_filename: "{{ test_input_config_filename }}"
- - name: Calling the web_ui role to be tested
- include_role:
- name: ../roles/web_ui
- tags: TC_003
- - name: Get the package facts
- package_facts:
- manager: auto
- tags: TC_003
- - name: Check if ansible-tower-cli is already installed
- assert:
- that: "'{{ tower_cli_package_name }}' in ansible_facts.packages"
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- - name: Get the existing organizations
- command: >-
- awx --conf.host "{{ awx_ip }}" --conf.username "{{ awx_user }}" --conf.password "{{ admin_password }}"
- organizations list -f human
- register: organizations_array
- changed_when: False
- tags: TC_003
- - name: Check for organization
- assert:
- that: organization_name in organizations_array.stdout
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- - name: Get the existing projects
- command: >-
- awx --conf.host "{{ awx_ip }}" --conf.username "{{ awx_user }}" --conf.password "{{ admin_password }}"
- projects list -f human
- changed_when: False
- register: projects_array
- tags: TC_003
- - name: Check for project
- assert:
- that: project_name in projects_array.stdout
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- - name: Get the existing inventories
- command: >-
- awx --conf.host "{{ awx_ip }}" --conf.username "{{ awx_user }}" --conf.password "{{ admin_password }}"
- inventory list -f human
- changed_when: False
- register: inventory_array
- tags: TC_003
- - name: Check for inventories
- assert:
- that: omnia_inventory_name in inventory_array.stdout
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- - name: Get the existing groups if omnia-inventory exists
- command: >-
- awx --conf.host "{{ awx_ip }}" --conf.username "{{ awx_user }}" --conf.password "{{ admin_password }}"
- groups list --inventory "{{ omnia_inventory_name }}" -f human
- changed_when: False
- register: groups_array
- when: omnia_inventory_name in inventory_array.stdout
- tags: TC_003
- - name: Check for manager and compute groups
- assert:
- that: manager_group_name and compute_group_name in groups_array.stdout
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- - name: Get the existing credentials
- command: >-
- awx --conf.host "{{ awx_ip }}" --conf.username "{{ awx_user }}" --conf.password "{{ admin_password }}"
- credentials list -f human
- changed_when: False
- register: credentials_array
- tags: TC_003
- - name: Check for "{{ credential_name }}"
- assert:
- that: credential_name in credentials_array.stdout
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- - name: Get the existing job templates
- command: >-
- awx --conf.host "{{ awx_ip }}" --conf.username "{{ awx_user }}" --conf.password "{{ admin_password }}"
- job_templates list -f human
- changed_when: False
- register: templates_array
- tags: TC_003
- - name: Check for templates
- assert:
- that: omnia_template_name and inventory_template_name in templates_array.stdout
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- - name: Get the existing schedules for job templates
- command: >-
- awx --conf.host "{{ awx_ip }}" --conf.username "{{ awx_user }}" --conf.password "{{ admin_password }}"
- schedules list -f human
- changed_when: False
- register: schedules_array
- tags: TC_003
- - name: Check for schedules to job template
- assert:
- that: schedule_name in schedules_array.stdout
- success_msg: "{{ resource_exists_success_msg }}"
- fail_msg: "{{ resource_exists_fail_msg }}"
- tags: TC_003
- # Testcase OMNIA_CRM_US_AWXD_TC_004
- # Execute common role in management station without internet connectivity
- - name: OMNIA_CRM_US_AWXD_TC_004
- hosts: localhost
- connection: local
- gather_subset:
- - 'min'
- vars_files:
- - test_vars/test_common_vars.yml
- - ../roles/common/vars/main.yml
- tasks:
- - name: Down internet connectivity
- lineinfile:
- path: /etc/hosts
- line: "172.16.0.5 github.com"
- state: present
- backup: yes
- tags: TC_004
- - block:
- - name: Call common role
- include_role:
- name: ../roles/common
- vars:
- input_config_filename: "{{ test_input_config_filename }}"
- - name: Calling the web_ui role to be tested
- include_role:
- name: ../roles/web_ui
- rescue:
- - name: Validate internet connectivity failure message
- assert:
- that: internet_status in internet_value.msg
- success_msg: "{{ internet_check_success_msg }}"
- fail_msg: "{{ internet_check_fail_msg }}"
- tags: TC_004
- - name: Up internet connectivity
- lineinfile:
- path: /etc/hosts
- line: "172.16.0.5 github.com"
- state: absent
- tags: TC_004
- # Testcase OMNIA_CRM_US_AWXD_TC_005
- # Execute web_ui role in management station and reboot the server
- - name: OMNIA_CRM_US_AWXD_TC_005
- hosts: localhost
- connection: local
- vars_files:
- - test_vars/test_web_ui_vars.yml
- tasks:
- - name: Get last uptime of the server
- command: uptime -s
- register: uptime_status
- changed_when: false
- ignore_errors: yes
- tags: TC_005
- - name: Get current date
- command: date +"%Y-%m-%d %H"
- register: current_time
- changed_when: false
- ignore_errors: yes
- tags: TC_005
- - block:
- - name: Call common role
- include_role:
- name: ../roles/common
- vars:
- input_config_filename: "{{ test_input_config_filename }}"
- - name: Calling the web_ui role to be tested
- include_role:
- name: ../roles/web_ui
- tags: TC_005
- - name: Reboot localhost
- command: reboot
- when: current_time.stdout not in uptime_status.stdout
- tags: TC_005
- - name: Inspect AWX web container
- docker_container_info:
- name: "{{ docker_container_name }}"
- register: awx_container_status
- tags: TC_005
- - name: Verify AWX container is running after reboot
- assert:
- that:
- - "'running' in awx_container_status.container.State.Status"
|