Skip to content

Commit b222517

Browse files
authored
[aws][fix]: Change _keys method implementation for AwsCloudwatchMetricFilter and AwsApiGatewayResource (#2096)
1 parent e93cd56 commit b222517

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

plugins/aws/fix_plugin_aws/resource/apigateway.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import datetime
2-
from typing import ClassVar, Dict, Optional, List, Type, Union, Any
2+
from typing import ClassVar, Dict, Optional, List, Tuple, Type, Union, Any
33

44
from attrs import define, field
55
from fix_plugin_aws.aws_client import AwsClient
@@ -223,6 +223,17 @@ def delete_resource(self, client: AwsClient, graph: Graph) -> bool:
223223
)
224224
return True
225225

226+
def _keys(self) -> Tuple[Any, ...]:
227+
return (
228+
self.kind,
229+
self.cloud().id,
230+
self.account().id,
231+
self.region().id,
232+
self.zone().id,
233+
self.id,
234+
self.api_link,
235+
)
236+
226237
@classmethod
227238
def called_mutator_apis(cls) -> List[AwsApiSpec]:
228239
return [AwsApiSpec(service_name, "delete-resource", override_iam_permission="apigateway:DELETE")]

plugins/aws/fix_plugin_aws/resource/cloudwatch.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,15 +418,17 @@ class AwsCloudwatchMetricFilter(AwsResource):
418418
"id": S("filterName"),
419419
"name": S("filterName"),
420420
"ctime": S("creationTime") >> F(lambda x: x // 1000) >> SecondsFromEpochToDatetime(),
421+
"log_group_name": S("logGroupName"),
421422
"filter_pattern": S("filterPattern"),
422423
"filter_transformations": S("metricTransformations", default=[])
423424
>> ForallBend(AwsCloudwatchMetricTransformation.mapping),
424425
}
426+
log_group_name: Optional[str] = field(default=None)
425427
filter_pattern: Optional[str] = field(default=None)
426428
filter_transformations: List[AwsCloudwatchMetricTransformation] = field(factory=list)
427429

428430
def connect_in_graph(self, builder: GraphBuilder, source: Json) -> None:
429-
if log_group_name := source.get("logGroupName"):
431+
if log_group_name := self.log_group_name:
430432
builder.dependant_node(self, reverse=True, clazz=AwsCloudwatchLogGroup, name=log_group_name)
431433
for transformation in self.filter_transformations:
432434
# every metric can be used by multiple alarms
@@ -452,6 +454,17 @@ def delete_resource(self, client: AwsClient, graph: Graph) -> bool:
452454
return True
453455
return False
454456

457+
def _keys(self) -> Tuple[Any, ...]:
458+
return (
459+
self.kind,
460+
self.cloud().id,
461+
self.account().id,
462+
self.region().id,
463+
self.zone().id,
464+
self.id,
465+
self.log_group_name,
466+
)
467+
455468

456469
@define(hash=True, frozen=True)
457470
class AwsCloudwatchQuery:

0 commit comments

Comments
 (0)