iam: add group policy methods (#849)
Implemented mocks for: * get_all_group_policies * list_group_policies (boto3) * get_group_policy * put_group_policy
This commit is contained in:
parent
56f9409ca9
commit
9b6d3983d2
3 changed files with 125 additions and 0 deletions
|
|
@ -167,6 +167,7 @@ class Group(object):
|
|||
)
|
||||
|
||||
self.users = []
|
||||
self.policies = {}
|
||||
|
||||
def get_cfn_attribute(self, attribute_name):
|
||||
from moto.cloudformation.exceptions import UnformattedGetAttTemplateException
|
||||
|
|
@ -174,6 +175,24 @@ class Group(object):
|
|||
raise NotImplementedError('"Fn::GetAtt" : [ "{0}" , "Arn" ]"')
|
||||
raise UnformattedGetAttTemplateException()
|
||||
|
||||
def get_policy(self, policy_name):
|
||||
try:
|
||||
policy_json = self.policies[policy_name]
|
||||
except KeyError:
|
||||
raise IAMNotFoundException("Policy {0} not found".format(policy_name))
|
||||
|
||||
return {
|
||||
'policy_name': policy_name,
|
||||
'policy_document': policy_json,
|
||||
'group_name': self.name,
|
||||
}
|
||||
|
||||
def put_policy(self, policy_name, policy_json):
|
||||
self.policies[policy_name] = policy_json
|
||||
|
||||
def list_policies(self):
|
||||
return self.policies.keys()
|
||||
|
||||
|
||||
class User(object):
|
||||
def __init__(self, name, path=None):
|
||||
|
|
@ -573,6 +592,18 @@ class IAMBackend(BaseBackend):
|
|||
|
||||
return groups
|
||||
|
||||
def put_group_policy(self, group_name, policy_name, policy_json):
|
||||
group = self.get_group(group_name)
|
||||
group.put_policy(policy_name, policy_json)
|
||||
|
||||
def list_group_policies(self, group_name, marker=None, max_items=None):
|
||||
group = self.get_group(group_name)
|
||||
return group.list_policies()
|
||||
|
||||
def get_group_policy(self, group_name, policy_name):
|
||||
group = self.get_group(group_name)
|
||||
return group.get_policy(policy_name)
|
||||
|
||||
def create_user(self, user_name, path='/'):
|
||||
if user_name in self.users:
|
||||
raise IAMConflictException("EntityAlreadyExists", "User {0} already exists".format(user_name))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue