Skip to content

Commit cdf0802

Browse files
committed
[API] OPSAPS-35644 | Add update_user() method to python API client.
Bug: OPSAPS-35644 Issue: Need update_user() method in python API client. Implementation: - Add update_user() python API client. - Update mock unit test. Reviewer: alexm, jayesh Tests: - Ran updated unit test. - Wrote a python client program to test update operation on user. from cm_api.api_client import ApiResource from cm_api.endpoints.users import ApiUser CM_HOST = "bankim-agent-1.vpc.cloudera.com" CM_PORT = 7180 CM_USERNAME = "admin" CM_PASSWD = "admin" api = ApiResource(CM_HOST, CM_PORT, CM_USERNAME, CM_PASSWD, version=7) for u in api.get_all_users(): print u.name print ','.join(u.roles) if u.name == "guest": n = ApiUser(api, u.name, roles=[ 'ROLE_LIMITED' ]) api.update_user(n) for u in api.get_all_users(): print u.name print ','.join(u.roles) bankim@osboxes:~/scripts$ python user.py admin ROLE_ADMIN guest ROLE_USER admin ROLE_ADMIN guest ROLE_LIMITED
1 parent 7751289 commit cdf0802

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

python/src/cm_api/api_client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,15 @@ def delete_user(self, username):
218218
"""
219219
return users.delete_user(self, username)
220220

221+
def update_user(self, user):
222+
"""
223+
Update user with the supplied new user object.
224+
225+
@param user: ApiUser object to be applied
226+
@return: An ApiUser object
227+
"""
228+
return users.update_user(self, user)
229+
221230
# Events
222231

223232
def query_events(self, query_str = None):

python/src/cm_api_tests/test_users.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def test_grant_admin(self):
3333
def test_revoke_admin(self):
3434
res = utils.MockResource(self)
3535

36-
user = ApiUser(res, "alice")
36+
user = ApiUser(res, "alice", roles=[ 'ROLE_ADMIN' ] )
3737
expected = { 'name' : 'alice', 'roles' : [ ] }
3838
res.expect("PUT", "/users/alice", data=expected, retdata=expected)
3939
updated = user.revoke_admin_role()
@@ -42,8 +42,11 @@ def test_revoke_admin(self):
4242
def test_update_user(self):
4343
res = utils.MockResource(self)
4444
user = ApiUser(res, "alice", roles=[ 'ROLE_LIMITED' ])
45-
expected = { 'name' : 'alice', 'roles' : [ 'ROLE_LIMITED'] }
45+
46+
# Update user role
47+
new_user = ApiUser(res, "alice", roles=[ 'ROLE_USER' ])
48+
expected = { 'name' : 'alice', 'roles' : [ 'ROLE_USER'] }
4649
res.expect("PUT", "/users/alice", data=expected, retdata=expected)
47-
updated = update_user(res, user)
48-
self.assertTrue('ROLE_LIMITED' in updated.roles)
50+
updated = update_user(res, new_user)
51+
self.assertTrue('ROLE_USER' in updated.roles)
4952
self.assertEqual(1, len(updated.roles))

0 commit comments

Comments
 (0)