Skip to content

Commit c869187

Browse files
Praveen KumarMaxrovr
authored andcommitted
Added - Support monitoring of Cloud DB System for Database Management Service
1 parent 31dba2e commit c869187

File tree

112 files changed

+20233
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+20233
-91
lines changed

examples/databasemanagement/cloud_dbsystem/main.tf

Lines changed: 487 additions & 0 deletions
Large diffs are not rendered by default.

examples/databasemanagement/dbsystem/main.tf

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,9 @@ resource "oci_database_management_external_db_system_discovery" "test_external_d
213213
# is_selected_for_monitoring = "false"
214214
# }
215215
# }
216+
lifecycle {
217+
ignore_changes = [defined_tags]
218+
}
216219
}
217220

218221
# List ExternalDbSystemDiscovery resources
@@ -240,6 +243,9 @@ resource "oci_database_management_external_db_system" "test_external_db_system"
240243
"${oci_identity_tag_namespace.tag_namespace1.name}.${oci_identity_tag.tag1.name}" = var.db_system_defined_tags_value
241244
}
242245
freeform_tags = var.db_system_freeform_tags
246+
lifecycle {
247+
ignore_changes = [defined_tags]
248+
}
243249
}
244250

245251
# List ExternalDbSystem resources
@@ -281,7 +287,7 @@ resource "oci_database_management_external_db_system_connector" "test_external_a
281287
}
282288
freeform_tags = var.db_system_connector_freeform_tags
283289
lifecycle {
284-
ignore_changes = [connection_info]
290+
ignore_changes = [connection_info, defined_tags]
285291
}
286292
}
287293

@@ -389,6 +395,9 @@ resource "oci_database_management_external_db_system_connector" "test_external_l
389395
"${oci_identity_tag_namespace.tag_namespace1.name}.${oci_identity_tag.tag1.name}" = var.db_system_connector_defined_tags_value
390396
}
391397
freeform_tags = var.db_system_connector_freeform_tags
398+
lifecycle {
399+
ignore_changes = [defined_tags]
400+
}
392401
}
393402

394403
# List ExternalListeners in ExternalDbSystem
@@ -428,7 +437,7 @@ data "oci_database_management_external_db_system_connectors" "test_external_db_s
428437
#Optional
429438
compartment_id = var.compartment_id
430439
display_name = var.external_asm_connector_display_name
431-
depends_on = [oci_database_management_external_db_system_connector.test_external_asm_connector]
440+
#depends_on = [oci_database_management_external_db_system_connector.test_external_asm_connector]
432441
}
433442

