test_provision_cc.yml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  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_CC_TC_010
  16. # Execute provision role in management station and verify cobbler configuration
  17. - name: OMNIA_DIO_US_CC_TC_010
  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_010
  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_010
  35. - block:
  36. - name: Call provision role
  37. include_role:
  38. name: ../roles/provision
  39. vars:
  40. no_prompt: true
  41. admin_password: "{{ boundary_password }}"
  42. admin_password_confirm: "{{ boundary_password }}"
  43. tags: TC_010
  44. - name: Check the connection to cobbler UI and it returns a status 200
  45. uri:
  46. url: https://localhost/cobbler_web
  47. status_code: 200
  48. return_content: yes
  49. validate_certs: no
  50. tags: TC_010
  51. - name: Fetch cobbler version in cobbler container
  52. command: docker exec {{ docker_container_name }} cobbler version
  53. changed_when: false
  54. register: cobbler_version
  55. tags: TC_010
  56. - name: Verify cobbler version
  57. assert:
  58. that:
  59. - "'Cobbler' in cobbler_version.stdout"
  60. - "'Error' not in cobbler_version.stdout"
  61. fail_msg: "{{ cobbler_version_fail_msg }}"
  62. success_msg: "{{ cobbler_version_success_msg }}"
  63. tags: TC_010
  64. - name: Run cobbler check command in cobbler container
  65. command: docker exec {{ docker_container_name }} cobbler check
  66. changed_when: false
  67. register: cobbler_check
  68. tags: TC_010
  69. - name: Verify cobbler check command output
  70. assert:
  71. that:
  72. - "'The following are potential configuration items that you may want to fix' not in cobbler_check.stdout"
  73. - "'Error' not in cobbler_check.stdout"
  74. fail_msg: "{{ cobbler_check_fail_msg }}"
  75. success_msg: "{{ cobbler_check_success_msg }}"
  76. ignore_errors: yes
  77. tags: TC_010
  78. - name: Run cobbler sync command in cobbler container
  79. command: docker exec {{ docker_container_name }} cobbler sync
  80. changed_when: false
  81. register: cobbler_sync
  82. tags: TC_010
  83. - name: Verify cobbler sync command output
  84. assert:
  85. that:
  86. - "'TASK COMPLETE' in cobbler_sync.stdout"
  87. - "'Fail' not in cobbler_sync.stdout"
  88. - "'Error' not in cobbler_sync.stdout"
  89. fail_msg: "{{ cobbler_sync_fail_msg }}"
  90. success_msg: "{{ cobbler_sync_success_msg }}"
  91. tags: TC_010
  92. - name: Fetch cobbler distro list
  93. command: docker exec {{ docker_container_name }} cobbler distro list
  94. changed_when: false
  95. register: cobbler_distro_list
  96. tags: TC_010
  97. - name: Verify cobbler distro list
  98. assert:
  99. that:
  100. - "'CentOS' in cobbler_distro_list.stdout"
  101. fail_msg: "{{ cobbler_distro_list_fail_msg }}"
  102. success_msg: "{{ cobbler_distro_list_success_msg }}"
  103. tags: TC_010
  104. - name: Fetch cobbler profile list
  105. command: docker exec cobbler cobbler profile list
  106. changed_when: false
  107. register: cobbler_profile_list
  108. tags: TC_010
  109. - name: Verify cobbler profile list
  110. assert:
  111. that:
  112. - "'CentOS' in cobbler_profile_list.stdout"
  113. fail_msg: "{{ cobbler_profile_list_fail_msg }}"
  114. success_msg: "{{ cobbler_profile_list_success_msg }}"
  115. tags: TC_010
  116. - name: Check kickstart file
  117. shell: |
  118. docker exec {{ docker_container_name }} [ -f /var/lib/cobbler/kickstarts/{{ kickstart_filename }} ] && echo "File exist" || echo "File does not exist"
  119. changed_when: false
  120. register: kickstart_file_status
  121. tags: TC_010
  122. - name: Verify kickstart file present
  123. assert:
  124. that:
  125. - "'File exist' in kickstart_file_status.stdout"
  126. fail_msg: "{{ kickstart_file_fail_msg }}"
  127. success_msg: "{{ kickstart_file_success_msg }}"
  128. tags: TC_010
  129. # Testcase OMNIA_DIO_US_CC_TC_011
  130. # Execute provision role in management station where already one container present
  131. - name: OMNIA_DIO_US_CC_TC_011
  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_011
  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_011
  149. - name: Create docker image
  150. docker_image:
  151. name: ubuntu
  152. tag: latest
  153. source: pull
  154. tags: TC_011
  155. - name: Create docker container
  156. command: docker run -dit ubuntu
  157. register: create_docker_container
  158. changed_when: true
  159. args:
  160. warn: false
  161. tags: TC_011
  162. - block:
  163. - name: Call provision role
  164. include_role:
  165. name: ../roles/provision
  166. vars:
  167. no_prompt: true
  168. admin_password: "{{ boundary_password }}"
  169. admin_password_confirm: "{{ boundary_password }}"
  170. tags: TC_011
  171. - name: Check the connection to cobbler UI and it returns a status 200
  172. uri:
  173. url: https://localhost/cobbler_web
  174. status_code: 200
  175. return_content: yes
  176. validate_certs: no
  177. tags: TC_011
  178. - name: Fetch cobbler version in cobbler container
  179. command: docker exec {{ docker_container_name }} cobbler version
  180. changed_when: false
  181. register: cobbler_version
  182. tags: TC_011
  183. - name: Verify cobbler version
  184. assert:
  185. that:
  186. - "'Cobbler' in cobbler_version.stdout"
  187. - "'Error' not in cobbler_version.stdout"
  188. fail_msg: "{{ cobbler_version_fail_msg }}"
  189. success_msg: "{{ cobbler_version_success_msg }}"
  190. tags: TC_011
  191. - name: Run cobbler check command in cobbler container
  192. command: docker exec {{ docker_container_name }} cobbler check
  193. changed_when: false
  194. register: cobbler_check
  195. tags: TC_011
  196. - name: Verify cobbler check command output
  197. assert:
  198. that:
  199. - "'The following are potential configuration items that you may want to fix' not in cobbler_check.stdout"
  200. - "'Error' not in cobbler_check.stdout"
  201. fail_msg: "{{ cobbler_check_fail_msg }}"
  202. success_msg: "{{ cobbler_check_success_msg }}"
  203. ignore_errors: yes
  204. tags: TC_011
  205. - name: Run cobbler sync command in cobbler container
  206. command: docker exec {{ docker_container_name }} cobbler sync
  207. changed_when: false
  208. register: cobbler_sync
  209. tags: TC_011
  210. - name: Verify cobbler sync command output
  211. assert:
  212. that:
  213. - "'TASK COMPLETE' in cobbler_sync.stdout"
  214. - "'Fail' not in cobbler_sync.stdout"
  215. - "'Error' not in cobbler_sync.stdout"
  216. fail_msg: "{{ cobbler_sync_fail_msg }}"
  217. success_msg: "{{ cobbler_sync_success_msg }}"
  218. tags: TC_011
  219. - name: Fetch cobbler distro list
  220. command: docker exec {{ docker_container_name }} cobbler distro list
  221. changed_when: false
  222. register: cobbler_distro_list
  223. tags: TC_011
  224. - name: Verify cobbler distro list
  225. assert:
  226. that:
  227. - "'CentOS' in cobbler_distro_list.stdout"
  228. fail_msg: "{{ cobbler_distro_list_fail_msg }}"
  229. success_msg: "{{ cobbler_distro_list_success_msg }}"
  230. tags: TC_011
  231. - name: Fetch cobbler profile list
  232. command: docker exec cobbler cobbler profile list
  233. changed_when: false
  234. register: cobbler_profile_list
  235. tags: TC_011
  236. - name: Verify cobbler profile list
  237. assert:
  238. that:
  239. - "'CentOS' in cobbler_profile_list.stdout"
  240. fail_msg: "{{ cobbler_profile_list_fail_msg }}"
  241. success_msg: "{{ cobbler_profile_list_success_msg }}"
  242. tags: TC_011
  243. - name: Check kickstart file
  244. shell: |
  245. docker exec {{ docker_container_name }} [ -f /var/lib/cobbler/kickstarts/{{ kickstart_filename }} ] && echo "File exist" || echo "File does not exist"
  246. changed_when: false
  247. register: kickstart_file_status
  248. tags: TC_011
  249. - name: Verify kickstart file present
  250. assert:
  251. that:
  252. - "'File exist' in kickstart_file_status.stdout"
  253. fail_msg: "{{ kickstart_file_fail_msg }}"
  254. success_msg: "{{ kickstart_file_success_msg }}"
  255. tags: TC_011
  256. - name: Delete the ubuntu container
  257. docker_container:
  258. name: "{{ create_docker_container.stdout }}"
  259. state: absent
  260. tags: TC_011
  261. - name: Delete the ubuntu umage
  262. docker_image:
  263. name: ubuntu
  264. state: absent
  265. tags: TC_011
  266. # Testcase OMNIA_DIO_US_CC_TC_012
  267. # Execute provision role in management station and reboot management station
  268. - name: OMNIA_DIO_US_CC_TC_012
  269. hosts: localhost
  270. connection: local
  271. vars_files:
  272. - test_vars/test_provision_vars.yml
  273. - ../roles/provision/vars/main.yml
  274. tasks:
  275. - name: Check last uptime of the server
  276. shell: |
  277. current_time=$(date +"%Y-%m-%d %H")
  278. uptime -s | grep "$current_time"
  279. register: uptime_status
  280. changed_when: false
  281. ignore_errors: yes
  282. tags: TC_012
  283. - name: Delete the cobbler container if exits
  284. docker_container:
  285. name: "{{ docker_container_name }}"
  286. state: absent
  287. when: uptime_status.stdout|length < 1
  288. tags: TC_012
  289. - name: Delete docker image if exists
  290. docker_image:
  291. name: "{{ docker_image_name }}"
  292. tag: "{{ docker_image_tag }}"
  293. state: absent
  294. when: uptime_status.stdout|length < 1
  295. tags: TC_012
  296. - block:
  297. - name: Call provision role
  298. include_role:
  299. name: ../roles/provision
  300. vars:
  301. no_prompt: true
  302. admin_password: "{{ boundary_password }}"
  303. admin_password_confirm: "{{ boundary_password }}"
  304. when: uptime_status.stdout|length < 1
  305. tags: TC_012
  306. - name: Reboot localhost
  307. command: reboot
  308. when: uptime_status.stdout|length < 1
  309. tags: TC_012
  310. - name: Inspect cobbler container
  311. docker_container_info:
  312. name: "{{ docker_container_name }}"
  313. register: cobbler_cnt_status
  314. tags: TC_012
  315. - name: Verify cobbler container is running after reboot
  316. assert:
  317. that: "'running' in cobbler_cnt_status.container.State.Status"
  318. fail_msg: "{{ cobbler_reboot_fail_msg }}"
  319. success_msg: "{{ cobbler_reboot_success_msg }}"
  320. tags: TC_012