Add ODL upgrade test
[integration/packaging/ansible-opendaylight.git] / tests / test-odl-users.yaml
1 ---
2
3 - hosts: localhost
4   gather_facts: False
5   vars_files:
6     - vars.yaml
7   tasks:
8     - name: wait until the api becomes responsive
9       uri:
10         url: http://localhost:8181/auth/v1/users/
11         url_username: admin
12         url_password: admin
13         status_code: 200
14       register: intial_api_response
15       until: intial_api_response.status == 200
16       retries: 20
17       delay: 20
18
19     - name: list initial users
20       odl_usermod:
21         state: list
22       register: init_state_users
23
24     - name: ensure test user does not exist
25       assert:
26         that:
27           - "init_state_users != None"
28
29     - name: ensure no test user via API
30       uri:
31         url: "http://localhost:8181/auth/v1/users/{{ test_user_username}}@sdn"
32         url_username: admin
33         url_password: admin
34         status_code: 404
35       register: verify_no_test_user_api
36       until: verify_no_test_user_api.status == 404
37       retries: 20
38       delay: 20
39
40     - name: create odl user
41       odl_usermod:
42         username: "{{ test_user_username }}"
43         password: "{{ test_user_password }}"
44         state: present
45
46     - name: list users after creation
47       odl_usermod:
48         state: list
49       register: users_after_create
50
51     - name: ensure user creation
52       assert:
53         that:
54           - "test_user_username != None"
55           - "test_user_username in users_after_create.msg"
56
57     - name: ensure test user creation via API
58       uri:
59         url: "http://localhost:8181/auth/v1/users/{{ test_user_username}}@sdn"
60         url_username: admin
61         url_password: admin
62         status_code: 200
63       register: verify_test_user_creation_api
64       until: verify_test_user_creation_api.status == 200
65       retries: 20
66       delay: 20
67
68     - name: delete odl user
69       odl_usermod:
70         username: "{{ test_user_username }}"
71         state: absent
72
73     - name: list users after deletion
74       odl_usermod:
75         state: list
76       register: users_after_delete
77
78     - name: ensure user deletion
79       assert:
80         that:
81           - "users_after_delete != None"
82           - "'admin' in users_after_delete.msg"
83
84     - name: ensure test user deletion via API
85       uri:
86         url: "http://localhost:8181/auth/v1/users/{{ test_user_username}}@sdn"
87         url_username: admin
88         url_password: admin
89         status_code: 404
90       register: verify_test_user_deletion_api
91       until: verify_test_user_deletion_api.status == 404
92       retries: 20
93       delay: 20
94
95     - name: create user without username or password
96       odl_usermod:
97         state: present
98       register: create_without_credentials
99       ignore_errors: yes
100
101     - name: assert user creation failed without passing the credentials
102       assert:
103         that:
104           - "create_without_credentials.msg == 'Username or password not provided'"
105
106     - name: delete odl user without passing username
107       odl_usermod:
108         state: absent
109       register: delete_without_username
110       ignore_errors: yes
111
112     - name: assert user deletion failed without passing username
113       assert:
114         that:
115           - "delete_without_username.msg == 'Username not provided'"
116
117     - name: assert that API responds with default admin password
118       uri:
119         url: http://localhost:8181/auth/v1/users
120         url_username: admin
121         url_password: admin
122         status_code: 200
123       register: api_responsive_default_password
124       until: api_responsive_default_password.status == 200
125       retries: 20
126       delay: 20
127
128     - name: assert that API fails with new password before changing
129       uri:
130         url: http://localhost:8181/auth/v1/users
131         url_username: admin
132         url_password: temp
133         status_code: 401
134       register: api_failure_before_pass_change
135       until: api_failure_before_pass_change.status == 401
136       retries: 20
137       delay: 20
138
139     - name: update admin password
140       odl_usermod:
141         username: admin
142         password: temp
143         state: update
144
145     - name: restart odl service
146       service:
147         name: opendaylight
148         state: restarted
149
150     - name: assert API fails with old password
151       uri:
152         url: http://localhost:8181/auth/v1/users/
153         url_username: admin
154         url_password: admin
155         status_code: 401
156       register: old_admin_password_failure
157       until: old_admin_password_failure.status == 401
158       retries: 20
159       delay: 20
160
161     - name: assert API responds with new password
162       uri:
163         url: http://localhost:8181/auth/v1/users/
164         url_username: admin
165         url_password: temp
166         status_code: 200
167       register: new_admin_password_success
168       until: new_admin_password_success.status == 200
169       retries: 20
170       delay: 20