22import logging
33import os
44import sys
5+ import csv
56from datetime import datetime
67from typing import Dict , Any , List
78
1516from utils import (transform_to_iso_8601 ,
1617 transform_to_datetime ,
1718 transform_perf_key ,
18- compress_json_array ,
19+ json_array_to_csv ,
1920 get_rds_client ,
2021 get_vpc_client ,
2122 get_bill_client )
@@ -40,9 +41,12 @@ async def describe_db_instances(region_id: str):
4041 """
4142 client = get_rds_client (region_id )
4243 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+ )
4448 response = client .describe_dbinstances (request )
45- return response .body .to_map ( )
49+ return json_array_to_csv ( response .body .items . dbinstance )
4650 except Exception as e :
4751 raise e
4852
@@ -113,7 +117,7 @@ def _compress_performance(performance_value, max_items=10):
113117 response = client .describe_dbinstance_performance (request )
114118 responses = []
115119 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 ))} """
117121 responses .append (perf_key_info )
118122 return responses
119123 except Exception as e :
@@ -905,12 +909,8 @@ async def describe_db_instance_parameters(
905909
906910 db_instance_parameters [db_instance_id ] = {
907911 "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 )
914914 }
915915 return db_instance_parameters
916916 except Exception as e :
@@ -978,7 +978,7 @@ async def describe_bills(
978978 "BillingItemUsage" : item .usage ,
979979 }
980980 )
981- res [billing_cycle ] = compress_json_array (item_filters )
981+ res [billing_cycle ] = json_array_to_csv (item_filters )
982982 return res
983983 except Exception as e :
984984 raise e
0 commit comments