commit
1cae78ad2f
4 changed files with 115 additions and 3 deletions
|
|
@ -231,6 +231,19 @@ class LogGroup:
|
|||
def set_retention_policy(self, retention_in_days):
|
||||
self.retentionInDays = retention_in_days
|
||||
|
||||
def list_tags(self):
|
||||
return self.tags if self.tags else {}
|
||||
|
||||
def tag(self, tags):
|
||||
if self.tags:
|
||||
self.tags.update(tags)
|
||||
else:
|
||||
self.tags = tags
|
||||
|
||||
def untag(self, tags_to_remove):
|
||||
if self.tags:
|
||||
self.tags = {k: v for (k, v) in self.tags.items() if k not in tags_to_remove}
|
||||
|
||||
|
||||
class LogsBackend(BaseBackend):
|
||||
def __init__(self, region_name):
|
||||
|
|
@ -322,5 +335,23 @@ class LogsBackend(BaseBackend):
|
|||
log_group = self.groups[log_group_name]
|
||||
return log_group.set_retention_policy(None)
|
||||
|
||||
def list_tags_log_group(self, log_group_name):
|
||||
if log_group_name not in self.groups:
|
||||
raise ResourceNotFoundException()
|
||||
log_group = self.groups[log_group_name]
|
||||
return log_group.list_tags()
|
||||
|
||||
def tag_log_group(self, log_group_name, tags):
|
||||
if log_group_name not in self.groups:
|
||||
raise ResourceNotFoundException()
|
||||
log_group = self.groups[log_group_name]
|
||||
log_group.tag(tags)
|
||||
|
||||
def untag_log_group(self, log_group_name, tags):
|
||||
if log_group_name not in self.groups:
|
||||
raise ResourceNotFoundException()
|
||||
log_group = self.groups[log_group_name]
|
||||
log_group.untag(tags)
|
||||
|
||||
|
||||
logs_backends = {region.name: LogsBackend(region.name) for region in boto.logs.regions()}
|
||||
|
|
|
|||
|
|
@ -134,3 +134,22 @@ class LogsResponse(BaseResponse):
|
|||
log_group_name = self._get_param('logGroupName')
|
||||
self.logs_backend.delete_retention_policy(log_group_name)
|
||||
return ''
|
||||
|
||||
def list_tags_log_group(self):
|
||||
log_group_name = self._get_param('logGroupName')
|
||||
tags = self.logs_backend.list_tags_log_group(log_group_name)
|
||||
return json.dumps({
|
||||
'tags': tags
|
||||
})
|
||||
|
||||
def tag_log_group(self):
|
||||
log_group_name = self._get_param('logGroupName')
|
||||
tags = self._get_param('tags')
|
||||
self.logs_backend.tag_log_group(log_group_name, tags)
|
||||
return ''
|
||||
|
||||
def untag_log_group(self):
|
||||
log_group_name = self._get_param('logGroupName')
|
||||
tags = self._get_param('tags')
|
||||
self.logs_backend.untag_log_group(log_group_name, tags)
|
||||
return ''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue