Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import logging
from typing import Generator, List

from dateutil.relativedelta import relativedelta
from spaceone.core.utils import *

from spaceone.inventory.connector.aws_cloud_watch_connector.schema.data import Alarms
Expand Down Expand Up @@ -113,8 +114,7 @@ def _set_alarm_conditions(self, raw_alarm: Alarms) -> None:

raw_alarm["conditions"] = f"{metric_name} {operator} {threshold} for {evaluation_periods} datapoionts within {period_minutes} minutes"

@staticmethod
def _set_alarm_actions(raw_alarm: Alarms) -> None:
def _set_alarm_actions(self, raw_alarm: Alarms) -> None:
raw_alarm["actions"] = []
actions = raw_alarm["actions"]
alarm_actions = raw_alarm.get("AlarmActions", [])
Expand All @@ -129,7 +129,8 @@ def _set_alarm_actions(raw_alarm: Alarms) -> None:

if "sns" in action.lower():
action_type = "Notification"
action_description = action.split(":")[-1]
arn = action.split(":")[-1]
action_description = f"When in alarm, send message to topic \"{arn}\""
action_config = ""
elif "lambda" in action.lower():
# lambda_client = boto3.client("lambda", region_name=self.region_name, verify=BOTO3_HTTPS_VERIFIED)
Expand All @@ -146,10 +147,13 @@ def _set_alarm_actions(raw_alarm: Alarms) -> None:

def get_alarm_history(self, alarm_name: str) -> Generator[dict, None, None]:
paginator = self.client.get_paginator("describe_alarm_history")

end_date = datetime.datetime.now() - relativedelta(months=1)
response_iterator = paginator.paginate(
PaginationConfig={
"AlarmName": alarm_name,
"MaxItems": 100,
"EndDate": end_date,
"ScanBy": "TimestampDescending",
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,15 @@

cst_alarms._metadata = CloudServiceTypeMeta.set_meta(
fields=[
EnumDyField.data_source("State", "data.state_value", default_badge={
'gray.500': ['INSUFFICIENT_DATA'], 'green.500': ['OK'], 'red.500': ['ALARM']
}),
EnumDyField.data_source(
"State",
"data.state_value",
default_state={
"safe": ["OK"],
"disable": ["INSUFFICIENT_DATA"],
"alert": ["ALARM"],
},
),
DateTimeDyField.data_source("Last State Update", "data.state_updated_timestamp"),
TextDyField.data_source("Conditions", "data.conditions"),
EnumDyField.data_source("Actions", "data.actions_enabled", default_badge={
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ def request_target_group_data(self, region_name):
match_tags = self.search_tags(all_tags, raw_tg.get("TargetGroupArn"))
raw_tg.update(
{
"port_display": str(raw_tg.get("Port")),
"region_name": region_name,
"cloudtrail": self.set_cloudtrail(
region_name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ class TargetGroup(AWSCloudService):
choices=("HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP"),
)
port = IntType(deserialize_from="Port")
port_display = StringType(deserialize_from="port_display")
vpc_id = StringType(deserialize_from="VpcId")
health_check_protocol = StringType(
deserialize_from="HealthCheckProtocol",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@
"Target Health", "data.targets_health",
fields=[
TextDyField.data_source("ID", "target.id"),
TextDyField.data_source("Port", "target.port"),
TextDyField.data_source("Port", "target.port_display"),
TextDyField.data_source("AvailabilityZone", "target.availability_zone"),
TextDyField.data_source("HealthCheckPort", "health_check_port"),
EnumDyField.data_source(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@

cst_tg._metadata = CloudServiceTypeMeta.set_meta(
fields=[
TextDyField.data_source("Port", "data.port"),
TextDyField.data_source("Port", "data.port_display"),
TextDyField.data_source("Protocol", "data.protocol"),
TextDyField.data_source("Target Type", "instance_type"),
ListDyField.data_source(
Expand Down
Loading