|
@@ -0,0 +1,346 @@
|
|
|
|
+# Copyright 2021 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.
|
|
|
|
+
|
|
|
|
+---
|
|
|
|
+# Testacase OMNIA_1.1_EF_TC_007
|
|
|
|
+# Execute ethernet.yml with both valid Global and interface configs in ethernet_config.yml
|
|
|
|
+- name: OMNIA_1.1_EF_TC_007
|
|
|
|
+ hosts: ethernet
|
|
|
|
+ gather_facts: false
|
|
|
|
+ tags: TC_007
|
|
|
|
+ connection: local
|
|
|
|
+ vars_files:
|
|
|
|
+ - test_vars/test_ethernet_vars.yml
|
|
|
|
+ - ../roles/webui_awx/vars/main.yml
|
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
|
+ tasks:
|
|
|
|
+ - name: Back up of ethernet_config.yml
|
|
|
|
+ copy:
|
|
|
|
+ src: "{{ ethernet_config_dir }}"
|
|
|
|
+ dest: "{{ ethernet_config_backup_dir }}"
|
|
|
|
+ mode: "{{ file_perm }}"
|
|
|
|
+ tags: TC_007
|
|
|
|
+
|
|
|
|
+ - name: Executing ethernet role with default ethernet_config
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - block:
|
|
|
|
+ - name: Validate default flow
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - ethernet_success_msg in job_status.status
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+ changed_when: false
|
|
|
|
+
|
|
|
|
+ - name: Set MTU of port {{ port_num }}
|
|
|
|
+ lineinfile:
|
|
|
|
+ dest: "{{ ethernet_config_dir }}"
|
|
|
|
+ insertbefore: "{{ search_line }}"
|
|
|
|
+ line: "{{ add_mtu_line }}"
|
|
|
|
+
|
|
|
|
+ - name: Executing ethernet role with default ethernet_config
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - name: Getting MTU of ethernet {{ validation_port }}
|
|
|
|
+ command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'mtu'
|
|
|
|
+ changed_when: false
|
|
|
|
+ register: mtu_out
|
|
|
|
+ tags: TC_007,TC_002
|
|
|
|
+
|
|
|
|
+ - name: Validate role exec output pre and post MTU addition
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - validate_mtu_line in mtu_out.stdout
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+ changed_when: false
|
|
|
|
+ failed_when: false
|
|
|
|
+ tags: TC_007
|
|
|
|
+
|
|
|
|
+# Testacase OMNIA_1.1_EF_TC_005
|
|
|
|
+# Execute ethernet.yml with save_config set to False
|
|
|
|
+- name: OMNIA_1.1_EF_TC_005
|
|
|
|
+ hosts: ethernet
|
|
|
|
+ gather_facts: false
|
|
|
|
+ tags: TC_005
|
|
|
|
+ connection: local
|
|
|
|
+ vars_files:
|
|
|
|
+ - test_vars/test_ethernet_vars.yml
|
|
|
|
+ - ../roles/webui_awx/vars/main.yml
|
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
|
+ tasks:
|
|
|
|
+ - name: Reload switch
|
|
|
|
+ command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'reload'
|
|
|
|
+ changed_when: false
|
|
|
|
+
|
|
|
|
+ - name: Pausing for switch to come up
|
|
|
|
+ pause:
|
|
|
|
+ minutes: "{{ time_to_pause }}"
|
|
|
|
+
|
|
|
|
+ - name: Getting MTU of ethernet {{ validation_port }}
|
|
|
|
+ command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'mtu'
|
|
|
|
+ changed_when: false
|
|
|
|
+ register: mtu_out
|
|
|
|
+
|
|
|
|
+ - block:
|
|
|
|
+ - name: Validate that MTU is changed
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - validate_mtu_line not in mtu_out.stdout
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+ changed_when: false
|
|
|
|
+ failed_when: false
|
|
|
|
+
|
|
|
|
+# Testacase OMNIA_1.1_EF_TC_006
|
|
|
|
+# Execute ethernet.yml with save_config set to True
|
|
|
|
+- name: OMNIA_1.1_EF_TC_006
|
|
|
|
+ hosts: ethernet
|
|
|
|
+ gather_facts: false
|
|
|
|
+ tags: TC_006
|
|
|
|
+ connection: local
|
|
|
|
+ vars_files:
|
|
|
|
+ - test_vars/test_ethernet_vars.yml
|
|
|
|
+ - ../roles/webui_awx/vars/main.yml
|
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
|
+ tasks:
|
|
|
|
+ - name: Set save_changes_to_startup to True in ethernet_vars
|
|
|
|
+ ansible.builtin.replace:
|
|
|
|
+ dest: "{{ ethernet_config_dir }}"
|
|
|
|
+ regexp: 'save_changes_to_startup: false'
|
|
|
|
+ replace: 'save_changes_to_startup: True'
|
|
|
|
+
|
|
|
|
+ - name: Execute network_ethernet role as port 4 has mtu set in ethernet_vars
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - name: Reload switch
|
|
|
|
+ command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'reload'
|
|
|
|
+ changed_when: false
|
|
|
|
+
|
|
|
|
+ - name: Pausing for switch to come up
|
|
|
|
+ pause:
|
|
|
|
+ minutes: "{{ time_to_pause }}"
|
|
|
|
+
|
|
|
|
+ - name: Getting MTU of ethernet {{ validation_port }}
|
|
|
|
+ command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'mtu'
|
|
|
|
+ changed_when: false
|
|
|
|
+ register: mtu_out
|
|
|
|
+
|
|
|
|
+ - block:
|
|
|
|
+ - name: Validate that MTU is changed
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - validate_mtu_line in mtu_out.stdout
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+ changed_when: false
|
|
|
|
+
|
|
|
|
+# Testcase OMNIA_1.1_EF_TC_010
|
|
|
|
+# Execute ethernet.yml with invalid Global and correct interface configs in ethernet_config.yml
|
|
|
|
+- name: OMNIA_1.1_EF_TC_010
|
|
|
|
+ hosts: ethernet
|
|
|
|
+ gather_facts: false
|
|
|
|
+ tags: TC_010
|
|
|
|
+ connection: local
|
|
|
|
+ vars_files:
|
|
|
|
+ - test_vars/test_ethernet_vars.yml
|
|
|
|
+ - ../roles/webui_awx/vars/main.yml
|
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
|
+ tasks:
|
|
|
|
+ - name: Making interface config invalid
|
|
|
|
+ lineinfile:
|
|
|
|
+ path: "{{ ethernet_config_dir }}"
|
|
|
|
+ insertafter: 'os10_config:'
|
|
|
|
+ line: 'gibberish inserted'
|
|
|
|
+ tags: TC_007
|
|
|
|
+
|
|
|
|
+ - name: Executing ethernet role with invalid global config
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - block:
|
|
|
|
+ - name: Validate role exec output
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - ethernet_fail_msg in job_status.status
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+
|
|
|
|
+# Testcase OMNIA_1.1_EF_TC_009
|
|
|
|
+# Validation of ethernet default configuration
|
|
|
|
+- name: OMNIA_1.1_EF_TC_009
|
|
|
|
+ hosts: ethernet
|
|
|
|
+ gather_facts: false
|
|
|
|
+ tags: VERIFY_OMNIA_01
|
|
|
|
+ connection: local
|
|
|
|
+ vars_files:
|
|
|
|
+ - test_vars/test_ethernet_vars.yml
|
|
|
|
+ - ../roles/webui_awx/vars/main.yml
|
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
|
+ tasks:
|
|
|
|
+ - name: Executing ethernet role
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - block:
|
|
|
|
+ - name: Validate default flow
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - ethernet_success_msg in job_status.status
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+ changed_when: false
|
|
|
|
+
|
|
|
|
+# Testcase OMNIA_1.1_EF_TC_011
|
|
|
|
+# Execute ethernet.yml with valid Global and incorrect interface configs in ethernet_config.yml
|
|
|
|
+- name: OMNIA_1.1_EF_TC_011
|
|
|
|
+ hosts: ethernet
|
|
|
|
+ gather_facts: false
|
|
|
|
+ connection: local
|
|
|
|
+ vars_files:
|
|
|
|
+ - test_vars/test_ethernet_vars.yml
|
|
|
|
+ - ../roles/webui_awx/vars/main.yml
|
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
|
+ tasks:
|
|
|
|
+ - name: Making interface config invalid
|
|
|
|
+ lineinfile:
|
|
|
|
+ path: "{{ ethernet_config_dir }}"
|
|
|
|
+ insertafter: 'os10_interface:'
|
|
|
|
+ line: 'gibberish inserted'
|
|
|
|
+
|
|
|
|
+ - name: Executing ethernet role with invalid interface config
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - block:
|
|
|
|
+ - name: Validate role exec output
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - ethernet_fail_msg in job_status.status
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+# Testcase OMNIA_1.1_EF_TC_008
|
|
|
|
+# Execute ethernet.yml with only Global and no interface configs in ethernet_config.yml
|
|
|
|
+- name: OMNIA_1.1_EF_TC_008
|
|
|
|
+ hosts: ethernet
|
|
|
|
+ gather_facts: false
|
|
|
|
+ connection: local
|
|
|
|
+ vars_files:
|
|
|
|
+ - test_vars/test_ethernet_vars.yml
|
|
|
|
+ - ../roles/webui_awx/vars/main.yml
|
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
|
+ tasks:
|
|
|
|
+ - name: Retrieving ethernet_config backup
|
|
|
|
+ copy:
|
|
|
|
+ src: "{{ ethernet_config_backup_dir }}"
|
|
|
|
+ dest: "{{ ethernet_config_dir }}"
|
|
|
|
+ mode: "{{ file_perm }}"
|
|
|
|
+ tags: TC_008
|
|
|
|
+
|
|
|
|
+ - name: Removing interface config from ethernet_config
|
|
|
|
+ ansible.builtin.command: sed -i '22,117d' "{{ ethernet_config_dir }}"
|
|
|
|
+ args:
|
|
|
|
+ warn: no
|
|
|
|
+ changed_when: false
|
|
|
|
+ tags: TC_008
|
|
|
|
+
|
|
|
|
+ - name: Executing ethernet role with no interface config
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - block:
|
|
|
|
+ - name: Validate default flow
|
|
|
|
+ assert:
|
|
|
|
+ that:
|
|
|
|
+ - ethernet_success_msg in job_status.status
|
|
|
|
+ success_msg: "{{ success_message }}"
|
|
|
|
+ fail_msg: "{{ fail_case }}"
|
|
|
|
+ changed_when: false
|
|
|
|
+
|
|
|
|
+ - name: Restoring original ethernt_config
|
|
|
|
+ copy:
|
|
|
|
+ src: "{{ ethernet_config_backup_dir }}"
|
|
|
|
+ dest: "{{ ethernet_config_dir }}"
|
|
|
|
+ mode: "{{ file_perm }}"
|
|
|
|
+ tags: TC_008
|
|
|
|
+
|
|
|
|
+ - name: Set save_changes_to_startup to True in ethernet_vars
|
|
|
|
+ ansible.builtin.replace:
|
|
|
|
+ dest: "{{ ethernet_config_dir }}"
|
|
|
|
+ regexp: 'save_changes_to_startup: false'
|
|
|
|
+ replace: 'save_changes_to_startup: True'
|
|
|
|
+
|
|
|
|
+ - name: Execute network_ethernet role as port 4 has mtu set in ethernet_vars
|
|
|
|
+ vars:
|
|
|
|
+ inventory_name: "{{ eth_inventory_name }}"
|
|
|
|
+ host_name: "{{ eth_host_name }}"
|
|
|
|
+ template_name: "{{ eth_template_value }}"
|
|
|
|
+ job_template_name: "{{ eth_job_name }}"
|
|
|
|
+ playbook_path: "{{ eth_playbook_path }}"
|
|
|
|
+ delete_status: true
|
|
|
|
+ include_tasks: "{{ awx_script_path }}"
|
|
|
|
+
|
|
|
|
+ - name: Set save_changes_to_startup to False in ethernet_vars
|
|
|
|
+ ansible.builtin.replace:
|
|
|
|
+ dest: "{{ ethernet_config_dir }}"
|
|
|
|
+ regexp: 'save_changes_to_startup: True'
|
|
|
|
+ replace: 'save_changes_to_startup: False'
|