add Lambda tag_resource, untag_resource, and list_tags methods

This commit is contained in:
aohara-admin 2017-09-13 15:00:39 -04:00
commit 98f95dd4a7
4 changed files with 170 additions and 0 deletions

View file

@ -81,6 +81,8 @@ class LambdaFunction(BaseModel):
self.function_arn = 'arn:aws:lambda:123456789012:function:{0}'.format(
self.function_name)
self.tags = dict()
@property
def vpc_config(self):
config = self._vpc_config.copy()
@ -278,6 +280,9 @@ class LambdaBackend(BaseBackend):
def has_function(self, function_name):
return function_name in self._functions
def has_function_arn(self, function_arn):
return self.get_function_by_arn(function_arn) is not None
def create_function(self, spec):
fn = LambdaFunction(spec)
self._functions[fn.function_name] = fn
@ -286,12 +291,33 @@ class LambdaBackend(BaseBackend):
def get_function(self, function_name):
return self._functions[function_name]
def get_function_by_arn(self, function_arn):
for function in self._functions.values():
if function.function_arn == function_arn:
return function
return None
def delete_function(self, function_name):
del self._functions[function_name]
def list_functions(self):
return self._functions.values()
def list_tags(self, resource):
return self.get_function_by_arn(resource).tags
def tag_resource(self, resource, tags):
self.get_function_by_arn(resource).tags.update(tags)
def untag_resource(self, resource, tagKeys):
function = self.get_function_by_arn(resource)
for key in tagKeys:
try:
del function.tags[key]
except KeyError:
pass
# Don't care
def do_validate_s3():
return os.environ.get('VALIDATE_LAMBDA_S3', '') in ['', '1', 'true']