434443
data "oci_database_management_managed_databases_asm_properties" "test_managed_databases_asm_properties" {
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
DatabaseManagementCloudAsmConfigurationSingularDataSourceRepresentation = map[string]interface{}{
20+
"cloud_asm_id": acctest.Representation{RepType: acctest.Required, Create: `${var.cloud_asm_id}`},
21+
"opc_named_credential_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.opc_named_credential_id}`},
22+
}
23+
24+
DatabaseManagementCloudAsmConfigurationResourceConfig = acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asms", "test_cloud_asms", acctest.Required, acctest.Create, DatabaseManagementCloudAsmDataSourceRepresentation)
25+
)
26+
27+
// issue-routing-tag: database_management/default
28+
func TestDatabaseManagementCloudAsmConfigurationResource_basic(t *testing.T) {
29+
httpreplay.SetScenario("TestDatabaseManagementCloudAsmConfigurationResource_basic")
30+
defer httpreplay.SaveScenario()
31+
32+
config := acctest.ProviderTestConfig()
33+
34+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
35+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
36+
37+
dbaasDbsystemId := utils.GetEnvSettingWithBlankDefault("dbaas_dbsystem_id")
38+
dbaasDbsystemIdVariableStr := fmt.Sprintf("variable \"dbaas_dbsystem_id\" { default = \"%s\" }\n", dbaasDbsystemId)
39+
40+
cloudAsmId := utils.GetEnvSettingWithBlankDefault("dbmgmt_cloud_asm_id")
41+
cloudAsmIdVariableStr := fmt.Sprintf("variable \"cloud_asm_id\" { default = \"%s\" }\n", cloudAsmId)
42+
43+
opcNamedCredentialId := utils.GetEnvSettingWithBlankDefault("dbmgmt_named_credential_id")
44+
opcNamedCredentialIdStr := fmt.Sprintf("variable \"opc_named_credential_id\" { default = \"%s\" }\n", opcNamedCredentialId)
45+
46+
singularDatasourceName := "data.oci_database_management_cloud_asm_configuration.test_cloud_asm_configuration"
47+
48+
acctest.SaveConfigContent("", "", "", t)
49+
50+
acctest.ResourceTest(t, nil, []resource.TestStep{
51+
// verify singular datasource
52+
{
53+
Config: config +
54+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asm_configuration", "test_cloud_asm_configuration", acctest.Required, acctest.Create, DatabaseManagementCloudAsmConfigurationSingularDataSourceRepresentation) +
55+
compartmentIdVariableStr + dbaasDbsystemIdVariableStr + cloudAsmIdVariableStr + DatabaseManagementCloudAsmConfigurationResourceConfig,
56+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
57+
resource.TestCheckResourceAttrSet(singularDatasourceName, "cloud_asm_id"),
58+
resource.TestCheckResourceAttrSet(singularDatasourceName, "init_parameters.#"),
59+
),
60+
},
61+
// verify singular datasource with named credential
62+
{
63+
Config: config +
64+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asm_configuration", "test_cloud_asm_configuration", acctest.Optional, acctest.Create, DatabaseManagementCloudAsmConfigurationSingularDataSourceRepresentation) +
65+
compartmentIdVariableStr + dbaasDbsystemIdVariableStr + cloudAsmIdVariableStr + opcNamedCredentialIdStr + DatabaseManagementCloudAsmConfigurationResourceConfig,
66+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
67+
resource.TestCheckResourceAttrSet(singularDatasourceName, "cloud_asm_id"),
68+
resource.TestCheckResourceAttrSet(singularDatasourceName, "opc_named_credential_id"),
69+
),
70+
},
71+
})
72+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
DatabaseManagementCloudAsmDiskGroupDataSourceRepresentation = map[string]interface{}{
20+
"cloud_asm_id": acctest.Representation{RepType: acctest.Required, Create: `${var.cloud_asm_id}`},
21+
"opc_named_credential_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.opc_named_credential_id}`},
22+
}
23+
24+
DatabaseManagementCloudAsmDiskGroupResourceConfig = acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asms", "test_cloud_asms", acctest.Required, acctest.Create, DatabaseManagementCloudAsmDataSourceRepresentation)
25+
)
26+
27+
// issue-routing-tag: database_management/default
28+
func TestDatabaseManagementCloudAsmDiskGroupResource_basic(t *testing.T) {
29+
httpreplay.SetScenario("TestDatabaseManagementCloudAsmDiskGroupResource_basic")
30+
defer httpreplay.SaveScenario()
31+
32+
config := acctest.ProviderTestConfig()
33+
34+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
35+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
36+
37+
dbaasDbsystemId := utils.GetEnvSettingWithBlankDefault("dbaas_dbsystem_id")
38+
dbaasDbsystemIdVariableStr := fmt.Sprintf("variable \"dbaas_dbsystem_id\" { default = \"%s\" }\n", dbaasDbsystemId)
39+
40+
cloudAsmId := utils.GetEnvSettingWithBlankDefault("dbmgmt_cloud_asm_id")
41+
cloudAsmIdVariableStr := fmt.Sprintf("variable \"cloud_asm_id\" { default = \"%s\" }\n", cloudAsmId)
42+
43+
opcNamedCredentialId := utils.GetEnvSettingWithBlankDefault("dbmgmt_named_credential_id")
44+
opcNamedCredentialIdStr := fmt.Sprintf("variable \"opc_named_credential_id\" { default = \"%s\" }\n", opcNamedCredentialId)
45+
46+
datasourceName := "data.oci_database_management_cloud_asm_disk_groups.test_cloud_asm_disk_groups"
47+
48+
acctest.SaveConfigContent("", "", "", t)
49+
50+
acctest.ResourceTest(t, nil, []resource.TestStep{
51+
// verify datasource
52+
{
53+
Config: config +
54+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asm_disk_groups", "test_cloud_asm_disk_groups", acctest.Required, acctest.Create, DatabaseManagementCloudAsmDiskGroupDataSourceRepresentation) +
55+
compartmentIdVariableStr + dbaasDbsystemIdVariableStr + cloudAsmIdVariableStr + DatabaseManagementCloudAsmDiskGroupResourceConfig,
56+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
57+
resource.TestCheckResourceAttrSet(datasourceName, "cloud_asm_id"),
58+
59+
resource.TestCheckResourceAttrSet(datasourceName, "cloud_asm_disk_group_collection.#"),
60+
resource.TestCheckResourceAttrSet(datasourceName, "cloud_asm_disk_group_collection.0.items.#"),
61+
),
62+
},
63+
// verify singular datasource with named credential
64+
{
65+
Config: config +
66+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asm_disk_groups", "test_cloud_asm_disk_groups", acctest.Optional, acctest.Create, DatabaseManagementCloudAsmDiskGroupDataSourceRepresentation) +
67+
compartmentIdVariableStr + dbaasDbsystemIdVariableStr + cloudAsmIdVariableStr + opcNamedCredentialIdStr + DatabaseManagementCloudAsmDiskGroupResourceConfig,
68+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
69+
resource.TestCheckResourceAttrSet(datasourceName, "cloud_asm_id"),
70+
resource.TestCheckResourceAttrSet(datasourceName, "opc_named_credential_id"),
71+
),
72+
},
73+
})
74+
}
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"fmt"
8+
"strconv"
9+
"testing"
10+
11+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
12+
"github.com/hashicorp/terraform-plugin-testing/terraform"
13+
14+
"github.com/oracle/terraform-provider-oci/httpreplay"
15+
"github.com/oracle/terraform-provider-oci/internal/acctest"
16+
17+
"github.com/oracle/terraform-provider-oci/internal/resourcediscovery"
18+
19+
"github.com/oracle/terraform-provider-oci/internal/utils"
20+
)
21+
22+
var (
23+
DatabaseManagementCloudAsmInstanceRequiredOnlyResource = DatabaseManagementCloudAsmInstanceResourceDependencies +
24+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_cloud_asm_instance", "test_cloud_asm_instance", acctest.Required, acctest.Create, DatabaseManagementCloudAsmInstanceRepresentation)
25+
26+
DatabaseManagementCloudAsmInstanceResourceConfig = DatabaseManagementCloudAsmInstanceResourceDependencies +
27+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_cloud_asm_instance", "test_cloud_asm_instance", acctest.Optional, acctest.Update, DatabaseManagementCloudAsmInstanceRepresentation)
28+
29+
DatabaseManagementCloudAsmInstanceSingularDataSourceRepresentation = map[string]interface{}{
30+
"cloud_asm_instance_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_cloud_asm_instances.test_cloud_asm_instances.cloud_asm_instance_collection.0.items.0.id}`},
31+
}
32+
33+
DatabaseManagementCloudAsmInstanceDataSourceRepresentation = map[string]interface{}{
34+
"cloud_asm_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_cloud_asms.test_cloud_asms.cloud_asm_collection.0.items.0.id}`},
35+
"compartment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.compartment_id}`},
36+
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`},
37+
}
38+
39+
DatabaseManagementCloudAsmInstanceRepresentation = map[string]interface{}{
40+
"cloud_asm_instance_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_cloud_asm_instances.test_cloud_asm_instances.cloud_asm_instance_collection.0.items.0.id}`},
41+
"defined_tags": acctest.Representation{RepType: acctest.Optional, Create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, Update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`},
42+
"freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
43+
"lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreDbManagementDefinedTagsChangesRepresentation},
44+
}
45+
46+
DatabaseManagementCloudAsmInstanceResourceDependencies = acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asms", "test_cloud_asms", acctest.Required, acctest.Create, DatabaseManagementCloudAsmDataSourceRepresentation) +
47+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asm_instances", "test_cloud_asm_instances", acctest.Required, acctest.Create, DatabaseManagementCloudAsmInstanceDataSourceRepresentation) +
48+
DefinedTagsDependencies
49+
)
50+
51+
// issue-routing-tag: database_management/default
52+
func TestDatabaseManagementCloudAsmInstanceResource_basic(t *testing.T) {
53+
httpreplay.SetScenario("TestDatabaseManagementCloudAsmInstanceResource_basic")
54+
defer httpreplay.SaveScenario()
55+
56+
config := acctest.ProviderTestConfig()
57+
58+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
59+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
60+
61+
resourceName := "oci_database_management_cloud_asm_instance.test_cloud_asm_instance"
62+
datasourceName := "data.oci_database_management_cloud_asm_instances.test_cloud_asm_instances"
63+
singularDatasourceName := "data.oci_database_management_cloud_asm_instance.test_cloud_asm_instance"
64+
65+
dbaasDbsystemId := utils.GetEnvSettingWithBlankDefault("dbaas_dbsystem_id")
66+
dbaasDbsystemIdVariableStr := fmt.Sprintf("variable \"dbaas_dbsystem_id\" { default = \"%s\" }\n", dbaasDbsystemId)
67+
68+
variableStr := compartmentIdVariableStr + dbaasDbsystemIdVariableStr
69+
var resId string
70+
// Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test.
71+
acctest.SaveConfigContent(config+compartmentIdVariableStr+DatabaseManagementCloudAsmInstanceResourceDependencies+
72+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_cloud_asm_instance", "test_cloud_asm_instance", acctest.Optional, acctest.Create, DatabaseManagementCloudAsmInstanceRepresentation), "databasemanagement", "cloudAsmInstance", t)
73+
74+
acctest.ResourceTest(t, nil, []resource.TestStep{
75+
// verify Create
76+
{
77+
Config: config + variableStr + DatabaseManagementCloudAsmInstanceResourceDependencies +
78+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_cloud_asm_instance", "test_cloud_asm_instance", acctest.Required, acctest.Create, DatabaseManagementCloudAsmInstanceRepresentation),
79+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
80+
resource.TestCheckResourceAttrSet(resourceName, "cloud_asm_instance_id"),
81+
82+
func(s *terraform.State) (err error) {
83+
resId, err = acctest.FromInstanceState(s, resourceName, "id")
84+
return err
85+
},
86+
),
87+
},
88+
89+
// verify Create with optionals
90+
{
91+
Config: config + variableStr + DatabaseManagementCloudAsmInstanceResourceDependencies +
92+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_cloud_asm_instance", "test_cloud_asm_instance", acctest.Optional, acctest.Create, DatabaseManagementCloudAsmInstanceRepresentation),
93+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
94+
resource.TestCheckResourceAttrSet(resourceName, "cloud_asm_id"),
95+
resource.TestCheckResourceAttrSet(resourceName, "cloud_asm_instance_id"),
96+
resource.TestCheckResourceAttrSet(resourceName, "cloud_db_system_id"),
97+
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
98+
resource.TestCheckResourceAttrSet(resourceName, "component_name"),
99+
resource.TestCheckResourceAttrSet(resourceName, "display_name"),
100+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
101+
resource.TestCheckResourceAttrSet(resourceName, "id"),
102+
resource.TestCheckResourceAttrSet(resourceName, "state"),
103+
104+
func(s *terraform.State) (err error) {
105+
resId, err = acctest.FromInstanceState(s, resourceName, "id")
106+
if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
107+
if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
108+
return errExport
109+
}
110+
}
111+
return err
112+
},
113+
),
114+
},
115+
// verify datasource
116+
{
117+
Config: config + variableStr + DatabaseManagementCloudAsmInstanceResourceDependencies +
118+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_cloud_asm_instance", "test_cloud_asm_instance", acctest.Optional, acctest.Update, DatabaseManagementCloudAsmInstanceRepresentation),
119+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
120+
resource.TestCheckResourceAttrSet(datasourceName, "cloud_asm_id"),
121+
122+
resource.TestCheckResourceAttr(datasourceName, "cloud_asm_instance_collection.#", "1"),
123+
resource.TestCheckResourceAttrSet(datasourceName, "cloud_asm_instance_collection.0.items.#"),
124+
),
125+
},
126+
// verify singular datasource
127+
{
128+
Config: config +
129+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_cloud_asm_instance", "test_cloud_asm_instance", acctest.Required, acctest.Create, DatabaseManagementCloudAsmInstanceSingularDataSourceRepresentation) +
130+
variableStr + DatabaseManagementCloudAsmInstanceResourceConfig,
131+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
132+
resource.TestCheckResourceAttrSet(singularDatasourceName, "cloud_asm_instance_id"),
133+
134+
resource.TestCheckResourceAttrSet(singularDatasourceName, "adr_home_directory"),
135+
resource.TestCheckResourceAttrSet(singularDatasourceName, "cloud_db_node_id"),
136+
resource.TestCheckResourceAttrSet(singularDatasourceName, "cloud_db_system_id"),
137+
resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
138+
resource.TestCheckResourceAttrSet(singularDatasourceName, "component_name"),
139+
resource.TestCheckResourceAttrSet(singularDatasourceName, "display_name"),
140+
resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),
141+
resource.TestCheckResourceAttrSet(singularDatasourceName, "host_name"),
142+
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
143+
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
144+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
145+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"),
146+
),
147+
},
148+
// verify resource import
149+
{
150+
Config: config + DatabaseManagementCloudAsmInstanceRequiredOnlyResource,
151+
ImportState: true,
152+
ImportStateVerify: true,
153+
ImportStateVerifyIgnore: []string{
154+
"cloud_asm_instance_id",
155+
},
156+
ResourceName: resourceName,
157+
},
158+
})
159+
}

0 commit comments

Comments
 (0)