Skip to content

Commit d5ee6bd

Browse files
Terraform Team AutomationNagendraNigade
authored andcommitted
Bug Fix - database_management_status and operations_insights_status both not enabled together.
1 parent 7fdf7e4 commit d5ee6bd

File tree

3 files changed

+125
-12
lines changed

3 files changed

+125
-12
lines changed

examples/database/adb/autonomous_database.tf

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,27 @@ resource "oci_database_autonomous_database" "test_autonomous_database" {
5757
autonomous_maintenance_schedule_type = var.autonomous_database_autonomous_maintenance_schedule_type
5858
}
5959

60+
61+
62+
resource "oci_database_autonomous_database" "test_autonomous_database1" {
63+
admin_password = random_string.autonomous_database_admin_password.result
64+
compartment_id = var.compartment_ocid
65+
cpu_core_count = "1"
66+
data_storage_size_in_tbs = "1"
67+
db_name = "adbdb15f"
68+
db_version = "19c"
69+
db_workload = "OLTP"
70+
license_model = "BRING_YOUR_OWN_LICENSE"
71+
is_free_tier = "false"
72+
autonomous_maintenance_schedule_type = var.autonomous_database_autonomous_maintenance_schedule_type
73+
open_mode = "READ_ONLY"
74+
permission_level = "RESTRICTED"
75+
data_safe_status = "REGISTERED"
76+
database_edition = "STANDARD_EDITION"
77+
operations_insights_status = "ENABLED"
78+
database_management_status = "ENABLED"
79+
}
80+
6081
resource "oci_database_autonomous_database" "test_autonomous_database_ecpu" {
6182
admin_password = random_string.autonomous_database_admin_password.result
6283
compartment_id = var.compartment_ocid

internal/integrationtest/database_autonomous_database_resource_test.go

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3925,3 +3925,91 @@ func TestDatabaseAutonomousDatabaseResource_ElasticResourcePool(t *testing.T) {
39253925
},
39263926
})
39273927
}
3928+
3929+
func TestDatabaseAutonomousDatabase_opsi_dbms(t *testing.T) {
3930+
httpreplay.SetScenario("TestDatabaseAutonomousDatabaseResource_basic")
3931+
defer httpreplay.SaveScenario()
3932+
3933+
config := acctest.ProviderTestConfig()
3934+
3935+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
3936+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
3937+
3938+
resourceName := "oci_database_autonomous_database.test_autonomous_database"
3939+
acctest.SaveConfigContent(config+compartmentIdVariableStr+DatabaseAutonomousDatabaseResourceDependencies+
3940+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_database", "test_autonomous_database", acctest.Optional, acctest.Create, DatabaseAutonomousDatabaseRepresentation), "database", "autonomousDatabase", t)
3941+
3942+
acctest.ResourceTest(t, testAccCheckDatabaseAutonomousDatabaseDestroy, []resource.TestStep{
3943+
//0. Verify Create
3944+
{
3945+
Config: config + compartmentIdVariableStr + DatabaseAutonomousDatabaseResourceDependencies +
3946+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_database", "test_autonomous_database", acctest.Required, acctest.Create, DatabaseAutonomousDatabaseRepresentation),
3947+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
3948+
resource.TestCheckResourceAttr(resourceName, "admin_password", "BEstrO0ng_#11"),
3949+
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
3950+
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
3951+
resource.TestCheckResourceAttr(resourceName, "db_name", adbName),
3952+
// verify computed field db_workload to be defaulted to OLTP
3953+
resource.TestCheckResourceAttr(resourceName, "db_workload", "OLTP"),
3954+
3955+
func(s *terraform.State) (err error) {
3956+
_, err = acctest.FromInstanceState(s, resourceName, "id")
3957+
return err
3958+
},
3959+
),
3960+
},
3961+
//1. Delete before next Create
3962+
{
3963+
Config: config + compartmentIdVariableStr + DatabaseAutonomousDatabaseResourceDependencies,
3964+
},
3965+
//2. Verify DBMS status
3966+
{
3967+
Config: config + compartmentIdVariableStr + DatabaseAutonomousDatabaseResourceDependencies +
3968+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_database", "test_autonomous_database", acctest.Optional, acctest.Create,
3969+
acctest.RepresentationCopyWithNewProperties(autonomousDatabaseRepresentationBYOL, map[string]interface{}{
3970+
"database_management_status": acctest.Representation{RepType: acctest.Optional, Create: `ENABLED`, Update: `NOT_ENABLED`},
3971+
"operations_insights_status": acctest.Representation{RepType: acctest.Optional, Create: `ENABLED`, Update: `NOT_ENABLED`},
3972+
"open_mode": acctest.Representation{RepType: acctest.Optional, Create: `READ_ONLY`, Update: `READ_ONLY`},
3973+
"permission_level": acctest.Representation{RepType: acctest.Optional, Create: `RESTRICTED`, Update: `RESTRICTED`},
3974+
"data_safe_status": acctest.Representation{RepType: acctest.Optional, Create: `REGISTERED`, Update: `not_REGISTERED`},
3975+
"database_edition": acctest.Representation{RepType: acctest.Optional, Create: `STANDARD_EDITION`, Update: `STANDARD_EDITION`},
3976+
"db_name": acctest.Representation{RepType: acctest.Required, Create: adbName},
3977+
}),
3978+
),
3979+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
3980+
resource.TestCheckResourceAttr(resourceName, "admin_password", "BEstrO0ng_#11"),
3981+
resource.TestCheckResourceAttr(resourceName, "autonomous_maintenance_schedule_type", "REGULAR"),
3982+
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
3983+
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
3984+
resource.TestCheckResourceAttr(resourceName, "customer_contacts.#", "1"),
3985+
resource.TestCheckResourceAttr(resourceName, "customer_contacts.0.email", "[email protected]"),
3986+
resource.TestCheckResourceAttr(resourceName, "data_storage_size_in_tbs", "1"),
3987+
resource.TestCheckResourceAttr(resourceName, "database_edition", "STANDARD_EDITION"),
3988+
resource.TestCheckResourceAttr(resourceName, "db_name", adbName),
3989+
resource.TestCheckResourceAttrSet(resourceName, "db_version"),
3990+
resource.TestCheckResourceAttr(resourceName, "db_workload", "OLTP"),
3991+
resource.TestCheckResourceAttr(resourceName, "display_name", "example_autonomous_database"),
3992+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
3993+
resource.TestCheckResourceAttrSet(resourceName, "id"),
3994+
resource.TestCheckResourceAttr(resourceName, "is_auto_scaling_enabled", "false"),
3995+
resource.TestCheckResourceAttr(resourceName, "is_dedicated", "false"),
3996+
resource.TestCheckResourceAttr(resourceName, "is_mtls_connection_required", "false"),
3997+
resource.TestCheckResourceAttr(resourceName, "is_preview_version_with_service_terms_accepted", "false"),
3998+
resource.TestCheckResourceAttrSet(resourceName, "kms_key_id"),
3999+
resource.TestCheckResourceAttr(resourceName, "license_model", "BRING_YOUR_OWN_LICENSE"),
4000+
resource.TestCheckResourceAttrSet(resourceName, "vault_id"),
4001+
resource.TestCheckResourceAttr(resourceName, "state", "AVAILABLE"),
4002+
resource.TestCheckResourceAttr(resourceName, "whitelisted_ips.#", "1"),
4003+
resource.TestCheckResourceAttr(resourceName, "open_mode", "READ_ONLY"),
4004+
resource.TestCheckResourceAttr(resourceName, "permission_level", "RESTRICTED"),
4005+
resource.TestCheckResourceAttr(resourceName, "data_safe_status", "REGISTERED"),
4006+
resource.TestCheckResourceAttr(resourceName, "database_management_status", "ENABLED"),
4007+
resource.TestCheckResourceAttr(resourceName, "operations_insights_status", "ENABLED"),
4008+
func(s *terraform.State) (err error) {
4009+
_, err = acctest.FromInstanceState(s, resourceName, "id")
4010+
return err
4011+
},
4012+
),
4013+
},
4014+
})
4015+
}

