Skip to content

Commit 01f7632

Browse files
Terraform Team Automationvsin12
authored andcommitted
Added - Support for DBM: SQL Plan Management Support
1 parent 33d0bc9 commit 01f7632

File tree

26 files changed

+2494
-1
lines changed

26 files changed

+2494
-1
lines changed

examples/databasemanagement/main.tf

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,101 @@ data "oci_database_management_external_db_system_connectors" "test_external_db_s
805805
# enable_database_management = false
806806
#}
807807

808+
# Enable Stack Monitoring for ExternalDbSystem
809+
resource "oci_database_management_external_db_system_stack_monitorings_management" "test_external_db_system_stack_monitoring_management" {
810+
#Required
811+
external_db_system_id = oci_database_management_external_db_system.test_external_db_system.id
812+
enable_stack_monitoring = true
813+
is_enabled = true
814+
}
815+
816+
## Disable Stack Monitoring for ExternalDbSystem
817+
#resource "oci_database_management_external_db_system_stack_monitorings_management" "test_external_db_system_stack_monitoring_management" {
818+
# #Required
819+
# external_db_system_id = oci_database_management_external_db_system.test_external_db_system.id
820+
# enable_stack_monitoring = false
821+
#}
822+
823+
####################### SQL Plan Management #########################
824+
variable "managed_database_sql_plan_baseline_is_accepted" {
825+
default = false
826+
}
827+
828+
variable "managed_database_sql_plan_baseline_is_adaptive" {
829+
default = false
830+
}
831+
832+
variable "managed_database_sql_plan_baseline_is_enabled" {
833+
default = true
834+
}
835+
836+
variable "managed_database_sql_plan_baseline_is_fixed" {
837+
default = false
838+
}
839+
840+
variable "managed_database_sql_plan_baseline_is_reproduced" {
841+
default = false
842+
}
843+
844+
variable "managed_database_sql_plan_baseline_origin" {
845+
default = "AUTO_CAPTURE"
846+
}
847+
848+
variable "managed_database_sql_plan_baseline_plan_name" {
849+
default = "planName"
850+
}
851+
852+
variable "managed_database_sql_plan_baseline_sql_handle" {
853+
default = "sqlHandle"
854+
}
855+
856+
variable "managed_database_sql_plan_baseline_sql_text" {
857+
default = "sqlText"
858+
}
859+
860+
variable "managed_database_sql_plan_baseline_job_name" {
861+
default = "TestJobName"
862+
}
863+
864+
# Get SQL Plan Baseline configuration details for the managed database
865+
data "oci_database_management_managed_database_sql_plan_baseline_configuration" "test_managed_database_sql_plan_baseline_configuration" {
866+
#Required
867+
managed_database_id = var.managed_database_id
868+
}
869+
870+
# List SQL Plan Baselines
871+
data "oci_database_management_managed_database_sql_plan_baselines" "test_managed_database_sql_plan_baselines" {
872+
#Required
873+
managed_database_id = var.managed_database_id
874+
875+
#Optional
876+
origin = var.managed_database_sql_plan_baseline_origin
877+
plan_name = var.managed_database_sql_plan_baseline_plan_name
878+
is_enabled = var.managed_database_sql_plan_baseline_is_enabled
879+
is_accepted = var.managed_database_sql_plan_baseline_is_accepted
880+
is_adaptive = var.managed_database_sql_plan_baseline_is_adaptive
881+
is_fixed = var.managed_database_sql_plan_baseline_is_fixed
882+
is_reproduced = var.managed_database_sql_plan_baseline_is_reproduced
883+
sql_handle = var.managed_database_sql_plan_baseline_sql_handle
884+
sql_text = var.managed_database_sql_plan_baseline_sql_text
885+
}
886+
887+
data "oci_database_management_managed_database_sql_plan_baseline_jobs" "test_managed_database_sql_plan_baseline_jobs" {
888+
#Required
889+
managed_database_id = var.managed_database_id
890+
891+
#Optional
892+
name = var.managed_database_sql_plan_baseline_job_name
893+
}
894+
895+
data "oci_database_management_managed_database_cursor_cache_statements" "test_managed_database_cursor_cache_statements" {
896+
#Required
897+
managed_database_id = var.managed_database_id
898+
899+
#Optional
900+
sql_text = var.managed_database_sql_plan_baseline_sql_text
901+
}
902+
808903
####################### Exadata Infrastructure Monitoring #########################
809904

