in footmark/ecs/securitygroup.py [0:0]
def authorize(self, rule, direction):
if not isinstance(rule, dict):
module.fail_json(msg='Invalid rule parameter type [{0}].'.format(type(rule)))
find = False
for per in self.permissions:
if per.get('direction', "") != direction:
continue
for key, value in list(rule.items()):
if value != per.get(key, ""):
find = False
break
find = True
if find:
break
# If the rule is in the group, return directly.
if find:
return False
params = {}
for k, v in list(rule.items()):
params[k] = v
params["security_group_id"] = self.id
if direction == 'ingress':
return self.connection.authorize_security_group(**params)
return self.connection.authorize_security_group_egress(**params)