internal/service/database/database_autonomous_database_resource.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,14 +1128,6 @@ func createDatabaseAutonomousDatabase(d *schema.ResourceData, m interface{}) err
11281128
return inactiveAutonomousDatabaseIfNeeded(d, sync)
11291129
}
11301130

1131-
if configDataSafeStatus == oci_database.AutonomousDatabaseDataSafeStatusRegistered {
1132-
err := sync.updateDataSafeStatus(sync.D.Id(), oci_database.AutonomousDatabaseDataSafeStatusRegistered)
1133-
if err != nil {
1134-
return err
1135-
}
1136-
return tfresource.ReadResource(sync)
1137-
}
1138-
11391131
if configOpenMode == oci_database.UpdateAutonomousDatabaseDetailsOpenModeOnly || configPermissionLevel == oci_database.UpdateAutonomousDatabaseDetailsPermissionLevelRestricted {
11401132
if configOpenMode == oci_database.UpdateAutonomousDatabaseDetailsOpenModeOnly {
11411133
sync.D.Set("open_mode", configOpenMode)
@@ -1147,25 +1139,37 @@ func createDatabaseAutonomousDatabase(d *schema.ResourceData, m interface{}) err
11471139
if err != nil {
11481140
return err
11491141
}
1150-
return tfresource.ReadResource(sync)
1142+
}
1143+
1144+
if configDataSafeStatus == oci_database.AutonomousDatabaseDataSafeStatusRegistered {
1145+
err := sync.updateDataSafeStatus(sync.D.Id(), oci_database.AutonomousDatabaseDataSafeStatusRegistered)
1146+
if err != nil {
1147+
return err
1148+
}
1149+
if e := tfresource.ReadResource(sync); e != nil {
1150+
return e
1151+
}
11511152
}
11521153

11531154
if configDatabaseManagementStatus == oci_database.AutonomousDatabaseDatabaseManagementStatusEnabled {
11541155
err := sync.updateAutonomousDatabaseManagementStatus(sync.D.Id(), oci_database.AutonomousDatabaseDatabaseManagementStatusEnabled)
11551156
if err != nil {
11561157
return err
11571158
}
1158-
return tfresource.ReadResource(sync)
1159+
if e := tfresource.ReadResource(sync); e != nil {
1160+
return e
1161+
}
11591162
}
11601163

11611164
if configOperationsInsightsStatus == oci_database.AutonomousDatabaseOperationsInsightsStatusEnabled {
11621165
err := sync.updateOperationsInsightsStatus(sync.D.Id(), oci_database.AutonomousDatabaseOperationsInsightsStatusEnabled)
11631166
if err != nil {
11641167
return err
11651168
}
1166-
return tfresource.ReadResource(sync)
1169+
if e := tfresource.ReadResource(sync); e != nil {
1170+
return e
1171+
}
11671172
}
1168-
11691173
return nil
11701174
}
11711175

0 commit comments

Comments
 (0)