Skip to content

Commit 11c67dc

Browse files
Shuo YangMeharwadeDivya
authored andcommitted
Added - Support for DBM Service: External Exadata Infrastructure Monitoring
1 parent 71f9457 commit 11c67dc

File tree

48 files changed

+5918
-14
lines changed

Some content is hidden

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

48 files changed

+5918
-14
lines changed

examples/databasemanagement/main.tf

Lines changed: 179 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,18 @@ resource "oci_core_network_security_group" "test_network_security_group" {
296296
vcn_id = oci_core_vcn.test_vcn.id
297297
}
298298

299+
data "oci_database_management_managed_databases" "test_managed_databases" {
300+
#Required
301+
compartment_id = var.compartment_id
302+
303+
#Optional
304+
deployment_type = var.managed_database_deployment_type
305+
external_exadata_infrastructure_id = oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id
306+
id = var.managed_database_id
307+
management_option = var.managed_database_management_option
308+
name = var.managed_database_name
309+
}
310+
299311
resource "oci_database_management_db_management_private_endpoint" "test_db_management_private_endpoint" {
300312
#Required
301313
compartment_id = var.compartment_id
@@ -791,4 +803,170 @@ data "oci_database_management_external_db_system_connectors" "test_external_db_s
791803
# #Required
792804
# external_db_system_id = oci_database_management_external_db_system.test_external_db_system.id
793805
# enable_database_management = false
794-
#}
806+
#}
807+
808+
####################### Exadata Infrastructure Monitoring #########################
809+
810+
variable "external_exadata_infrastructure_database_managements_management_license_model" {
811+
default = "LICENSE_INCLUDED"
812+
}
813+
814+
variable "enable_exadata" {
815+
default = false
816+
}
817+
818+
variable "external_exadata_infrastructure_db_system_ids" {
819+
default = []
820+
}
821+
822+
variable "external_exadata_infrastructure_display_name" {
823+
default = "exadata-Terraform-Testing"
824+
}
825+
826+
variable "external_exadata_infrastructure_license_model" {
827+
default = "LICENSE_INCLUDED"
828+
}
829+
830+
variable "external_exadata_infrastructure_storage_server_names" {
831+
default = []
832+
}
833+
834+
variable "external_exadata_storage_connector_connection_uri" {
835+
default = "https://exaInfra01celadm01.us.oracle.com/MS/RESTService/"
836+
}
837+
838+
variable "external_exadata_storage_connector_connector_name" {
839+
default = "connectorName"
840+
}
841+
842+
variable "external_exadata_storage_connector_credential_info_password" {
843+
default = "BEstrO0ng_#11"
844+
}
845+
846+
variable "external_exadata_storage_connector_credential_info_ssl_trust_store_location" {
847+
default = "sslTrustStoreLocation"
848+
}
849+
850+
variable "external_exadata_storage_connector_credential_info_ssl_trust_store_password" {
851+
default = "sslTrustStorePassword"
852+
}
853+
854+
variable "external_exadata_storage_connector_credential_info_ssl_trust_store_type" {
855+
default = "JKS"
856+
}
857+
858+
variable "external_exadata_storage_connector_credential_info_username" {
859+
default = "username"
860+
}
861+
862+
variable "external_exadata_storage_connector_display_name" {
863+
default = "exaInfra01celadm01-conn"
864+
}
865+
866+
variable "external_exadata_storage_grid_id" {
867+
default = "id"
868+
}
869+
870+
variable "external_exadata_storage_server_id" {
871+
default = "id"
872+
}
873+
874+
resource "oci_database_management_external_exadata_infrastructure" "test_external_exadata_infrastructure" {
875+
#Required
876+
compartment_id = var.compartment_id
877+
db_system_ids = var.external_exadata_infrastructure_db_system_ids
878+
display_name = var.external_exadata_infrastructure_display_name
879+
880+
#Optional
881+
discovery_key = var.external_exadata_infrastructure_discovery_key
882+
license_model = var.external_exadata_infrastructure_license_model
883+
storage_server_names = var.external_exadata_infrastructure_storage_server_names
884+
}
885+
886+
data "oci_database_management_external_exadata_infrastructures" "test_external_exadata_infrastructures" {
887+
#Required
888+
compartment_id = var.compartment_id
889+
890+
#Optional
891+
display_name = var.external_exadata_infrastructure_display_name
892+
}
893+
894+
data "oci_database_management_external_exadata_infrastructure" "test_external_exadata_infrastructure" {
895+
#Required
896+
external_exadata_infrastructure_id = oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id
897+
}
898+
899+
resource "oci_database_management_external_exadata_storage_connector" "test_external_exadata_storage_connector" {
900+
#Required
901+
agent_id = oci_cloud_bridge_agent.test_agent.id
902+
connection_uri = var.external_exadata_storage_connector_connection_uri
903+
connector_name = var.external_exadata_storage_connector_connector_name
904+
credential_info {
905+
#Required
906+
password = var.external_exadata_storage_connector_credential_info_password
907+
username = var.external_exadata_storage_connector_credential_info_username
908+
909+
#Optional
910+
ssl_trust_store_location = var.external_exadata_storage_connector_credential_info_ssl_trust_store_location
911+
ssl_trust_store_password = var.external_exadata_storage_connector_credential_info_ssl_trust_store_password
912+
ssl_trust_store_type = var.external_exadata_storage_connector_credential_info_ssl_trust_store_type
913+
}
914+
storage_server_id = oci_database_management_storage_server.test_storage_server.id
915+
}
916+
917+
data "oci_database_management_external_exadata_storage_connectors" "test_external_exadata_storage_connectors" {
918+
#Required
919+
compartment_id = var.compartment_id
920+
external_exadata_infrastructure_id = oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id
921+
922+
#Optional
923+
display_name = var.external_exadata_storage_connector_display_name
924+
}
925+
926+
data "oci_database_management_external_exadata_storage_connector" "test_external_exadata_storage_connector" {
927+
#Required
928+
external_exadata_storage_connector_id = oci_database_management_external_exadata_storage_connector.test_external_exadata_storage_connector.id
929+
}
930+
931+
data "oci_database_management_external_exadata_storage_grid" "test_external_exadata_storage_grid" {
932+
#Required
933+
external_exadata_storage_grid_id = var.external_exadata_storage_grid_id
934+
}
935+
936+
data "oci_database_management_external_exadata_storage_server_iorm_plan" "test_external_exadata_storage_server_iorm_plan" {
937+
#Required
938+
external_exadata_storage_server_id = var.external_exadata_storage_server_id
939+
}
940+
941+
data "oci_database_management_external_exadata_storage_server_open_alert_history" "test_external_exadata_storage_server_open_alert_history" {
942+
#Required
943+
external_exadata_storage_server_id = var.external_exadata_storage_server_id
944+
}
945+
946+
data "oci_database_management_external_exadata_storage_server_top_sql_cpu_activity" "test_external_exadata_storage_server_top_sql_cpu_activity" {
947+
#Required
948+
external_exadata_storage_server_id = var.external_exadata_storage_server_id
949+
}
950+
951+
data "oci_database_management_external_exadata_storage_server" "test_external_exadata_storage_server" {
952+
#Required
953+
external_exadata_storage_server_id = var.external_exadata_storage_server_id
954+
}
955+
956+
data "oci_database_management_external_exadata_storage_servers" "test_external_exadata_storage_servers" {
957+
#Required
958+
compartment_id = var.compartment_id
959+
external_exadata_infrastructure_id = oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id
960+
961+
#Optional
962+
display_name = var.external_exadata_storage_server_display_name
963+
}
964+
965+
resource "oci_database_management_external_exadata_infrastructure_exadata_management" "test_external_exadata_infrastructure_exadata_management" {
966+
#Required
967+
external_exadata_infrastructure_id = oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id
968+
enable_exadata = var.enable_exadata
969+
970+
#Optional
971+
license_model = var.external_exadata_infrastructure_database_managements_management_license_model
972+
}

internal/integrationtest/database_management_external_db_node_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ var (
3737
}
3838

3939
DatabaseManagementExternalDbNodeRepresentation = map[string]interface{}{
40-
"external_db_node_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_external_db_nodes.test_external_db_nodes.external_db_node_collection.0.items.0.id}`},
41-
"external_connector_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_external_db_nodes.test_external_db_nodes.external_db_node_collection.0.items.0.external_connector_id}`},
40+
"external_db_node_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_external_db_nodes.test_external_db_nodes.external_db_node_collection.0.items.1.id}`},
41+
"external_connector_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_external_db_nodes.test_external_db_nodes.external_db_node_collection.0.items.1.external_connector_id}`},
4242
}
4343

4444
DatabaseManagementExternalDbNodeResourceDependencies = acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_external_db_nodes", "test_external_db_nodes", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementExternalDbNodeDataSourceRepresentation)
@@ -103,6 +103,7 @@ func TestDatabaseManagementExternalDbNodeResource_basic(t *testing.T) {
103103
resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
104104
resource.TestCheckResourceAttrSet(singularDatasourceName, "component_name"),
105105
resource.TestCheckResourceAttrSet(singularDatasourceName, "display_name"),
106+
resource.TestCheckResourceAttrSet(singularDatasourceName, "domain_name"),
106107
resource.TestCheckResourceAttrSet(singularDatasourceName, "host_name"),
107108
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
108109
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
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+
DatabaseManagementExternalExadataInfrastructureExadataManagementRepresentation = map[string]interface{}{
20+
"external_exadata_infrastructure_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id}`},
21+
"license_model": acctest.Representation{RepType: acctest.Required, Create: `LICENSE_INCLUDED`},
22+
"enable_exadata": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`},
23+
}
24+
25+
ExternalExadataInfrastructureExadataManagementResourceDependencies = acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_exadata_infrastructure", "test_external_exadata_infrastructure", acctest.Required, acctest.Create, DatabaseManagementExternalExadataInfrastructureRepresentation)
26+
)
27+
28+
// issue-routing-tag: database_management/default
29+
func TestDatabaseManagementExternalExadataInfrastructureExadataManagementResource_basic(t *testing.T) {
30+
httpreplay.SetScenario("TestDatabaseManagementExternalExadataInfrastructureExadataManagementResource_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+
dbSystemId := utils.GetEnvSettingWithBlankDefault("db_system_id")
39+
dbSystemIdStr := fmt.Sprintf("variable \"db_system_id\" { default = \"%s\" }\n", dbSystemId)
40+
41+
resourceName := "oci_database_management_external_exadata_infrastructure_exadata_management.test_external_exadata_infrastructure_exadata_management"
42+
parentResourceName := "oci_database_management_external_exadata_infrastructure_exadata_management.test_external_exadata_infrastructure_exadata_management"
43+
// Save TF content to Create resource with only required properties. This has to be exactly the same as the config part in the create step in the test.
44+
acctest.SaveConfigContent(config+compartmentIdVariableStr+ExternalExadataInfrastructureExadataManagementResourceDependencies+
45+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_exadata_infrastructure_exadata_management", "test_external_exadata_infrastructure_exadata_management", acctest.Required, acctest.Create, DatabaseManagementExternalExadataInfrastructureExadataManagementRepresentation), "databasemanagement", "externalExadataInfrastructureExadataManagement", t)
46+
47+
acctest.ResourceTest(t, nil, []resource.TestStep{
48+
// create with disable
49+
{
50+
Config: config + dbSystemIdStr + compartmentIdVariableStr + ExternalExadataInfrastructureExadataManagementResourceDependencies +
51+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_exadata_infrastructure_exadata_management", "test_external_exadata_infrastructure_exadata_management", acctest.Required, acctest.Create, DatabaseManagementExternalExadataInfrastructureExadataManagementRepresentation),
52+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
53+
resource.TestCheckResourceAttrSet(resourceName, "external_exadata_infrastructure_id"),
54+
resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"),
55+
),
56+
},
57+
// verify enable
58+
{
59+
Config: config + dbSystemIdStr + compartmentIdVariableStr + ExternalExadataInfrastructureExadataManagementResourceDependencies +
60+
acctest.GenerateResourceFromRepresentationMap("oci_database_management_external_exadata_infrastructure_exadata_management", "test_external_exadata_infrastructure_exadata_management", acctest.Required, acctest.Update, DatabaseManagementExternalExadataInfrastructureExadataManagementRepresentation),
61+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
62+
resource.TestCheckResourceAttr(parentResourceName, "enable_exadata", "true"),
63+
),
64+
},
65+
})
66+
}

0 commit comments

Comments
 (0)