Added get_user and delete_access_key endpoints.

This commit is contained in:
Rory-Finnegan 2014-08-20 13:56:30 -05:00 committed by Rory-Finnegan
parent ac74af4085
commit a3b02f3f8b
3 changed files with 53 additions and 1 deletions

View File

@ -135,6 +135,14 @@ class User(object):
def get_all_access_keys(self):
return self.access_keys
def delete_access_key(self, access_key_id):
for key in self.access_keys:
if key.access_key_id == access_key_id:
self.access_keys.remove(key)
break
else:
raise BotoServerError(404, 'Not Found')
class IAMBackend(BaseBackend):
@ -207,7 +215,6 @@ class IAMBackend(BaseBackend):
return group
def get_group(self, group_name, marker=None, max_items=None):
group = None
try:
group = self.groups[group_name]
@ -224,6 +231,15 @@ class IAMBackend(BaseBackend):
self.users[user_name] = user
return user
def get_user(self, user_name):
user = None
try:
user = self.users[user_name]
except KeyError:
raise BotoServerError(404, 'Not Found')
return user
def add_user_to_group(self, group_name, user_name):
group = None
user = None
@ -292,6 +308,13 @@ class IAMBackend(BaseBackend):
return keys
def delete_access_key(self, access_key_id, user_name):
try:
user = self.users[user_name]
user.delete_access_key(access_key_id)
except KeyError:
raise BotoServerError(404, 'Not Found')
def delete_user(self, user_name):
try:
del self.users[user_name]

View File

@ -106,6 +106,12 @@ class IamResponse(BaseResponse):
template = Template(USER_TEMPLATE)
return template.render(action='Create', user=user)
def get_user(self):
user_name = self._get_param('UserName')
user = iam_backend.get_user(user_name)
template = Template(USER_TEMPLATE)
return template.render(action='Get', user=user)
def add_user_to_group(self):
group_name = self._get_param('GroupName')
user_name = self._get_param('UserName')
@ -165,6 +171,14 @@ class IamResponse(BaseResponse):
template = Template(LIST_ACCESS_KEYS_TEMPLATE)
return template.render(user_name=user_name, keys=keys)
def delete_access_key(self):
user_name = self._get_param('UserName')
access_key_id = self._get_param('AccessKeyId')
iam_backend.delete_access_key(access_key_id, user_name)
template = Template(GENERIC_EMPTY_TEMPLATE)
return template.render(name='DeleteAccessKey')
def delete_user(self):
user_name = self._get_param('UserName')
iam_backend.delete_user(user_name)

View File

@ -84,6 +84,14 @@ def test_create_user():
assert_raises(BotoServerError, conn.create_user, 'my-user')
@mock_iam()
def test_get_user():
conn = boto.connect_iam()
assert_raises(BotoServerError, conn.get_user, 'my-user')
conn.create_user('my-user')
conn.get_user('my-user')
@mock_iam()
def test_add_user_to_group():
conn = boto.connect_iam()
@ -130,6 +138,13 @@ def test_get_all_access_keys():
)
@mock_iam()
def test_delete_access_key():
conn = boto.connect_iam()
conn.create_user('my-user')
access_key_id = conn.create_access_key('my-user')['create_access_key_response']['create_access_key_result']['access_key']['access_key_id']
conn.delete_access_key(access_key_id, 'my-user')
@mock_iam()
def test_delete_user():