test_provision_cdip.yml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. # Copyright 2020 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. # Testcase OMNIA_DIO_US_CDIP_TC_001
  16. # Execute provison role in management station with cobbler as empty
  17. - name: OMNIA_DIO_US_CDIP_TC_001
  18. hosts: localhost
  19. connection: local
  20. vars_files:
  21. - test_vars/test_provision_vars.yml
  22. - ../roles/provision/vars/main.yml
  23. tasks:
  24. - name: Delete the cobbler container if exits
  25. docker_container:
  26. name: "{{ docker_container_name }}"
  27. state: absent
  28. tags: TC_001
  29. - name: Delete docker image if exists
  30. docker_image:
  31. name: "{{ docker_image_name }}"
  32. tag: "{{ docker_image_tag }}"
  33. state: absent
  34. tags: TC_001
  35. - block:
  36. - name: Test cobbler password with empty string
  37. include_role:
  38. name: ../roles/provision
  39. tasks_from: "{{ item }}"
  40. with_items:
  41. - "{{ cobbler_image_files }}"
  42. vars:
  43. no_prompt: true
  44. admin_password: "{{ empty_password }}"
  45. admin_password_confirm: "{{ empty_password }}"
  46. rescue:
  47. - name: Validate failure message
  48. assert:
  49. that: fail_msg_pwd_format in msg_pwd_format.msg
  50. success_msg: "{{ validate_password_success_msg }}"
  51. fail_msg: "{{ validate_password_fail_msg }}"
  52. tags: TC_001
  53. # Testcase OMNIA_DIO_US_CDIP_TC_002
  54. # Execute provison role in management station with cobbler password of length 8 characters
  55. - name: OMNIA_DIO_US_CDIP_TC_002
  56. hosts: localhost
  57. connection: local
  58. vars_files:
  59. - test_vars/test_provision_vars.yml
  60. - ../roles/provision/vars/main.yml
  61. tasks:
  62. - name: Delete the cobbler container if exits
  63. docker_container:
  64. name: "{{ docker_container_name }}"
  65. state: absent
  66. tags: TC_002
  67. - name: Delete docker image if exists
  68. docker_image:
  69. name: "{{ docker_image_name }}"
  70. tag: "{{ docker_image_tag }}"
  71. state: absent
  72. tags: TC_002
  73. - block:
  74. - name: Test cobbler password with 8 characters
  75. include_role:
  76. name: ../roles/provision
  77. tasks_from: "{{ item }}"
  78. with_items:
  79. - "{{ cobbler_image_files }}"
  80. vars:
  81. no_prompt: true
  82. admin_password: "{{ boundary_password }}"
  83. admin_password_confirm: "{{ boundary_password }}"
  84. always:
  85. - name: Validate success message
  86. assert:
  87. that: success_msg_pwd_format in msg_pwd_format.msg
  88. success_msg: "{{ validate_password_success_msg }}"
  89. fail_msg: "{{ validate_password_fail_msg }}"
  90. tags: TC_002
  91. # Testcase OMNIA_DIO_US_CDIP_TC_003
  92. # Execute provison role in management station with cobbler password of length greather than 15 characters
  93. - name: OMNIA_DIO_US_CDIP_TC_003
  94. hosts: localhost
  95. connection: local
  96. vars_files:
  97. - test_vars/test_provision_vars.yml
  98. - ../roles/provision/vars/main.yml
  99. tasks:
  100. - name: Delete the cobbler container if exits
  101. docker_container:
  102. name: "{{ docker_container_name }}"
  103. state: absent
  104. tags: TC_003
  105. - name: Delete docker image if exists
  106. docker_image:
  107. name: "{{ docker_image_name }}"
  108. tag: "{{ docker_image_tag }}"
  109. state: absent
  110. tags: TC_003
  111. - block:
  112. - name: Test cobbler password with lengthy string
  113. include_role:
  114. name: ../roles/provision
  115. tasks_from: "{{ item }}"
  116. with_items:
  117. - "{{ cobbler_image_files }}"
  118. vars:
  119. no_prompt: true
  120. admin_password: "{{ lengthy_password }}"
  121. admin_password_confirm: "{{ lengthy_password }}"
  122. always:
  123. - name: Validate success message
  124. assert:
  125. that: success_msg_pwd_format in msg_pwd_format.msg
  126. success_msg: "{{ validate_password_success_msg }}"
  127. fail_msg: "{{ validate_password_fail_msg }}"
  128. tags: TC_003
  129. # Testcase OMNIA_DIO_US_CDIP_TC_004
  130. # Execute provison role in management station with cobbler password contains white spaces
  131. - name: OMNIA_DIO_US_CDIP_TC_004
  132. hosts: localhost
  133. connection: local
  134. vars_files:
  135. - test_vars/test_provision_vars.yml
  136. - ../roles/provision/vars/main.yml
  137. tasks:
  138. - name: Delete the cobbler container if exits
  139. docker_container:
  140. name: "{{ docker_container_name }}"
  141. state: absent
  142. tags: TC_004
  143. - name: Delete docker image if exists
  144. docker_image:
  145. name: "{{ docker_image_name }}"
  146. tag: "{{ docker_image_tag }}"
  147. state: absent
  148. tags: TC_004
  149. - block:
  150. - name: Test cobbler password with string contains white space
  151. include_role:
  152. name: ../roles/provision
  153. tasks_from: "{{ item }}"
  154. with_items:
  155. - "{{ cobbler_image_files }}"
  156. vars:
  157. no_prompt: true
  158. admin_password: "{{ whitespace_password }}"
  159. admin_password_confirm: "{{ whitespace_password }}"
  160. always:
  161. - name: Validate success message
  162. assert:
  163. that: success_msg_pwd_format in msg_pwd_format.msg
  164. success_msg: "{{ validate_password_success_msg }}"
  165. fail_msg: "{{ validate_password_fail_msg }}"
  166. tags: TC_004
  167. # Testcase OMNIA_DIO_US_CDIP_TC_005
  168. # Execute provison role in management station with cobbler password as string with special characters
  169. - name: OMNIA_DIO_US_CDIP_TC_005
  170. hosts: localhost
  171. connection: local
  172. vars_files:
  173. - test_vars/test_provision_vars.yml
  174. - ../roles/provision/vars/main.yml
  175. tasks:
  176. - name: Delete the cobbler container if exits
  177. docker_container:
  178. name: "{{ docker_container_name }}"
  179. state: absent
  180. tags: TC_005
  181. - name: Delete docker image if exists
  182. docker_image:
  183. name: "{{ docker_image_name }}"
  184. tag: "{{ docker_image_tag }}"
  185. state: absent
  186. tags: TC_005
  187. - block:
  188. - name: Test cobbler password with string contains special characters
  189. include_role:
  190. name: ../roles/provision
  191. tasks_from: "{{ item }}"
  192. with_items:
  193. - "{{ cobbler_image_files }}"
  194. vars:
  195. no_prompt: true
  196. admin_password: "{{ special_character_password }}"
  197. admin_password_confirm: "{{ special_character_password }}"
  198. always:
  199. - name: Validate success message
  200. assert:
  201. that: success_msg_pwd_format in msg_pwd_format.msg
  202. success_msg: "{{ validate_password_success_msg }}"
  203. fail_msg: "{{ validate_password_success_msg }}"
  204. tags: TC_005
  205. # Testcase OMNIA_DIO_US_CDIP_TC_006
  206. # Execute provison role in management station with cobbler password and cobbler password confirm having unequal values
  207. - name: OMNIA_DIO_US_CDIP_TC_006
  208. hosts: localhost
  209. connection: local
  210. vars_files:
  211. - test_vars/test_provision_vars.yml
  212. - ../roles/provision/vars/main.yml
  213. tasks:
  214. - name: Delete the cobbler container if exits
  215. docker_container:
  216. name: "{{ docker_container_name }}"
  217. state: absent
  218. tags: TC_006
  219. - name: Delete docker image if exists
  220. docker_image:
  221. name: "{{ docker_image_name }}"
  222. tag: "{{ docker_image_tag }}"
  223. state: absent
  224. tags: TC_006
  225. - block:
  226. - name: Test cobbler password with unequal values
  227. include_role:
  228. name: ../roles/provision
  229. tasks_from: "{{ item }}"
  230. with_items:
  231. - "{{ cobbler_image_files }}"
  232. vars:
  233. no_prompt: true
  234. admin_password: "{{ boundary_password }}"
  235. admin_password_confirm: "{{ lengthy_password }}"
  236. rescue:
  237. - name: Validate failure message
  238. assert:
  239. that: fail_msg_pwd_confirm in msg_pwd_confirm.msg
  240. success_msg: "{{ validate_password_success_msg }}"
  241. fail_msg: "{{ validate_password_success_msg }}"
  242. tags: TC_006
  243. # Testcase OMNIA_DIO_US_CDIP_TC_007
  244. # Execute provison role in management station where docker service not running
  245. - name: OMNIA_DIO_US_CDIP_TC_007
  246. hosts: localhost
  247. connection: local
  248. vars_files:
  249. - test_vars/test_provision_vars.yml
  250. - ../roles/provision/vars/main.yml
  251. tasks:
  252. - name: Delete the cobbler container if exits
  253. docker_container:
  254. name: "{{ docker_container_name }}"
  255. state: absent
  256. tags: TC_007
  257. - name: Delete docker image if exists
  258. docker_image:
  259. name: "{{ docker_image_name }}"
  260. tag: "{{ docker_image_tag }}"
  261. state: absent
  262. tags: TC_007
  263. - name: Stop docker service
  264. service:
  265. name: docker
  266. state: stopped
  267. tags: TC_007
  268. - block:
  269. - name: Call provision role
  270. include_role:
  271. name: ../roles/provision
  272. vars:
  273. no_prompt: true
  274. admin_password: "{{ boundary_password }}"
  275. admin_password_confirm: "{{ boundary_password }}"
  276. - name: Docker service stopped usecase fail message
  277. fail:
  278. msg: "{{ docker_check_fail_msg }}"
  279. rescue:
  280. - name: Docker service stopped usecase success message
  281. debug:
  282. msg: "{{ docker_check_success_msg }}"
  283. always:
  284. - name: Start docker service
  285. service:
  286. name: docker
  287. state: started
  288. tags: TC_007
  289. # Testcase OMNIA_DIO_US_CDIP_TC_008
  290. # Execute provison role in management station with os installed centos 8.2
  291. - name: OMNIA_DIO_US_CDIP_TC_008
  292. hosts: localhost
  293. connection: local
  294. vars_files:
  295. - test_vars/test_provision_vars.yml
  296. - ../roles/provision/vars/main.yml
  297. tasks:
  298. - name: Delete the cobbler container if exits
  299. docker_container:
  300. name: "{{ docker_container_name }}"
  301. state: absent
  302. tags: TC_008
  303. - name: Delete docker image if exists
  304. docker_image:
  305. name: "{{ docker_image_name }}"
  306. tag: "{{ docker_image_tag }}"
  307. state: absent
  308. tags: TC_008
  309. - block:
  310. - name: Call provision role
  311. include_role:
  312. name: ../roles/provision
  313. tasks_from: "{{ item }}"
  314. with_items:
  315. - "{{ cobbler_image_files }}"
  316. vars:
  317. no_prompt: true
  318. admin_password: "{{ boundary_password }}"
  319. admin_password_confirm: "{{ boundary_password }}"
  320. tags: TC_008
  321. - name: Inspect cobbler docker image
  322. docker_image_info:
  323. name: "{{ docker_image_name }}"
  324. register: cobbler_image_status
  325. tags: TC_008
  326. - name: Validate cobbler docker image
  327. assert:
  328. that:
  329. - cobbler_image_status.images
  330. fail_msg: "{{ cobbler_img_fail_msg }}"
  331. success_msg: "{{ cobbler_img_success_msg }}"
  332. tags: TC_008
  333. - name: Inspect cobbler container
  334. docker_container_info:
  335. name: "{{ docker_container_name }}"
  336. register: cobbler_cnt_status
  337. tags: TC_008
  338. - name: Validate cobbler docker container
  339. assert:
  340. that:
  341. - cobbler_cnt_status.exists
  342. fail_msg: "{{ cobbler_cnt_fail_msg }}"
  343. success_msg: "{{ cobbler_cnt_success_msg }}"
  344. tags: TC_008
  345. - name: Validate first NIC is not assigned to public internet
  346. shell: |
  347. set -o pipefail
  348. ip route get 8.8.8.8 | awk '{print $5}'
  349. register: nic_output
  350. args:
  351. executable: /bin/bash
  352. failed_when: first_nic in nic_output.stdout
  353. changed_when: false
  354. tags: TC_008
  355. - name: "Validate NIC-1 is assigned to IP {{ nic1_ip_address }}"
  356. assert:
  357. that: "'{{ nic1_ip_address }}' in ansible_eno1.ipv4.address"
  358. fail_msg: "{{ nic_check_fail_msg }}"
  359. success_msg: "{{ nic_check_success_msg }}"
  360. tags: TC_008
  361. # Testcase OMNIA_DIO_US_CDIP_TC_009
  362. # Execute provison role in management station where cobbler container and image already created
  363. - name: OMNIA_DIO_US_CDIP_TC_009
  364. hosts: localhost
  365. connection: local
  366. vars_files:
  367. - test_vars/test_provision_vars.yml
  368. - ../roles/provision/vars/main.yml
  369. tasks:
  370. - block:
  371. - name: Call provision role
  372. include_role:
  373. name: ../roles/provision
  374. vars:
  375. no_prompt: true
  376. username: "{{ cobbler_username }}"
  377. admin_password: "{{ boundary_password }}"
  378. admin_password_confirm: "{{ boundary_password }}"
  379. tags: TC_009
  380. - name: Inspect cobbler docker image
  381. docker_image_info:
  382. name: "{{ docker_image_name }}"
  383. register: cobbler_image_status
  384. tags: TC_009
  385. - name: Validate cobbler docker image
  386. assert:
  387. that:
  388. - cobbler_image_status.images
  389. fail_msg: "{{ cobbler_img_fail_msg }}"
  390. success_msg: "{{ cobbler_img_success_msg }}"
  391. tags: TC_009
  392. - name: Inspect cobbler container
  393. docker_container_info:
  394. name: "{{ docker_container_name }}"
  395. register: cobbler_cnt_status
  396. tags: TC_009
  397. - name: Validate cobbler docker container
  398. assert:
  399. that:
  400. - cobbler_cnt_status.exists
  401. fail_msg: "{{ cobbler_cnt_fail_msg }}"
  402. success_msg: "{{ cobbler_cnt_success_msg }}"
  403. tags: TC_009
  404. - name: Validate first NIC is not assigned to public internet
  405. shell: |
  406. set -o pipefail
  407. ip route get 8.8.8.8 | awk '{print $5}'
  408. register: nic_output
  409. args:
  410. executable: /bin/bash
  411. failed_when: first_nic in nic_output.stdout
  412. changed_when: false
  413. tags: TC_009
  414. - name: "Validate NIC-1 is assigned to IP {{ nic1_ip_address }}"
  415. assert:
  416. that: "'{{ nic1_ip_address }}' in ansible_eno1.ipv4.address"
  417. fail_msg: "{{ nic_check_fail_msg }}"
  418. success_msg: "{{ nic_check_success_msg }}"
  419. tags: TC_009