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