810905
variable "external_exadata_infrastructure_database_managements_management_license_model" {
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Copyright (c) 2017, 2023, 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-sdk/v2/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+
DatabaseManagementExternalDbSystemStackMonitoringsManagementRepresentation = map[string]interface{}{
20+
"external_db_system_id": acctest.Representation{RepType: acctest.Required, Create: `${var.external_dbsystem_id}`},
21+
"is_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`},
22+
"enable_stack_monitoring": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`},
23+
"metadata": acctest.Representation{RepType: acctest.Optional, Create: `{ }`},
24+
}
25+
26+
ExternalDbSystemStackMonitoringsManagementResourceDependencies = ""
27+
)
28+
29+
// issue-routing-tag: database_management/default
30+
func TestDatabaseManagementExternalDbSystemStackMonitoringsManagementResource_basic(t *testing.T) {
31+
httpreplay.SetScenario("TestDatabaseManagementExternalDbSystemStackMonitoringsManagementResource_basic")
32+
defer httpreplay.SaveScenario()
33+
34+
config := acctest.ProviderTestConfig()
35+
36+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
37+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
38+
39+
dbSystemId := utils.GetEnvSettingWithBlankDefault("external_dbsystem_id")
40+
dbSystemIdVariableStr := fmt.Sprintf("variable \"external_dbsystem_id\" { default = \"%s\" }\n", dbSystemId)
41+
42+
resourceName := "oci_database_management_external_db_system_stack_monitorings_management.test_external_db_system_stack_monitorings_management"
43+
parentResourceName := "oci_database_management_external_db_system_stack_monitorings_management.test_external_db_system_stack_monitorings_management"
44+
// 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.
45+
acctest.SaveConfigContent(config+compartmentIdVariableStr+ExternalDbSystemStackMonitoringsManagementResourceDependencies+
46+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_stack_monitorings_management", "test_external_db_system_stack_monitorings_management", acctest.Optional, acctest.Create, DatabaseManagementExternalDbSystemStackMonitoringsManagementRepresentation), "databasemanagement", "externalDbSystemStackMonitoringsManagement", t)
47+
48+
acctest.ResourceTest(t, nil, []resource.TestStep{
49+
// create with enable
50+
{
51+
Config: config + compartmentIdVariableStr + dbSystemIdVariableStr + ExternalDbSystemStackMonitoringsManagementResourceDependencies +
52+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_stack_monitorings_management", "test_external_db_system_stack_monitorings_management", acctest.Required, acctest.Create, DatabaseManagementExternalDbSystemStackMonitoringsManagementRepresentation),
53+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
54+
resource.TestCheckResourceAttrSet(resourceName, "external_db_system_id"),
55+
),
56+
},
57+
// verify enable
58+
{
59+
Config: config + compartmentIdVariableStr + dbSystemIdVariableStr + ExternalDbSystemStackMonitoringsManagementResourceDependencies +
60+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_stack_monitorings_management", "test_external_db_system_stack_monitorings_management", acctest.Required, acctest.Create, DatabaseManagementExternalDbSystemStackMonitoringsManagementRepresentation),
61+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
62+
resource.TestCheckResourceAttr(parentResourceName, "enable_stack_monitoring", "true"),
63+
),
64+
},
65+
// delete before next Create
66+
{
67+
Config: config + compartmentIdVariableStr + dbSystemIdVariableStr + ExternalDbSystemStackMonitoringsManagementResourceDependencies,
68+
},
69+
// create with enable and optional fields
70+
{
71+
Config: config + compartmentIdVariableStr + dbSystemIdVariableStr + ExternalDbSystemStackMonitoringsManagementResourceDependencies +
72+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_stack_monitorings_management", "test_external_db_system_stack_monitorings_management", acctest.Optional, acctest.Create, DatabaseManagementExternalDbSystemStackMonitoringsManagementRepresentation),
73+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
74+
resource.TestCheckResourceAttrSet(resourceName, "external_db_system_id"),
75+
),
76+
},
77+
// update to disable
78+
{
79+
Config: config + compartmentIdVariableStr + dbSystemIdVariableStr + ExternalDbSystemStackMonitoringsManagementResourceDependencies +
80+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_stack_monitorings_management", "test_external_db_system_stack_monitorings_management", acctest.Optional, acctest.Update, DatabaseManagementExternalDbSystemStackMonitoringsManagementRepresentation),
81+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
82+
resource.TestCheckResourceAttrSet(resourceName, "external_db_system_id"),
83+
),
84+
},
85+
// verify disable
86+
{
87+
Config: config + compartmentIdVariableStr + dbSystemIdVariableStr + ExternalDbSystemStackMonitoringsManagementResourceDependencies +
88+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_stack_monitorings_management", "test_external_db_system_stack_monitorings_management", acctest.Optional, acctest.Update, DatabaseManagementExternalDbSystemStackMonitoringsManagementRepresentation),
89+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
90+
resource.TestCheckResourceAttr(parentResourceName, "enable_stack_monitoring", "false"),
91+
),
92+
},
93+
})
94+
}

internal/integrationtest/database_management_external_db_system_test.go

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,18 +93,27 @@ var (
9393
"enable_database_management": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`},
9494
}
9595
ignoreLicenseModelChangesRepresentation = map[string]interface{}{
96-
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`database_management_config`}},
96+
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`database_management_config`, `stack_monitoring_config`}},
9797
}
9898
DatabaseManagementExternalDbSystemRepresentation = map[string]interface{}{
9999
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
100100
"db_system_discovery_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_management_external_db_system_discovery.test_external_db_system_discovery.id}`},
101101
"database_management_config": acctest.RepresentationGroup{RepType: acctest.Required, Group: DatabaseManagementExternalDbSystemDatabaseManagementConfigRepresentation},
102+
"stack_monitoring_config": acctest.RepresentationGroup{RepType: acctest.Required, Group: DatabaseManagementExternalDbSystemStackMonitoringConfigRepresentation},
102103
"display_name": acctest.Representation{RepType: acctest.Required, Create: `EXAMPLE-displayName-Value`, Update: `displayName2`},
103104
"lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreLicenseModelChangesRepresentation},
104105
}
105106
DatabaseManagementExternalDbSystemDatabaseManagementConfigRepresentation = map[string]interface{}{
106107
"license_model": acctest.Representation{RepType: acctest.Required, Create: `LICENSE_INCLUDED`},
107108
}
109+
DatabaseManagementExternalDbSystemStackMonitoringConfigRepresentation = map[string]interface{}{
110+
"is_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`},
111+
}
112+
DatabaseManagementExternalDbSystemDisableStackMonitoringRepresentation = map[string]interface{}{
113+
"external_db_system_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_management_external_db_system.test_external_db_system.id}`},
114+
"is_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`},
115+
"enable_stack_monitoring": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`},
116+
}
108117

109118
DatabaseManagementExternalDbSystemResourceDependencies = ""
110119
)
@@ -184,6 +193,8 @@ func TestDatabaseManagementExternalDbSystemResource_basic(t *testing.T) {
184193
resource.TestCheckResourceAttrSet(resourceName, "db_system_discovery_id"),
185194
resource.TestCheckResourceAttr(resourceName, "display_name", "EXAMPLE-displayName-Value"),
186195
resource.TestCheckResourceAttrSet(resourceName, "id"),
196+
resource.TestCheckResourceAttr(resourceName, "stack_monitoring_config.#", "1"),
197+
resource.TestCheckResourceAttr(resourceName, "stack_monitoring_config.0.is_enabled", "true"),
187198
resource.TestCheckResourceAttrSet(resourceName, "state"),
188199
resource.TestCheckResourceAttrSet(resourceName, "time_created"),
189200
resource.TestCheckResourceAttrSet(resourceName, "time_updated"),
@@ -210,6 +221,8 @@ func TestDatabaseManagementExternalDbSystemResource_basic(t *testing.T) {
210221
resource.TestCheckResourceAttrSet(resourceName, "db_system_discovery_id"),
211222
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
212223
resource.TestCheckResourceAttrSet(resourceName, "id"),
224+
resource.TestCheckResourceAttr(resourceName, "stack_monitoring_config.#", "1"),
225+
resource.TestCheckResourceAttr(resourceName, "stack_monitoring_config.0.is_enabled", "true"),
213226
resource.TestCheckResourceAttrSet(resourceName, "state"),
214227
resource.TestCheckResourceAttrSet(resourceName, "time_created"),
215228
resource.TestCheckResourceAttrSet(resourceName, "time_updated"),
@@ -252,6 +265,8 @@ func TestDatabaseManagementExternalDbSystemResource_basic(t *testing.T) {
252265
resource.TestCheckResourceAttrSet(singularDatasourceName, "home_directory"),
253266
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
254267
resource.TestCheckResourceAttrSet(singularDatasourceName, "is_cluster"),
268+
resource.TestCheckResourceAttr(singularDatasourceName, "stack_monitoring_config.#", "1"),
269+
resource.TestCheckResourceAttr(singularDatasourceName, "stack_monitoring_config.0.is_enabled", "true"),
255270
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
256271
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
257272
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"),
@@ -273,6 +288,23 @@ func TestDatabaseManagementExternalDbSystemResource_basic(t *testing.T) {
273288
},
274289
),
275290
},
291+
// disable Stack Monitoring
292+
{
293+
Config: config + compartmentIdVariableStr + agentIdVariableStr + dbHostNameVariableStr + dbPortVariableStr + dbServiceNameVariableStr + dbCredentialNameVariableStr + dbUserNameVariableStr + dbPasswordSecretIdVariableStr + DatabaseManagementExternalDbSystemResourceDependencies +
294+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_discovery", "test_external_db_system_discovery", acctest.Required, acctest.Create, DatabaseManagementExternalDbSystemDiscoveryPatchOperationsRepresentation) +
295+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system", "test_external_db_system", acctest.Required, acctest.Create, DatabaseManagementExternalDbSystemRepresentation) +
296+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_database_managements_management", "test_external_db_system_database_managements_management", acctest.Optional, acctest.Update, DatabaseManagementExternalDbSystemDisableDatabaseManagementRepresentation) +
297+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_db_system_stack_monitorings_management", "test_external_db_system_stack_monitoring_management", acctest.Optional, acctest.Update, DatabaseManagementExternalDbSystemDisableStackMonitoringRepresentation),
298+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
299+
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
300+
resource.TestCheckResourceAttrSet(resourceName, "db_system_discovery_id"),
301+
302+
func(s *terraform.State) (err error) {
303+
resId, err = acctest.FromInstanceState(s, resourceName, "id")
304+
return err
305+
},
306+
),
307+
},
276308

277309
// verify resource import
278310
{
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
// Copyright (c) 2017, 2023, 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-sdk/v2/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+
DatabaseManagementDatabaseManagementManagedDatabaseCursorCacheStatementDataSourceRepresentation = map[string]interface{}{
20+
"managed_database_id": acctest.Representation{RepType: acctest.Required, Create: `${var.test_managed_database_id}`},
21+
"sql_text": acctest.Representation{RepType: acctest.Optional, Create: `sqlText`},
22+
"limit": acctest.Representation{RepType: acctest.Required, Create: `1000`},
23+
}
24+
25+
DatabaseManagementManagedDatabaseCursorCacheStatementResourceConfig = ""
26+
)
27+
28+
// issue-routing-tag: database_management/default
29+
func TestDatabaseManagementManagedDatabaseCursorCacheStatementResource_basic(t *testing.T) {
30+
httpreplay.SetScenario("TestDatabaseManagementManagedDatabaseCursorCacheStatementResource_basic")
31+
defer httpreplay.SaveScenario()
32+
33+
config := acctest.ProviderTestConfig()
34+
35+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
36+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
37+
38+
managedDbId := utils.GetEnvSettingWithBlankDefault("test_managed_database_id")
39+
managedDbIdVariableStr := fmt.Sprintf("variable \"test_managed_database_id\" { default = \"%s\" }\n", managedDbId)
40+
41+
datasourceName := "data.oci_database_management_managed_database_cursor_cache_statements.test_managed_database_cursor_cache_statements"
42+
43+
acctest.SaveConfigContent("", "", "", t)
44+
45+
acctest.ResourceTest(t, nil, []resource.TestStep{
46+
// verify datasource
47+
{
48+
Config: config +
49+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_managed_database_cursor_cache_statements", "test_managed_database_cursor_cache_statements", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedDatabaseCursorCacheStatementDataSourceRepresentation) +
50+
compartmentIdVariableStr + managedDbIdVariableStr + DatabaseManagementManagedDatabaseCursorCacheStatementResourceConfig,
51+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
52+
resource.TestCheckResourceAttrSet(datasourceName, "managed_database_id"),
53+
54+
resource.TestCheckResourceAttrSet(datasourceName, "cursor_cache_statement_collection.#"),
55+
resource.TestCheckResourceAttrSet(datasourceName, "cursor_cache_statement_collection.0.items.#"),
56+
),
57+
},
58+
})
59+
}

0 commit comments

Comments
 (0)