fix: aws_rds_cluster deep mode
parent
7c653d0500
commit
6718cfb3e4
|
@ -32,6 +32,12 @@ func (e *RDSClusterEnumerator) Enumerate() ([]*resource.Resource, error) {
|
||||||
results := make([]*resource.Resource, len(clusters))
|
results := make([]*resource.Resource, len(clusters))
|
||||||
|
|
||||||
for _, cluster := range clusters {
|
for _, cluster := range clusters {
|
||||||
|
var databaseName string
|
||||||
|
|
||||||
|
if v := cluster.DatabaseName; v != nil {
|
||||||
|
databaseName = *cluster.DatabaseName
|
||||||
|
}
|
||||||
|
|
||||||
results = append(
|
results = append(
|
||||||
results,
|
results,
|
||||||
e.factory.CreateAbstractResource(
|
e.factory.CreateAbstractResource(
|
||||||
|
@ -39,6 +45,7 @@ func (e *RDSClusterEnumerator) Enumerate() ([]*resource.Resource, error) {
|
||||||
*cluster.DBClusterIdentifier,
|
*cluster.DBClusterIdentifier,
|
||||||
map[string]interface{}{
|
map[string]interface{}{
|
||||||
"cluster_identifier": *cluster.DBClusterIdentifier,
|
"cluster_identifier": *cluster.DBClusterIdentifier,
|
||||||
|
"database_name": databaseName,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
@ -249,7 +249,13 @@ func TestRDSCluster(t *testing.T) {
|
||||||
dirName: "aws_rds_clusters_results",
|
dirName: "aws_rds_clusters_results",
|
||||||
mocks: func(repository *repository.MockRDSRepository, alerter *mocks.AlerterInterface) {
|
mocks: func(repository *repository.MockRDSRepository, alerter *mocks.AlerterInterface) {
|
||||||
repository.On("ListAllDBClusters").Return([]*rds.DBCluster{
|
repository.On("ListAllDBClusters").Return([]*rds.DBCluster{
|
||||||
{DBClusterIdentifier: awssdk.String("aurora-cluster-demo")},
|
{
|
||||||
|
DBClusterIdentifier: awssdk.String("aurora-cluster-demo"),
|
||||||
|
DatabaseName: awssdk.String("mydb"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
DBClusterIdentifier: awssdk.String("aurora-cluster-demo-2"),
|
||||||
|
},
|
||||||
}, nil)
|
}, nil)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"Typ": "WyJvYmplY3QiLHsiYWxsb3dfbWFqb3JfdmVyc2lvbl91cGdyYWRlIjoiYm9vbCIsImFwcGx5X2ltbWVkaWF0ZWx5IjoiYm9vbCIsImFybiI6InN0cmluZyIsImF2YWlsYWJpbGl0eV96b25lcyI6WyJzZXQiLCJzdHJpbmciXSwiYmFja3RyYWNrX3dpbmRvdyI6Im51bWJlciIsImJhY2t1cF9yZXRlbnRpb25fcGVyaW9kIjoibnVtYmVyIiwiY2x1c3Rlcl9pZGVudGlmaWVyIjoic3RyaW5nIiwiY2x1c3Rlcl9pZGVudGlmaWVyX3ByZWZpeCI6InN0cmluZyIsImNsdXN0ZXJfbWVtYmVycyI6WyJzZXQiLCJzdHJpbmciXSwiY2x1c3Rlcl9yZXNvdXJjZV9pZCI6InN0cmluZyIsImNvcHlfdGFnc190b19zbmFwc2hvdCI6ImJvb2wiLCJkYXRhYmFzZV9uYW1lIjoic3RyaW5nIiwiZGJfY2x1c3Rlcl9wYXJhbWV0ZXJfZ3JvdXBfbmFtZSI6InN0cmluZyIsImRiX3N1Ym5ldF9ncm91cF9uYW1lIjoic3RyaW5nIiwiZGVsZXRpb25fcHJvdGVjdGlvbiI6ImJvb2wiLCJlbmFibGVfaHR0cF9lbmRwb2ludCI6ImJvb2wiLCJlbmFibGVkX2Nsb3Vkd2F0Y2hfbG9nc19leHBvcnRzIjpbInNldCIsInN0cmluZyJdLCJlbmRwb2ludCI6InN0cmluZyIsImVuZ2luZSI6InN0cmluZyIsImVuZ2luZV9tb2RlIjoic3RyaW5nIiwiZW5naW5lX3ZlcnNpb24iOiJzdHJpbmciLCJmaW5hbF9zbmFwc2hvdF9pZGVudGlmaWVyIjoic3RyaW5nIiwiZ2xvYmFsX2NsdXN0ZXJfaWRlbnRpZmllciI6InN0cmluZyIsImhvc3RlZF96b25lX2lkIjoic3RyaW5nIiwiaWFtX2RhdGFiYXNlX2F1dGhlbnRpY2F0aW9uX2VuYWJsZWQiOiJib29sIiwiaWFtX3JvbGVzIjpbInNldCIsInN0cmluZyJdLCJpZCI6InN0cmluZyIsImttc19rZXlfaWQiOiJzdHJpbmciLCJtYXN0ZXJfcGFzc3dvcmQiOiJzdHJpbmciLCJtYXN0ZXJfdXNlcm5hbWUiOiJzdHJpbmciLCJwb3J0IjoibnVtYmVyIiwicHJlZmVycmVkX2JhY2t1cF93aW5kb3ciOiJzdHJpbmciLCJwcmVmZXJyZWRfbWFpbnRlbmFuY2Vfd2luZG93Ijoic3RyaW5nIiwicmVhZGVyX2VuZHBvaW50Ijoic3RyaW5nIiwicmVwbGljYXRpb25fc291cmNlX2lkZW50aWZpZXIiOiJzdHJpbmciLCJyZXN0b3JlX3RvX3BvaW50X2luX3RpbWUiOlsibGlzdCIsWyJvYmplY3QiLHsicmVzdG9yZV90b190aW1lIjoic3RyaW5nIiwicmVzdG9yZV90eXBlIjoic3RyaW5nIiwic291cmNlX2NsdXN0ZXJfaWRlbnRpZmllciI6InN0cmluZyIsInVzZV9sYXRlc3RfcmVzdG9yYWJsZV90aW1lIjoiYm9vbCJ9XV0sInMzX2ltcG9ydCI6WyJsaXN0IixbIm9iamVjdCIseyJidWNrZXRfbmFtZSI6InN0cmluZyIsImJ1Y2tldF9wcmVmaXgiOiJzdHJpbmciLCJpbmdlc3Rpb25fcm9sZSI6InN0cmluZyIsInNvdXJjZV9lbmdpbmUiOiJzdHJpbmciLCJzb3VyY2VfZW5naW5lX3ZlcnNpb24iOiJzdHJpbmcifV1dLCJzY2FsaW5nX2NvbmZpZ3VyYXRpb24iOlsibGlzdCIsWyJvYmplY3QiLHsiYXV0b19wYXVzZSI6ImJvb2wiLCJtYXhfY2FwYWNpdHkiOiJudW1iZXIiLCJtaW5fY2FwYWNpdHkiOiJudW1iZXIiLCJzZWNvbmRzX3VudGlsX2F1dG9fcGF1c2UiOiJudW1iZXIiLCJ0aW1lb3V0X2FjdGlvbiI6InN0cmluZyJ9XV0sInNraXBfZmluYWxfc25hcHNob3QiOiJib29sIiwic25hcHNob3RfaWRlbnRpZmllciI6InN0cmluZyIsInNvdXJjZV9yZWdpb24iOiJzdHJpbmciLCJzdG9yYWdlX2VuY3J5cHRlZCI6ImJvb2wiLCJ0YWdzIjpbIm1hcCIsInN0cmluZyJdLCJ0aW1lb3V0cyI6WyJvYmplY3QiLHsiY3JlYXRlIjoic3RyaW5nIiwiZGVsZXRlIjoic3RyaW5nIiwidXBkYXRlIjoic3RyaW5nIn1dLCJ2cGNfc2VjdXJpdHlfZ3JvdXBfaWRzIjpbInNldCIsInN0cmluZyJdfV0=",
|
||||||
|
"Val": "eyJhbGxvd19tYWpvcl92ZXJzaW9uX3VwZ3JhZGUiOm51bGwsImFwcGx5X2ltbWVkaWF0ZWx5IjpudWxsLCJhcm4iOiJhcm46YXdzOnJkczp1cy1lYXN0LTE6NTMzOTQ4MTI0ODc5OmNsdXN0ZXI6YXVyb3JhLWNsdXN0ZXItZGVtbyIsImF2YWlsYWJpbGl0eV96b25lcyI6WyJ1cy1lYXN0LTFhIiwidXMtZWFzdC0xYiIsInVzLWVhc3QtMWQiXSwiYmFja3RyYWNrX3dpbmRvdyI6MCwiYmFja3VwX3JldGVudGlvbl9wZXJpb2QiOjUsImNsdXN0ZXJfaWRlbnRpZmllciI6ImF1cm9yYS1jbHVzdGVyLWRlbW8tMiIsImNsdXN0ZXJfaWRlbnRpZmllcl9wcmVmaXgiOm51bGwsImNsdXN0ZXJfbWVtYmVycyI6WyJhdXJvcmEtY2x1c3Rlci1kZW1vLTAiXSwiY2x1c3Rlcl9yZXNvdXJjZV9pZCI6ImNsdXN0ZXItVElTWURTU1g0SjVSNlpHVVRWNkxMSlc3M0UiLCJjb3B5X3RhZ3NfdG9fc25hcHNob3QiOmZhbHNlLCJkYXRhYmFzZV9uYW1lIjoiIiwiZGJfY2x1c3Rlcl9wYXJhbWV0ZXJfZ3JvdXBfbmFtZSI6ImRlZmF1bHQuYXVyb3JhLXBvc3RncmVzcWwxMSIsImRiX3N1Ym5ldF9ncm91cF9uYW1lIjoiZGVmYXVsdCIsImRlbGV0aW9uX3Byb3RlY3Rpb24iOmZhbHNlLCJlbmFibGVfaHR0cF9lbmRwb2ludCI6ZmFsc2UsImVuYWJsZWRfY2xvdWR3YXRjaF9sb2dzX2V4cG9ydHMiOltdLCJlbmRwb2ludCI6ImF1cm9yYS1jbHVzdGVyLWRlbW8uY2x1c3Rlci1jZDUzOXI2cXVpdXgudXMtZWFzdC0xLnJkcy5hbWF6b25hd3MuY29tIiwiZW5naW5lIjoiYXVyb3JhLXBvc3RncmVzcWwiLCJlbmdpbmVfbW9kZSI6InByb3Zpc2lvbmVkIiwiZW5naW5lX3ZlcnNpb24iOiIxMS45IiwiZmluYWxfc25hcHNob3RfaWRlbnRpZmllciI6bnVsbCwiZ2xvYmFsX2NsdXN0ZXJfaWRlbnRpZmllciI6IiIsImhvc3RlZF96b25lX2lkIjoiWjJSMklUVUdQTTYxQU0iLCJpYW1fZGF0YWJhc2VfYXV0aGVudGljYXRpb25fZW5hYmxlZCI6ZmFsc2UsImlhbV9yb2xlcyI6W10sImlkIjoiYXVyb3JhLWNsdXN0ZXItZGVtbyIsImttc19rZXlfaWQiOiIiLCJtYXN0ZXJfcGFzc3dvcmQiOm51bGwsIm1hc3Rlcl91c2VybmFtZSI6ImZvbyIsInBvcnQiOjU0MzIsInByZWZlcnJlZF9iYWNrdXBfd2luZG93IjoiMDc6MDAtMDk6MDAiLCJwcmVmZXJyZWRfbWFpbnRlbmFuY2Vfd2luZG93IjoiZnJpOjAzOjAzLWZyaTowMzozMyIsInJlYWRlcl9lbmRwb2ludCI6ImF1cm9yYS1jbHVzdGVyLWRlbW8uY2x1c3Rlci1yby1jZDUzOXI2cXVpdXgudXMtZWFzdC0xLnJkcy5hbWF6b25hd3MuY29tIiwicmVwbGljYXRpb25fc291cmNlX2lkZW50aWZpZXIiOiIiLCJyZXN0b3JlX3RvX3BvaW50X2luX3RpbWUiOm51bGwsInMzX2ltcG9ydCI6bnVsbCwic2NhbGluZ19jb25maWd1cmF0aW9uIjpbXSwic2tpcF9maW5hbF9zbmFwc2hvdCI6bnVsbCwic25hcHNob3RfaWRlbnRpZmllciI6bnVsbCwic291cmNlX3JlZ2lvbiI6bnVsbCwic3RvcmFnZV9lbmNyeXB0ZWQiOmZhbHNlLCJ0YWdzIjp7fSwidGltZW91dHMiOnsiY3JlYXRlIjpudWxsLCJkZWxldGUiOm51bGwsInVwZGF0ZSI6bnVsbH0sInZwY19zZWN1cml0eV9ncm91cF9pZHMiOlsic2ctNDllMzg2NDYiXX0=",
|
||||||
|
"Err": null
|
||||||
|
}
|
|
@ -1,57 +1,112 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"allow_major_version_upgrade": null,
|
"allow_major_version_upgrade": null,
|
||||||
"apply_immediately": null,
|
"apply_immediately": null,
|
||||||
"arn": "arn:aws:rds:us-east-1:533948124879:cluster:aurora-cluster-demo",
|
"arn": "arn:aws:rds:us-east-1:533948124879:cluster:aurora-cluster-demo",
|
||||||
"availability_zones": [
|
"availability_zones": [
|
||||||
"us-east-1a",
|
"us-east-1a",
|
||||||
"us-east-1b",
|
"us-east-1b",
|
||||||
"us-east-1d"
|
"us-east-1d"
|
||||||
],
|
],
|
||||||
"backtrack_window": 0,
|
"backtrack_window": 0,
|
||||||
"backup_retention_period": 5,
|
"backup_retention_period": 5,
|
||||||
"cluster_identifier": "aurora-cluster-demo",
|
"cluster_identifier": "aurora-cluster-demo",
|
||||||
"cluster_identifier_prefix": null,
|
"cluster_identifier_prefix": null,
|
||||||
"cluster_members": [
|
"cluster_members": [
|
||||||
"aurora-cluster-demo-0"
|
"aurora-cluster-demo-0"
|
||||||
],
|
],
|
||||||
"cluster_resource_id": "cluster-TISYDSSX4J5R6ZGUTV6LLJW73E",
|
"cluster_resource_id": "cluster-TISYDSSX4J5R6ZGUTV6LLJW73E",
|
||||||
"copy_tags_to_snapshot": false,
|
"copy_tags_to_snapshot": false,
|
||||||
"database_name": "mydb",
|
"database_name": "mydb",
|
||||||
"db_cluster_parameter_group_name": "default.aurora-postgresql11",
|
"db_cluster_parameter_group_name": "default.aurora-postgresql11",
|
||||||
"db_subnet_group_name": "default",
|
"db_subnet_group_name": "default",
|
||||||
"deletion_protection": false,
|
"deletion_protection": false,
|
||||||
"enable_http_endpoint": false,
|
"enable_http_endpoint": false,
|
||||||
"enabled_cloudwatch_logs_exports": null,
|
"enabled_cloudwatch_logs_exports": null,
|
||||||
"endpoint": "aurora-cluster-demo.cluster-cd539r6quiux.us-east-1.rds.amazonaws.com",
|
"endpoint": "aurora-cluster-demo.cluster-cd539r6quiux.us-east-1.rds.amazonaws.com",
|
||||||
"engine": "aurora-postgresql",
|
"engine": "aurora-postgresql",
|
||||||
"engine_mode": "provisioned",
|
"engine_mode": "provisioned",
|
||||||
"engine_version": "11.9",
|
"engine_version": "11.9",
|
||||||
"final_snapshot_identifier": null,
|
"final_snapshot_identifier": null,
|
||||||
"global_cluster_identifier": "",
|
"global_cluster_identifier": "",
|
||||||
"hosted_zone_id": "Z2R2ITUGPM61AM",
|
"hosted_zone_id": "Z2R2ITUGPM61AM",
|
||||||
"iam_database_authentication_enabled": false,
|
"iam_database_authentication_enabled": false,
|
||||||
"iam_roles": null,
|
"iam_roles": null,
|
||||||
"id": "aurora-cluster-demo",
|
"id": "aurora-cluster-demo",
|
||||||
"kms_key_id": "",
|
"kms_key_id": "",
|
||||||
"master_password": null,
|
"master_password": null,
|
||||||
"master_username": "foo",
|
"master_username": "foo",
|
||||||
"port": 5432,
|
"port": 5432,
|
||||||
"preferred_backup_window": "07:00-09:00",
|
"preferred_backup_window": "07:00-09:00",
|
||||||
"preferred_maintenance_window": "fri:03:03-fri:03:33",
|
"preferred_maintenance_window": "fri:03:03-fri:03:33",
|
||||||
"reader_endpoint": "aurora-cluster-demo.cluster-ro-cd539r6quiux.us-east-1.rds.amazonaws.com",
|
"reader_endpoint": "aurora-cluster-demo.cluster-ro-cd539r6quiux.us-east-1.rds.amazonaws.com",
|
||||||
"replication_source_identifier": "",
|
"replication_source_identifier": "",
|
||||||
"restore_to_point_in_time": null,
|
"restore_to_point_in_time": null,
|
||||||
"s3_import": null,
|
"s3_import": null,
|
||||||
"scaling_configuration": null,
|
"scaling_configuration": null,
|
||||||
"skip_final_snapshot": false,
|
"skip_final_snapshot": false,
|
||||||
"snapshot_identifier": null,
|
"snapshot_identifier": null,
|
||||||
"source_region": null,
|
"source_region": null,
|
||||||
"storage_encrypted": false,
|
"storage_encrypted": false,
|
||||||
"tags": null,
|
"tags": null,
|
||||||
"timeouts": null,
|
"timeouts": null,
|
||||||
"vpc_security_group_ids": [
|
"vpc_security_group_ids": [
|
||||||
"sg-49e38646"
|
"sg-49e38646"
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"allow_major_version_upgrade": null,
|
||||||
|
"apply_immediately": null,
|
||||||
|
"arn": "arn:aws:rds:us-east-1:533948124879:cluster:aurora-cluster-demo",
|
||||||
|
"availability_zones": [
|
||||||
|
"us-east-1a",
|
||||||
|
"us-east-1b",
|
||||||
|
"us-east-1d"
|
||||||
|
],
|
||||||
|
"backtrack_window": 0,
|
||||||
|
"backup_retention_period": 5,
|
||||||
|
"cluster_identifier": "aurora-cluster-demo-2",
|
||||||
|
"cluster_identifier_prefix": null,
|
||||||
|
"cluster_members": [
|
||||||
|
"aurora-cluster-demo-0"
|
||||||
|
],
|
||||||
|
"cluster_resource_id": "cluster-TISYDSSX4J5R6ZGUTV6LLJW73E",
|
||||||
|
"copy_tags_to_snapshot": false,
|
||||||
|
"database_name": "",
|
||||||
|
"db_cluster_parameter_group_name": "default.aurora-postgresql11",
|
||||||
|
"db_subnet_group_name": "default",
|
||||||
|
"deletion_protection": false,
|
||||||
|
"enable_http_endpoint": false,
|
||||||
|
"enabled_cloudwatch_logs_exports": null,
|
||||||
|
"endpoint": "aurora-cluster-demo.cluster-cd539r6quiux.us-east-1.rds.amazonaws.com",
|
||||||
|
"engine": "aurora-postgresql",
|
||||||
|
"engine_mode": "provisioned",
|
||||||
|
"engine_version": "11.9",
|
||||||
|
"final_snapshot_identifier": null,
|
||||||
|
"global_cluster_identifier": "",
|
||||||
|
"hosted_zone_id": "Z2R2ITUGPM61AM",
|
||||||
|
"iam_database_authentication_enabled": false,
|
||||||
|
"iam_roles": null,
|
||||||
|
"id": "aurora-cluster-demo",
|
||||||
|
"kms_key_id": "",
|
||||||
|
"master_password": null,
|
||||||
|
"master_username": "foo",
|
||||||
|
"port": 5432,
|
||||||
|
"preferred_backup_window": "07:00-09:00",
|
||||||
|
"preferred_maintenance_window": "fri:03:03-fri:03:33",
|
||||||
|
"reader_endpoint": "aurora-cluster-demo.cluster-ro-cd539r6quiux.us-east-1.rds.amazonaws.com",
|
||||||
|
"replication_source_identifier": "",
|
||||||
|
"restore_to_point_in_time": null,
|
||||||
|
"s3_import": null,
|
||||||
|
"scaling_configuration": null,
|
||||||
|
"skip_final_snapshot": false,
|
||||||
|
"snapshot_identifier": null,
|
||||||
|
"source_region": null,
|
||||||
|
"storage_encrypted": false,
|
||||||
|
"tags": null,
|
||||||
|
"timeouts": null,
|
||||||
|
"vpc_security_group_ids": [
|
||||||
|
"sg-49e38646"
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
|
@ -10,6 +10,7 @@ func initAwsRDSClusterMetaData(resourceSchemaRepository resource.SchemaRepositor
|
||||||
resourceSchemaRepository.SetResolveReadAttributesFunc(AwsRDSClusterResourceType, func(res *resource.Resource) map[string]string {
|
resourceSchemaRepository.SetResolveReadAttributesFunc(AwsRDSClusterResourceType, func(res *resource.Resource) map[string]string {
|
||||||
return map[string]string{
|
return map[string]string{
|
||||||
"cluster_identifier": *res.Attributes().GetString("cluster_identifier"),
|
"cluster_identifier": *res.Attributes().GetString("cluster_identifier"),
|
||||||
|
"database_name": *res.Attributes().GetString("database_name"),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
resourceSchemaRepository.SetNormalizeFunc(AwsRDSClusterResourceType, func(res *resource.Resource) {
|
resourceSchemaRepository.SetNormalizeFunc(AwsRDSClusterResourceType, func(res *resource.Resource) {
|
||||||
|
@ -18,6 +19,10 @@ func initAwsRDSClusterMetaData(resourceSchemaRepository resource.SchemaRepositor
|
||||||
val.SafeDelete([]string{"master_password"})
|
val.SafeDelete([]string{"master_password"})
|
||||||
val.SafeDelete([]string{"cluster_members"})
|
val.SafeDelete([]string{"cluster_members"})
|
||||||
val.SafeDelete([]string{"skip_final_snapshot"})
|
val.SafeDelete([]string{"skip_final_snapshot"})
|
||||||
|
val.SafeDelete([]string{"allow_major_version_upgrade"})
|
||||||
|
val.SafeDelete([]string{"apply_immediately"})
|
||||||
|
val.SafeDelete([]string{"final_snapshot_identifier"})
|
||||||
|
val.SafeDelete([]string{"source_region"})
|
||||||
})
|
})
|
||||||
resourceSchemaRepository.SetFlags(AwsRDSClusterResourceType, resource.FlagDeepMode)
|
resourceSchemaRepository.SetFlags(AwsRDSClusterResourceType, resource.FlagDeepMode)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue