2
2
import logging
3
3
import os
4
4
import sys
5
+ import csv
5
6
from datetime import datetime
6
7
from typing import Dict , Any , List
7
8
15
16
from utils import (transform_to_iso_8601 ,
16
17
transform_to_datetime ,
17
18
transform_perf_key ,
18
- compress_json_array ,
19
+ json_array_to_csv ,
19
20
get_rds_client ,
20
21
get_vpc_client ,
21
22
get_bill_client )
@@ -40,9 +41,12 @@ async def describe_db_instances(region_id: str):
40
41
"""
41
42
client = get_rds_client (region_id )
42
43
try :
43
- request = rds_20140815_models .DescribeDBInstancesRequest (region_id = region_id )
44
+ request = rds_20140815_models .DescribeDBInstancesRequest (
45
+ region_id = region_id ,
46
+ page_size = 100
47
+ )
44
48
response = client .describe_dbinstances (request )
45
- return response .body .to_map ( )
49
+ return json_array_to_csv ( response .body .items . dbinstance )
46
50
except Exception as e :
47
51
raise e
48
52
@@ -113,7 +117,7 @@ def _compress_performance(performance_value, max_items=10):
113
117
response = client .describe_dbinstance_performance (request )
114
118
responses = []
115
119
for perf_key in response .body .performance_keys .performance_key :
116
- perf_key_info = f"""Key={ perf_key .key } ; Unit={ perf_key .unit } ; ValueFormat={ perf_key .value_format } ; Values={ compress_json_array ([ item . to_map () for item in _compress_performance (perf_key .values .performance_value )] )} """
120
+ perf_key_info = f"""Key={ perf_key .key } ; Unit={ perf_key .unit } ; ValueFormat={ perf_key .value_format } ; Values={ json_array_to_csv ( _compress_performance (perf_key .values .performance_value ))} """
117
121
responses .append (perf_key_info )
118
122
return responses
119
123
except Exception as e :
@@ -905,12 +909,8 @@ async def describe_db_instance_parameters(
905
909
906
910
db_instance_parameters [db_instance_id ] = {
907
911
"ParamGroupInfo" : response .body .param_group_info .to_map (),
908
- "ConfigParameters" : compress_json_array ([
909
- config_parameter .to_map () for config_parameter in response .body .config_parameters .dbinstance_parameter
910
- ]),
911
- "RunningParameters" : compress_json_array ([
912
- running_parameter .to_map () for running_parameter in response .body .running_parameters .dbinstance_parameter
913
- ])
912
+ "ConfigParameters" : json_array_to_csv (response .body .config_parameters .dbinstance_parameter ),
913
+ "RunningParameters" : json_array_to_csv (response .body .running_parameters .dbinstance_parameter )
914
914
}
915
915
return db_instance_parameters
916
916
except Exception as e :
@@ -978,7 +978,7 @@ async def describe_bills(
978
978
"BillingItemUsage" : item .usage ,
979
979
}
980
980
)
981
- res [billing_cycle ] = compress_json_array (item_filters )
981
+ res [billing_cycle ] = json_array_to_csv (item_filters )
982
982
return res
983
983
except Exception as e :
984
984
raise e
0 commit comments