ResourceGroupsTaggingAPI: add sqs tags (#7093)
This commit is contained in:
parent
4cb9fdbb62
commit
16b9f319c5
@ -18,6 +18,7 @@ from moto.moto_api._internal import mock_random
|
|||||||
from moto.rds.models import RDSBackend, rds_backends
|
from moto.rds.models import RDSBackend, rds_backends
|
||||||
from moto.redshift.models import RedshiftBackend, redshift_backends
|
from moto.redshift.models import RedshiftBackend, redshift_backends
|
||||||
from moto.s3.models import S3Backend, s3_backends
|
from moto.s3.models import S3Backend, s3_backends
|
||||||
|
from moto.sqs.models import SQSBackend, sqs_backends
|
||||||
from moto.utilities.tagging_service import TaggingService
|
from moto.utilities.tagging_service import TaggingService
|
||||||
|
|
||||||
# Left: EC2 ElastiCache RDS ELB CloudFront WorkSpaces Lambda EMR Glacier Kinesis Redshift Route53
|
# Left: EC2 ElastiCache RDS ELB CloudFront WorkSpaces Lambda EMR Glacier Kinesis Redshift Route53
|
||||||
@ -95,6 +96,10 @@ class ResourceGroupsTaggingAPIBackend(BaseBackend):
|
|||||||
def acm_backend(self) -> AWSCertificateManagerBackend:
|
def acm_backend(self) -> AWSCertificateManagerBackend:
|
||||||
return acm_backends[self.account_id][self.region_name]
|
return acm_backends[self.account_id][self.region_name]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sqs_backend(self) -> SQSBackend:
|
||||||
|
return sqs_backends[self.account_id][self.region_name]
|
||||||
|
|
||||||
def _get_resources_generator(
|
def _get_resources_generator(
|
||||||
self,
|
self,
|
||||||
tag_filters: Optional[List[Dict[str, Any]]] = None,
|
tag_filters: Optional[List[Dict[str, Any]]] = None,
|
||||||
@ -442,6 +447,17 @@ class ResourceGroupsTaggingAPIBackend(BaseBackend):
|
|||||||
# RedShift Snapshot
|
# RedShift Snapshot
|
||||||
# RedShift Subnet group
|
# RedShift Subnet group
|
||||||
|
|
||||||
|
# SQS
|
||||||
|
if not resource_type_filters or "sqs" in resource_type_filters:
|
||||||
|
for queue in self.sqs_backend.queues.values():
|
||||||
|
tags = format_tags(queue.tags)
|
||||||
|
if not tags or not tag_filter(
|
||||||
|
tags
|
||||||
|
): # Skip if no tags, or invalid filter
|
||||||
|
continue
|
||||||
|
|
||||||
|
yield {"ResourceARN": f"{queue.queue_arn}", "Tags": tags}
|
||||||
|
|
||||||
# VPC
|
# VPC
|
||||||
if (
|
if (
|
||||||
not resource_type_filters
|
not resource_type_filters
|
||||||
|
@ -14,6 +14,7 @@ from moto import (
|
|||||||
mock_lambda,
|
mock_lambda,
|
||||||
mock_resourcegroupstaggingapi,
|
mock_resourcegroupstaggingapi,
|
||||||
mock_s3,
|
mock_s3,
|
||||||
|
mock_sqs,
|
||||||
)
|
)
|
||||||
from tests import EXAMPLE_AMI_ID, EXAMPLE_AMI_ID2
|
from tests import EXAMPLE_AMI_ID, EXAMPLE_AMI_ID2
|
||||||
|
|
||||||
@ -715,6 +716,37 @@ def test_get_resources_lambda():
|
|||||||
assert_response(resp, [rectangle_arn])
|
assert_response(resp, [rectangle_arn])
|
||||||
|
|
||||||
|
|
||||||
|
@mock_sqs
|
||||||
|
@mock_resourcegroupstaggingapi
|
||||||
|
def test_get_resources_sqs():
|
||||||
|
sqs = boto3.resource("sqs", region_name="eu-central-1")
|
||||||
|
|
||||||
|
# Create two tagged SQS queues
|
||||||
|
for i in range(1, 3):
|
||||||
|
i_str = str(i)
|
||||||
|
|
||||||
|
sqs.create_queue(
|
||||||
|
QueueName="sqs-tag-value-" + i_str,
|
||||||
|
tags={
|
||||||
|
"Test": i_str,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
rtapi = boto3.client("resourcegroupstaggingapi", region_name="eu-central-1")
|
||||||
|
|
||||||
|
# Basic test
|
||||||
|
resp = rtapi.get_resources(ResourceTypeFilters=["sqs"])
|
||||||
|
assert len(resp["ResourceTagMappingList"]) == 2
|
||||||
|
|
||||||
|
# Test tag filtering
|
||||||
|
resp = rtapi.get_resources(
|
||||||
|
ResourceTypeFilters=["sqs"],
|
||||||
|
TagFilters=[{"Key": "Test", "Values": ["1"]}],
|
||||||
|
)
|
||||||
|
assert len(resp["ResourceTagMappingList"]) == 1
|
||||||
|
assert {"Key": "Test", "Value": "1"} in resp["ResourceTagMappingList"][0]["Tags"]
|
||||||
|
|
||||||
|
|
||||||
@mock_resourcegroupstaggingapi
|
@mock_resourcegroupstaggingapi
|
||||||
def test_tag_resources_for_unknown_service():
|
def test_tag_resources_for_unknown_service():
|
||||||
rtapi = boto3.client("resourcegroupstaggingapi", region_name="us-west-2")
|
rtapi = boto3.client("resourcegroupstaggingapi", region_name="us-west-2")
|
||||||
|
Loading…
Reference in New Issue
Block a user