Kaynağa Gözat

TA - Creating common storage for provision and web_ui containers

Signed-off-by: abhishek-s-a <a_sa@dellteam.com>
abhishek-s-a 4 yıl önce
ebeveyn
işleme
355ad86fbf

+ 225 - 0
appliance/test_common.yml

@@ -0,0 +1,225 @@
+#  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_DIO_US_DVC_TC_001 
+# Execute common role in management station with os installed centos 8.2
+- name: OMNIA_DIO_US_DVC_TC_001
+  hosts: localhost
+  connection: local
+  gather_subset:
+    - 'min'
+  vars_files:
+    - test_vars/test_common_vars.yml
+    - ../roles/common/vars/main.yml
+  tasks:
+    - name: Check OS support
+      fail:
+        msg: "{{ os_status }}"
+      when: not(ansible_distribution == os_name and ansible_distribution_version >= os_version)
+      tags: TC_001
+
+    - block:
+        - name: Call common role
+          include_role:
+            name: ../roles/common
+      tags: TC_001
+
+    - name: Fetching docker volume info
+      docker_volume_info:
+        name: "{{ docker_volume_name }}"
+      register: docker_volume_status
+      tags: TC_001
+
+    - name: Validate docker volume
+      assert:
+        that:
+          - docker_volume_status.exists
+        fail_msg: "{{ docker_volume_fail_msg }}"
+        success_msg: "{{ docker_volume_success_msg }}"
+      tags: TC_001
+
+# Testcase OMNIA_DIO_US_DVC_TC_002 
+# Execute common role in management station with docker volume omnia-storage already present
+- name: OMNIA_DIO_US_DVC_TC_002
+  hosts: localhost
+  connection: local
+  gather_subset:
+    - 'min'
+  vars_files:
+    - test_vars/test_common_vars.yml
+    - ../roles/common/vars/main.yml
+  tasks:
+    - block:
+        - name: Call common role
+          include_role:
+            name: ../roles/common
+      tags: TC_002
+
+    - name: Fetching docker volume info
+      docker_volume_info:
+        name: "{{ docker_volume_name }}"
+      register: docker_volume_status
+      tags: TC_002
+
+    - name: Validate docker volume
+      assert:
+        that:
+          - docker_volume_status.exists
+        fail_msg: "{{ docker_volume_fail_msg }}"
+        success_msg: "{{ docker_volume_success_msg }}"
+      tags: TC_002
+
+# Testcase OMNIA_DIO_US_DVC_TC_003 
+# Execute common role in management station with os installed different than centos 8.2
+- name: OMNIA_DIO_US_DVC_TC_003
+  hosts: localhost
+  connection: local
+  gather_subset:
+    - 'min'
+  vars_files:
+    - test_vars/test_common_vars.yml
+    - ../roles/common/vars/main.yml
+  tasks:
+    - block:
+        - name: Call common role
+          include_role:
+            name: ../roles/common
+          vars:
+            ansible_distribution_version: "{{ centos_version }}"
+
+      rescue:
+        - name: Validate OS check failure message
+          assert:
+            that: os_status in os_value.msg
+            success_msg: "{{ os_check_success_msg }}"
+            fail_msg: "{{ os_check_fail_msg }}"
+      tags: TC_003
+
+# Testcase OMNIA_DIO_US_DVC_TC_004
+# Execute common role in management station without internet connectivity
+- name: OMNIA_DIO_US_DVC_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
+
+      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_DIO_US_DVC_TC_005
+# Execute common role in management station with different user than root
+- name: OMNIA_DIO_US_DVC_TC_005
+  hosts: localhost
+  connection: local
+  gather_subset:
+    - 'min'
+  vars_files:
+    - test_vars/test_common_vars.yml
+  tasks:
+    - name: Create temp user
+      user:
+        name: temp
+      tags: TC_005
+
+    - block:
+        - name: Execute playbook with different user
+          command: ansible-playbook ../appliance.yml --become-user=temp
+          register: temp_user_output
+
+      rescue:
+        - name: Validate the different user execution failure message
+          assert:
+            that:
+              - '"FAILED" in temp_user_output.stdout'
+              - '"This command has to be run under the root user" in temp_user_output.stdout'
+            success_msg: "{{ different_user_check_success_msg }}"
+            fail_msg: "{{ different_user_check_fail_msg }}"
+      tags: TC_005
+
+    - name: Remove temp user
+      user:
+        name: temp
+        state: absent
+        remove: yes
+      tags: TC_005
+
+# Testcase OMNIA_DIO_US_DVC_TC_006
+# Execute common role in management station with selinux enabled.
+- name: OMNIA_DIO_US_DVC_TC_006
+  hosts: localhost
+  connection: local
+  gather_subset:
+    - 'min'
+  vars_files:
+    - test_vars/test_common_vars.yml
+    - ../roles/common/vars/main.yml
+  tasks:
+    - name: Enable selinux
+      selinux:
+        policy: targeted
+        state: enforcing
+      when: ansible_selinux.status == "disabled"
+      tags: TC_006
+
+    - name: Reboot localhost
+      command: reboot
+      when: ansible_selinux.status == "disabled"
+      tags: TC_006
+
+    - block:
+        - name: Call common role
+          include_role:
+            name: ../roles/common
+
+      rescue:
+        - name: Validate selinux failure message
+          assert:
+            that: selinux_status in selinux_value.msg
+            success_msg: "{{ selinux_check_success_msg }}"
+            fail_msg: "{{ selinux_check_fail_msg  }}"
+      tags: TC_006
+
+    - name: Disable selinux
+      selinux:
+        state: disabled
+      tags: TC_006

+ 37 - 0
appliance/test_vars/test_common_vars.yml

@@ -0,0 +1,37 @@
+#  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.
+---
+
+# vars file for test_common.yml file
+docker_volume_fail_msg: "Docker volume omnia-storage does not exist"
+
+docker_volume_success_msg: "Docker volume omnia-storage exists"
+
+centos_version: '7.8'
+
+os_check_success_msg: "OS check passed"
+
+os_check_fail_msg: "OS check failed"
+
+internet_check_success_msg: "Internet connectivity check passed"
+
+internet_check_fail_msg: "Internet connectivity check failed"
+
+different_user_check_success_msg: "Different user execution check passed"
+
+different_user_check_fail_msg: "Different user execution check failed"
+
+selinux_check_success_msg: "selinux check passed"
+
+selinux_check_fail_msg: "selinux check failed"