oc_user.yml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. #!/usr/bin/ansible-playbook --module-path=../../../library/
  2. #
  3. # ./oc_user.yml -e "cli_master_test=$OPENSHIFT_MASTER
  4. #
  5. ---
  6. - hosts: "{{ cli_master_test }}"
  7. gather_facts: no
  8. user: root
  9. vars:
  10. test_user: testuser@email.com
  11. test_user_fullname: "Test User"
  12. pre_tasks:
  13. - name: ensure needed vars are defined
  14. fail:
  15. msg: "{{ item }} no defined"
  16. when: item is not defined
  17. with_items:
  18. - cli_master_test # ansible inventory instance to run playbook against
  19. tasks:
  20. - name: delete test user (so future tests work)
  21. oc_user:
  22. state: absent
  23. username: "{{ test_user }}"
  24. - name: get user list
  25. oc_user:
  26. state: list
  27. username: "{{ test_user }}"
  28. register: user_out
  29. - name: "assert test user does not exist"
  30. assert:
  31. that: user_out['results'][0] == {}
  32. msg: "{{ user_out }}"
  33. - name: get all list
  34. oc_user:
  35. state: list
  36. register: user_out
  37. #- debug: var=user_out
  38. - name: add test user
  39. oc_user:
  40. state: present
  41. username: "{{ test_user }}"
  42. full_name: "{{ test_user_fullname }}"
  43. register: user_out
  44. - name: assert result set to changed
  45. assert:
  46. that: user_out['changed'] == True
  47. msg: "{{ user_out }}"
  48. - name: check test user actually added
  49. oc_user:
  50. state: list
  51. username: "{{ test_user }}"
  52. register: user_out
  53. - name: assert user actually added
  54. assert:
  55. that: user_out['results'][0]['metadata']['name'] == "{{ test_user }}" and
  56. user_out['results'][0]['fullName'] == "{{ test_user_fullname }}"
  57. msg: "{{ user_out }}"
  58. - name: re-add test user
  59. oc_user:
  60. state: present
  61. username: "{{ test_user }}"
  62. full_name: "{{ test_user_fullname }}"
  63. register: user_out
  64. - name: assert re-add result set to not changed
  65. assert:
  66. that: user_out['changed'] == False
  67. msg: "{{ user_out }}"
  68. - name: modify existing user
  69. oc_user:
  70. state: present
  71. username: "{{ test_user }}"
  72. full_name: 'Something Different'
  73. register: user_out
  74. - name: assert modify existing user result set to changed
  75. assert:
  76. that: user_out['changed'] == True
  77. msg: "{{ user_out }}"
  78. - name: check modify test user
  79. oc_user:
  80. state: list
  81. username: "{{ test_user }}"
  82. register: user_out
  83. - name: assert modification successful
  84. assert:
  85. that: user_out['results'][0]['metadata']['name'] == "{{ test_user }}" and
  86. user_out['results'][0]['fullName'] == 'Something Different'
  87. msg: "{{ user_out }}"
  88. - name: delete test user
  89. oc_user:
  90. state: absent
  91. username: "{{ test_user }}"
  92. register: user_out
  93. - name: assert delete marked changed
  94. assert:
  95. that: user_out['changed'] == True
  96. msg: "{{ user_out }}"
  97. - name: check delete user
  98. oc_user:
  99. state: list
  100. username: "{{ test_user }}"
  101. register: user_out
  102. - name: assert deletion successful
  103. assert:
  104. that: user_out['results'][0] == {}
  105. msg: "{{ user_out }}"
  106. - name: re-delete test user
  107. oc_user:
  108. state: absent
  109. username: "{{ test_user }}"
  110. register: user_out
  111. - name: check re-delete marked not changed
  112. assert:
  113. that: user_out['changed'] == False
  114. msg: "{{ user_out }}"
  115. - name: delete test group
  116. oc_obj:
  117. kind: group
  118. state: absent
  119. name: integration-test-group
  120. - name: create test group
  121. command: oadm groups new integration-test-group
  122. - name: check group creation
  123. oc_obj:
  124. kind: group
  125. state: list
  126. name: integration-test-group
  127. register: user_out
  128. - name: assert test group created
  129. assert:
  130. that: user_out['results']['results'][0]['metadata']['name'] == "integration-test-group"
  131. msg: "{{ user_out }}"
  132. - name: create user with group membership
  133. oc_user:
  134. state: present
  135. username: "{{ test_user }}"
  136. groups:
  137. - "integration-test-group"
  138. register: user_out
  139. - debug: var=user_out
  140. - name: get group user members
  141. oc_obj:
  142. kind: group
  143. state: list
  144. name: integration-test-group
  145. register: user_out
  146. - name: assert user group membership
  147. assert:
  148. that: "'{{ test_user }}' in user_out['results']['results'][0]['users'][0]"
  149. msg: "{{ user_out }}"
  150. - name: delete second test group
  151. oc_obj:
  152. kind: group
  153. state: absent
  154. name: integration-test-group2
  155. - name: create empty second group
  156. command: oadm groups new integration-test-group2
  157. - name: update user with second group membership
  158. oc_user:
  159. state: present
  160. username: "{{ test_user }}"
  161. groups:
  162. - "integration-test-group"
  163. - "integration-test-group2"
  164. register: user_out
  165. - name: assert adding more group changed
  166. assert:
  167. that: user_out['changed'] == True
  168. - name: get group memberships
  169. oc_obj:
  170. kind: group
  171. state: list
  172. name: "{{ item }}"
  173. with_items:
  174. - integration-test-group
  175. - integration-test-group2
  176. register: user_out
  177. - name: assert user member of above groups
  178. assert:
  179. that: "'{{ test_user }}' in user_out['results'][0]['results']['results'][0]['users'] and \
  180. '{{ test_user }}' in user_out['results'][1]['results']['results'][0]['users']"
  181. msg: "{{ user_out }}"
  182. - name: update user with only one group
  183. oc_user:
  184. state: present
  185. username: "{{ test_user }}"
  186. groups:
  187. - "integration-test-group2"
  188. register: user_out
  189. - assert:
  190. that: user_out['changed'] == True
  191. - name: get group memberships
  192. oc_obj:
  193. kind: group
  194. state: list
  195. name: "{{ item }}"
  196. with_items:
  197. - "integration-test-group"
  198. - "integration-test-group2"
  199. register: user_out
  200. - debug: var=user_out
  201. - name: assert proper user membership
  202. assert:
  203. that: "'{{ test_user }}' not in user_out['results'][0]['results']['results'][0]['users'] and \
  204. '{{ test_user }}' in user_out['results'][1]['results']['results'][0]['users']"
  205. - name: clean up test groups
  206. oc_obj:
  207. kind: group
  208. state: absent
  209. name: "{{ item }}"
  210. with_items:
  211. - "integration-test-group"
  212. - "integration-test-group2"
  213. - name: clean up test user
  214. oc_user:
  215. state: absent
  216. username: "{{ test_user }}"