add tagging support to events
This commit is contained in:
parent
d596560971
commit
eaa8c8db6e
6 changed files with 228 additions and 12 deletions
|
|
@ -6,6 +6,7 @@ from boto3 import Session
|
|||
from moto.core.exceptions import JsonRESTError
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.sts.models import ACCOUNT_ID
|
||||
from moto.utilities.tagging_service import TaggingService
|
||||
|
||||
|
||||
class Rule(BaseModel):
|
||||
|
|
@ -104,6 +105,7 @@ class EventsBackend(BaseBackend):
|
|||
self.region_name = region_name
|
||||
self.event_buses = {}
|
||||
self.event_sources = {}
|
||||
self.tagger = TaggingService()
|
||||
|
||||
self._add_default_event_bus()
|
||||
|
||||
|
|
@ -361,6 +363,32 @@ class EventsBackend(BaseBackend):
|
|||
|
||||
self.event_buses.pop(name, None)
|
||||
|
||||
def list_tags_for_resource(self, arn):
|
||||
name = arn.split("/")[-1]
|
||||
if name in self.rules:
|
||||
return self.tagger.list_tags_for_resource(self.rules[name].arn)
|
||||
raise JsonRESTError(
|
||||
"ResourceNotFoundException", "An entity that you specified does not exist."
|
||||
)
|
||||
|
||||
def tag_resource(self, arn, tags):
|
||||
name = arn.split("/")[-1]
|
||||
if name in self.rules:
|
||||
self.tagger.tag_resource(self.rules[name].arn, tags)
|
||||
return {}
|
||||
raise JsonRESTError(
|
||||
"ResourceNotFoundException", "An entity that you specified does not exist."
|
||||
)
|
||||
|
||||
def untag_resource(self, arn, tag_names):
|
||||
name = arn.split("/")[-1]
|
||||
if name in self.rules:
|
||||
self.tagger.untag_resource_using_names(self.rules[name].arn, tag_names)
|
||||
return {}
|
||||
raise JsonRESTError(
|
||||
"ResourceNotFoundException", "An entity that you specified does not exist."
|
||||
)
|
||||
|
||||
|
||||
events_backends = {}
|
||||
for region in Session().get_available_regions("events"):
|
||||
|
|
|
|||
|
|
@ -297,3 +297,26 @@ class EventsHandler(BaseResponse):
|
|||
self.events_backend.delete_event_bus(name)
|
||||
|
||||
return "", self.response_headers
|
||||
|
||||
def list_tags_for_resource(self):
|
||||
arn = self._get_param("ResourceARN")
|
||||
|
||||
result = self.events_backend.list_tags_for_resource(arn)
|
||||
|
||||
return json.dumps(result), self.response_headers
|
||||
|
||||
def tag_resource(self):
|
||||
arn = self._get_param("ResourceARN")
|
||||
tags = self._get_param("Tags")
|
||||
|
||||
result = self.events_backend.tag_resource(arn, tags)
|
||||
|
||||
return json.dumps(result), self.response_headers
|
||||
|
||||
def untag_resource(self):
|
||||
arn = self._get_param("ResourceARN")
|
||||
tags = self._get_param("TagKeys")
|
||||
|
||||
result = self.events_backend.untag_resource(arn, tags)
|
||||
|
||||
return json.dumps(result), self.response_headers
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue