[go: nahoru, domu]

Skip to content

Commit

Permalink
ResourceGroupTagging: Add support for s3:bucket resource type filter (
Browse files Browse the repository at this point in the history
  • Loading branch information
bpandola committed Jun 29, 2024
1 parent b4e2f95 commit b53b63c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
6 changes: 5 additions & 1 deletion moto/resourcegroupstaggingapi/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,11 @@ def format_tag_keys(
yield {"ResourceARN": f"{vault.backup_vault_arn}", "Tags": tags}

# S3
if not resource_type_filters or "s3" in resource_type_filters:
if (
not resource_type_filters
or "s3" in resource_type_filters
or "s3:bucket" in resource_type_filters
):
for bucket in self.s3_backend.buckets.values():
tags = self.s3_backend.tagger.list_tags_for_resource(bucket.arn)["Tags"]
if not tags or not tag_filter(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import json

import boto3
import pytest
from botocore.client import ClientError

from moto import mock_aws
Expand Down Expand Up @@ -534,8 +535,9 @@ def test_get_resources_target_group():
assert {"Key": "Test", "Value": "1"} in resp["ResourceTagMappingList"][0]["Tags"]


@pytest.mark.parametrize("resource_type", ["s3", "s3:bucket"])
@mock_aws
def test_get_resources_s3():
def test_get_resources_s3(resource_type):
# Tests pagination
s3_client = boto3.client("s3", region_name="eu-central-1")

Expand All @@ -556,14 +558,16 @@ def test_get_resources_s3():
response_keys.add("key" + i_str)

rtapi = boto3.client("resourcegroupstaggingapi", region_name="eu-central-1")
resp = rtapi.get_resources(ResourcesPerPage=2)
resp = rtapi.get_resources(ResourcesPerPage=2, ResourceTypeFilters=[resource_type])
for resource in resp["ResourceTagMappingList"]:
response_keys.remove(resource["Tags"][0]["Key"])

assert len(response_keys) == 2

resp = rtapi.get_resources(
ResourcesPerPage=2, PaginationToken=resp["PaginationToken"]
ResourcesPerPage=2,
PaginationToken=resp["PaginationToken"],
ResourceTypeFilters=[resource_type],
)
for resource in resp["ResourceTagMappingList"]:
response_keys.remove(resource["Tags"][0]["Key"])
Expand Down

0 comments on commit b53b63c

Please sign in to comment.