test_ethernet_config.yml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. ---
  15. # Testacase OMNIA_1.1_EF_TC_007
  16. # Execute ethernet.yml with both valid Global and interface configs in ethernet_config.yml
  17. - name: OMNIA_1.1_EF_TC_007
  18. hosts: ethernet
  19. gather_facts: false
  20. tags: VERIFY_OMNIA_01
  21. connection: local
  22. vars_files:
  23. - test_vars/test_ethernet_vars.yml
  24. - ../roles/webui_awx/vars/main.yml
  25. - ../input_params/base_vars.yml
  26. tasks:
  27. - name: Back up of ethernet_config.yml
  28. copy:
  29. src: "{{ ethernet_config_dir }}"
  30. dest: "{{ ethernet_config_backup_dir }}"
  31. mode: '0644'
  32. tags: TC_007
  33. - name: Executing ethernet role with default ethernet_config
  34. vars:
  35. inventory_name: "{{ eth_inventory_name }}"
  36. host_name: "{{ eth_host_name }}"
  37. template_name: "{{ eth_template_value }}"
  38. job_template_name: "{{ eth_job_name }}"
  39. playbook_path: "{{ eth_playbook_path }}"
  40. delete_status: true
  41. include_tasks: "{{ awx_script_path }}"
  42. - block:
  43. - name: Validate default flow
  44. assert:
  45. that:
  46. - "'successful' in job_status.status"
  47. success_msg: "{{ success_message }}"
  48. fail_msg: "{{ fail_case }}"
  49. changed_when: false
  50. - name: Set MTU of port 4
  51. lineinfile:
  52. dest: "{{ ethernet_config_dir }}"
  53. insertbefore: ' ethernet 1/1/5:'
  54. line: ' mtu: 2345'
  55. - name: Executing ethernet role with default ethernet_config
  56. vars:
  57. inventory_name: "{{ eth_inventory_name }}"
  58. host_name: "{{ eth_host_name }}"
  59. template_name: "{{ eth_template_value }}"
  60. job_template_name: "{{ eth_job_name }}"
  61. playbook_path: "{{ eth_playbook_path }}"
  62. delete_status: true
  63. include_tasks: "{{ awx_script_path }}"
  64. - name: Getting MTU of ethernet 1/1/4
  65. command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'mtu'
  66. changed_when: false
  67. register: port4
  68. tags: TC_007,TC_002
  69. - name: Validate role exec output pre and post MTU addition
  70. assert:
  71. that:
  72. - "'MTU 2345 bytes' in port4.stdout"
  73. success_msg: "{{ success_message }}"
  74. fail_msg: "{{ fail_case }}"
  75. changed_when: false
  76. failed_when: false
  77. tags: TC_007
  78. # Testacase OMNIA_1.1_EF_TC_005
  79. # Execute ethernet.yml with save_config set to False
  80. - name: OMNIA_1.1_EF_TC_005
  81. hosts: ethernet
  82. gather_facts: false
  83. tags: TC_005
  84. connection: local
  85. vars_files:
  86. - test_vars/test_ethernet_vars.yml
  87. - ../roles/webui_awx/vars/main.yml
  88. - ../input_params/base_vars.yml
  89. tasks:
  90. - name: Reload switch
  91. command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'reload'
  92. changed_when: false
  93. - name: Pausing for switch to come up
  94. pause:
  95. minutes: 4
  96. - name: Getting MTU of ethernet 1/1/4
  97. command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'mtu'
  98. changed_when: false
  99. register: port4
  100. - block:
  101. - name: Validate that MTU is changed
  102. assert:
  103. that:
  104. - "'MTU 2345 bytes' not in port4.stdout"
  105. success_msg: "{{ success_message }}"
  106. fail_msg: "{{ fail_case }}"
  107. changed_when: false
  108. failed_when: false
  109. # Testacase OMNIA_1.1_EF_TC_006
  110. # Execute ethernet.yml with save_config set to True
  111. - name: OMNIA_1.1_EF_TC_006
  112. hosts: ethernet
  113. gather_facts: false
  114. tags: TC_006
  115. connection: local
  116. vars_files:
  117. - test_vars/test_ethernet_vars.yml
  118. - ../roles/webui_awx/vars/main.yml
  119. - ../input_params/base_vars.yml
  120. tasks:
  121. - name: Set save_changes_to_startup to True in ethernet_vars
  122. ansible.builtin.replace:
  123. dest: "{{ ethernet_config_dir }}"
  124. regexp: 'save_changes_to_startup: false'
  125. replace: 'save_changes_to_startup: True'
  126. - name: Execute network_ethernet role as port 4 has mtu set in ethernet_vars
  127. vars:
  128. inventory_name: "{{ eth_inventory_name }}"
  129. host_name: "{{ eth_host_name }}"
  130. template_name: "{{ eth_template_value }}"
  131. job_template_name: "{{ eth_job_name }}"
  132. playbook_path: "{{ eth_playbook_path }}"
  133. delete_status: true
  134. include_tasks: "{{ awx_script_path }}"
  135. - name: Reload switch
  136. command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'reload'
  137. changed_when: false
  138. - name: Pausing for switch to come up
  139. pause:
  140. minutes: 4
  141. - name: Getting MTU of ethernet 1/1/4
  142. command: ansible-playbook -i "{{ inventory_dir }}" "{{ get_mtu_dir }}" --tags 'mtu'
  143. changed_when: false
  144. register: port4
  145. - block:
  146. - name: Validate that MTU is changed
  147. assert:
  148. that:
  149. - "'MTU 2345 bytes' in port4.stdout"
  150. success_msg: "{{ success_message }}"
  151. fail_msg: "{{ fail_case }}"
  152. changed_when: false
  153. # Testcase OMNIA_1.1_EF_TC_010
  154. # Execute ethernet.yml with invalid Global and correct interface configs in ethernet_config.yml
  155. - name: OMNIA_1.1_EF_TC_010
  156. hosts: ethernet
  157. gather_facts: false
  158. tags: TC_010
  159. connection: local
  160. vars_files:
  161. - test_vars/test_ethernet_vars.yml
  162. - ../roles/webui_awx/vars/main.yml
  163. - ../input_params/base_vars.yml
  164. tasks:
  165. - name: Making interface config invalid
  166. lineinfile:
  167. path: "{{ ethernet_config_dir }}"
  168. insertafter: 'os10_config:'
  169. line: 'gibberish inserted'
  170. tags: TC_007
  171. - name: Executing ethernet role with invalid global config
  172. vars:
  173. inventory_name: "{{ eth_inventory_name }}"
  174. host_name: "{{ eth_host_name }}"
  175. template_name: "{{ eth_template_value }}"
  176. job_template_name: "{{ eth_job_name }}"
  177. playbook_path: "{{ eth_playbook_path }}"
  178. delete_status: true
  179. include_tasks: "{{ awx_script_path }}"
  180. - block:
  181. - name: Validate role exec output
  182. assert:
  183. that:
  184. - "'failed' in job_status.status"
  185. success_msg: "{{ success_message }}"
  186. fail_msg: "{{ fail_case }}"
  187. # Testcase OMNIA_1.1_EF_TC_009
  188. # Execute ethernet.yml with only interface and no Global configs in ethernet_config.yml
  189. - name: OMNIA_1.1_EF_TC_009
  190. hosts: ethernet
  191. gather_facts: false
  192. tags: TC_009
  193. connection: local
  194. vars_files:
  195. - test_vars/test_ethernet_vars.yml
  196. - ../roles/webui_awx/vars/main.yml
  197. - ../input_params/base_vars.yml
  198. tasks:
  199. - name: Deleting global config completely
  200. ansible.builtin.command: sed -i '18,23d' "{{ ethernet_config_dir }}"
  201. args:
  202. warn: no
  203. changed_when: false
  204. tags: TC_009
  205. - name: Executing ethernet role with no global config
  206. vars:
  207. inventory_name: "{{ eth_inventory_name }}"
  208. host_name: "{{ eth_host_name }}"
  209. template_name: "{{ eth_template_value }}"
  210. job_template_name: "{{ eth_job_name }}"
  211. playbook_path: "{{ eth_playbook_path }}"
  212. delete_status: true
  213. include_tasks: "{{ awx_script_path }}"
  214. - block:
  215. - name: Validate default flow
  216. assert:
  217. that:
  218. - "'successful' in job_status.status"
  219. success_msg: "{{ success_message }}"
  220. fail_msg: "{{ fail_case }}"
  221. changed_when: false
  222. # Testcase OMNIA_1.1_EF_TC_011
  223. # Execute ethernet.yml with valid Global and incorrect interface configs in ethernet_config.yml
  224. - name: OMNIA_1.1_EF_TC_011
  225. hosts: ethernet
  226. gather_facts: false
  227. connection: local
  228. vars_files:
  229. - test_vars/test_ethernet_vars.yml
  230. - ../roles/webui_awx/vars/main.yml
  231. - ../input_params/base_vars.yml
  232. tasks:
  233. - name: Making interface config invalid
  234. lineinfile:
  235. path: "{{ ethernet_config_dir }}"
  236. insertafter: 'os10_interface:'
  237. line: 'gibberish inserted'
  238. - name: Executing ethernet role with invalid interface config
  239. vars:
  240. inventory_name: "{{ eth_inventory_name }}"
  241. host_name: "{{ eth_host_name }}"
  242. template_name: "{{ eth_template_value }}"
  243. job_template_name: "{{ eth_job_name }}"
  244. playbook_path: "{{ eth_playbook_path }}"
  245. delete_status: true
  246. include_tasks: "{{ awx_script_path }}"
  247. - block:
  248. - name: Validate role exec output
  249. assert:
  250. that:
  251. - "'failed' in job_status.status"
  252. success_msg: "{{ success_message }}"
  253. fail_msg: "{{ fail_case }}"
  254. # Testcase OMNIA_1.1_EF_TC_008
  255. # Execute ethernet.yml with only Global and no interface configs in ethernet_config.yml
  256. - name: OMNIA_1.1_EF_TC_008
  257. hosts: ethernet
  258. gather_facts: false
  259. connection: local
  260. vars_files:
  261. - test_vars/test_ethernet_vars.yml
  262. - ../roles/webui_awx/vars/main.yml
  263. - ../input_params/base_vars.yml
  264. tasks:
  265. - name: Retrieving ethernet_config backup
  266. copy:
  267. src: "{{ ethernet_config_backup_dir }}"
  268. dest: "{{ ethernet_config_dir }}"
  269. mode: '0644'
  270. tags: TC_008
  271. - name: Removing interface config from ethernet_config
  272. ansible.builtin.command: sed -i '22,117d' "{{ ethernet_config_dir }}"
  273. args:
  274. warn: no
  275. changed_when: false
  276. tags: TC_008
  277. - name: Executing ethernet role with no interface config
  278. vars:
  279. inventory_name: "{{ eth_inventory_name }}"
  280. host_name: "{{ eth_host_name }}"
  281. template_name: "{{ eth_template_value }}"
  282. job_template_name: "{{ eth_job_name }}"
  283. playbook_path: "{{ eth_playbook_path }}"
  284. delete_status: true
  285. include_tasks: "{{ awx_script_path }}"
  286. - block:
  287. - name: Validate default flow
  288. assert:
  289. that:
  290. - "'successful' in job_status.status"
  291. success_msg: "{{ success_message }}"
  292. fail_msg: "{{ fail_case }}"
  293. changed_when: false
  294. - name: Restoring original ethernt_config
  295. copy:
  296. src: "{{ ethernet_config_backup_dir }}"
  297. dest: "{{ ethernet_config_dir }}"
  298. mode: '0644'
  299. tags: TC_008
  300. - name: Set save_changes_to_startup to True in ethernet_vars
  301. ansible.builtin.replace:
  302. dest: "{{ ethernet_config_dir }}"
  303. regexp: 'save_changes_to_startup: false'
  304. replace: 'save_changes_to_startup: True'
  305. - name: Execute network_ethernet role as port 4 has mtu set in ethernet_vars
  306. vars:
  307. inventory_name: "{{ eth_inventory_name }}"
  308. host_name: "{{ eth_host_name }}"
  309. template_name: "{{ eth_template_value }}"
  310. job_template_name: "{{ eth_job_name }}"
  311. playbook_path: "{{ eth_playbook_path }}"
  312. delete_status: true
  313. include_tasks: "{{ awx_script_path }}"
  314. - name: Set save_changes_to_startup to False in ethernet_vars
  315. ansible.builtin.replace:
  316. dest: "{{ ethernet_config_dir }}"
  317. regexp: 'save_changes_to_startup: True'
  318. replace: 'save_changes_to_startup: False'