Skip to content

Commit 32b76c9

Browse files
Veeranjaneyulu Goliravinitp
authored andcommitted
Added - Support for DBM : Support MySQL Database Service
1 parent f7a74c7 commit 32b76c9

14 files changed

+1463
-5
lines changed

examples/databasemanagement/main.tf

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,10 +1067,37 @@ data "oci_database_management_external_exadata_storage_servers" "test_external_e
10671067
}
10681068

10691069
resource "oci_database_management_external_exadata_infrastructure_exadata_management" "test_external_exadata_infrastructure_exadata_management" {
1070-
#Required
1071-
external_exadata_infrastructure_id = oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id
1072-
enable_exadata = var.enable_exadata
1070+
#Required
1071+
external_exadata_infrastructure_id = oci_database_management_external_exadata_infrastructure.test_external_exadata_infrastructure.id
1072+
enable_exadata = var.enable_exadata
10731073

1074-
#Optional
1075-
license_model = var.external_exadata_infrastructure_database_managements_management_license_model
1074+
#Optional
1075+
license_model = var.external_exadata_infrastructure_database_managements_management_license_model
1076+
}
1077+
1078+
# List managed MySQL database resources in a compartment
1079+
data "oci_database_management_managed_my_sql_databases" "test_managed_my_sql_databases" {
1080+
#Required
1081+
compartment_id = var.compartment_id
1082+
}
1083+
1084+
# Get managed MySQL database resource
1085+
data "oci_database_management_managed_my_sql_database" "test_managed_my_sql_database" {
1086+
#Required
1087+
managed_my_sql_database_id = data.oci_database_management_managed_my_sql_databases.test_managed_my_sql_databases.managed_my_sql_database_collection.0.items.0.id
1088+
}
1089+
1090+
# Get configuration data for a managed MySQL database resource
1091+
data "oci_database_management_managed_my_sql_database_configuration_data" "test_managed_my_sql_database_configuration_data" {
1092+
#Required
1093+
managed_my_sql_database_id = data.oci_database_management_managed_my_sql_databases.test_managed_my_sql_databases.managed_my_sql_database_collection.0.items.0.id
1094+
}
1095+
1096+
# Get SQL data for a managed MySQL database resource
1097+
data "oci_database_management_managed_my_sql_database_sql_data" "test_managed_my_sql_database_sql_data" {
1098+
#Required
1099+
managed_my_sql_database_id = data.oci_database_management_managed_my_sql_databases.test_managed_my_sql_databases.managed_my_sql_database_collection.0.items.0.id
1100+
filter_column = "COUNT_STAR"
1101+
start_time = replace(timeadd(timestamp(), "-2h"), "/Z/", ".000Z")
1102+
end_time = replace(timestamp(), "/Z/", ".000Z")
10761103
}

internal/client/database_management_clients.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
func init() {
1313
RegisterOracleClient("oci_database_management.DbManagementClient", &OracleClient{InitClientFn: initDatabasemanagementDbManagementClient})
14+
RegisterOracleClient("oci_database_management.ManagedMySqlDatabasesClient", &OracleClient{InitClientFn: initDatabasemanagementManagedMySqlDatabasesClient})
1415
RegisterOracleClient("oci_database_management.DiagnosabilityClient", &OracleClient{InitClientFn: initDatabasemanagementDiagnosabilityClient})
1516
RegisterOracleClient("oci_database_management.SqlTuningClient", &OracleClient{InitClientFn: initDatabasemanagementSqlTuningClient})
1617
}
@@ -55,6 +56,26 @@ func (m *OracleClients) DiagnosabilityClient() *oci_database_management.Diagnosa
5556
return m.GetClient("oci_database_management.DiagnosabilityClient").(*oci_database_management.DiagnosabilityClient)
5657
}
5758

59+
func initDatabasemanagementManagedMySqlDatabasesClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
60+
client, err := oci_database_management.NewManagedMySqlDatabasesClientWithConfigurationProvider(configProvider)
61+
if err != nil {
62+
return nil, err
63+
}
64+
err = configureClient(&client.BaseClient)
65+
if err != nil {
66+
return nil, err
67+
}
68+
69+
if serviceClientOverrides.HostUrlOverride != "" {
70+
client.Host = serviceClientOverrides.HostUrlOverride
71+
}
72+
return &client, nil
73+
}
74+
75+
func (m *OracleClients) ManagedMySqlDatabasesClient() *oci_database_management.ManagedMySqlDatabasesClient {
76+
return m.GetClient("oci_database_management.ManagedMySqlDatabasesClient").(*oci_database_management.ManagedMySqlDatabasesClient)
77+
}
78+
5879
func initDatabasemanagementSqlTuningClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
5980
client, err := oci_database_management.NewSqlTuningClientWithConfigurationProvider(configProvider)
6081
if err != nil {
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
DatabaseManagementDatabaseManagementManagedMySqlDatabaseConfigurationDataDataSourceRepresentation = map[string]interface{}{
20+
"managed_my_sql_database_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_managed_my_sql_databases.test_managed_my_sql_databases.managed_my_sql_database_collection.0.items.0.id}`},
21+
}
22+
23+
DatabaseManagementManagedMySqlDatabaseConfigurationDataResourceConfig = ""
24+
)
25+
26+
// issue-routing-tag: database_management/default
27+
func TestDatabaseManagementManagedMySqlDatabaseConfigurationDataResource_basic(t *testing.T) {
28+
httpreplay.SetScenario("TestDatabaseManagementManagedMySqlDatabaseConfigurationDataResource_basic")
29+
defer httpreplay.SaveScenario()
30+
31+
config := acctest.ProviderTestConfig()
32+
33+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
34+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
35+
36+
datasourceName := "data.oci_database_management_managed_my_sql_database_configuration_data.test_managed_my_sql_database_configuration_data"
37+
38+
acctest.SaveConfigContent("", "", "", t)
39+
40+
acctest.ResourceTest(t, nil, []resource.TestStep{
41+
// verify datasource
42+
{
43+
Config: config +
44+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_managed_my_sql_databases", "test_managed_my_sql_databases", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedMySqlDatabaseDataSourceRepresentation) +
45+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_managed_my_sql_database_configuration_data", "test_managed_my_sql_database_configuration_data", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedMySqlDatabaseConfigurationDataDataSourceRepresentation) +
46+
compartmentIdVariableStr + DatabaseManagementManagedMySqlDatabaseConfigurationDataResourceConfig,
47+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
48+
resource.TestCheckResourceAttrSet(datasourceName, "managed_my_sql_database_id"),
49+
50+
resource.TestCheckResourceAttrSet(datasourceName, "my_sql_configuration_data_collection.#"),
51+
resource.TestCheckResourceAttrSet(datasourceName, "my_sql_configuration_data_collection.0.items.#"),
52+
),
53+
},
54+
})
55+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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+
DatabaseManagementDatabaseManagementManagedMySqlDatabaseSqlDataDataSourceRepresentation = map[string]interface{}{
20+
"end_time": acctest.Representation{RepType: acctest.Required, Create: `${replace(timestamp(), "/Z/", ".000Z")}`},
21+
"managed_my_sql_database_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_managed_my_sql_databases.test_managed_my_sql_databases.managed_my_sql_database_collection.0.items.0.id}`},
22+
"start_time": acctest.Representation{RepType: acctest.Required, Create: `${replace(timeadd(timestamp(), "-2h"), "/Z/", ".000Z")}`},
23+
"filter_column": acctest.Representation{RepType: acctest.Required, Create: `COUNT_STAR`},
24+
}
25+
26+
DatabaseManagementManagedMySqlDatabaseSqlDataResourceConfig = ""
27+
)
28+
29+
// issue-routing-tag: database_management/default
30+
func TestDatabaseManagementManagedMySqlDatabaseSqlDataResource_basic(t *testing.T) {
31+
httpreplay.SetScenario("TestDatabaseManagementManagedMySqlDatabaseSqlDataResource_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+
datasourceName := "data.oci_database_management_managed_my_sql_database_sql_data.test_managed_my_sql_database_sql_data"
40+
41+
acctest.SaveConfigContent("", "", "", t)
42+
43+
acctest.ResourceTest(t, nil, []resource.TestStep{
44+
// verify datasource
45+
{
46+
Config: config +
47+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_managed_my_sql_databases", "test_managed_my_sql_databases", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedMySqlDatabaseDataSourceRepresentation) +
48+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_managed_my_sql_database_sql_data", "test_managed_my_sql_database_sql_data", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedMySqlDatabaseSqlDataDataSourceRepresentation) +
49+
compartmentIdVariableStr + DatabaseManagementManagedMySqlDatabaseSqlDataResourceConfig,
50+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
51+
resource.TestCheckResourceAttr(datasourceName, "filter_column", "COUNT_STAR"),
52+
resource.TestCheckResourceAttrSet(datasourceName, "managed_my_sql_database_id"),
53+
54+
resource.TestCheckResourceAttrSet(datasourceName, "my_sql_data_collection.#"),
55+
resource.TestCheckResourceAttrSet(datasourceName, "my_sql_data_collection.0.items.#"),
56+
),
57+
// Non empty plan expected because the data source input relies on interpolation syntax
58+
ExpectNonEmptyPlan: true,
59+
},
60+
})
61+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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+
DatabaseManagementDatabaseManagementManagedMySqlDatabaseSingularDataSourceRepresentation = map[string]interface{}{
20+
"managed_my_sql_database_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_management_managed_my_sql_databases.test_managed_my_sql_databases.managed_my_sql_database_collection.0.items.0.id}`},
21+
}
22+
23+
DatabaseManagementDatabaseManagementManagedMySqlDatabaseDataSourceRepresentation = map[string]interface{}{
24+
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
25+
}
26+
27+
DatabaseManagementManagedMySqlDatabaseResourceConfig = ""
28+
)
29+
30+
// issue-routing-tag: database_management/default
31+
func TestDatabaseManagementManagedMySqlDatabaseResource_basic(t *testing.T) {
32+
httpreplay.SetScenario("TestDatabaseManagementManagedMySqlDatabaseResource_basic")
33+
defer httpreplay.SaveScenario()
34+
35+
config := acctest.ProviderTestConfig()
36+
37+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
38+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
39+
40+
datasourceName := "data.oci_database_management_managed_my_sql_databases.test_managed_my_sql_databases"
41+
singularDatasourceName := "data.oci_database_management_managed_my_sql_database.test_managed_my_sql_database"
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_my_sql_databases", "test_managed_my_sql_databases", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedMySqlDatabaseDataSourceRepresentation) +
50+
compartmentIdVariableStr + DatabaseManagementManagedMySqlDatabaseResourceConfig,
51+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
52+
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
53+
54+
resource.TestCheckResourceAttrSet(datasourceName, "managed_my_sql_database_collection.#"),
55+
),
56+
},
57+
// verify singular datasource
58+
{
59+
Config: config +
60+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_managed_my_sql_databases", "test_managed_my_sql_databases", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedMySqlDatabaseDataSourceRepresentation) +
61+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_management_managed_my_sql_database", "test_managed_my_sql_database", acctest.Required, acctest.Create, DatabaseManagementDatabaseManagementManagedMySqlDatabaseSingularDataSourceRepresentation) +
62+
compartmentIdVariableStr + DatabaseManagementManagedMySqlDatabaseResourceConfig,
63+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
64+
resource.TestCheckResourceAttrSet(singularDatasourceName, "managed_my_sql_database_id"),
65+
66+
resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
67+
resource.TestCheckResourceAttrSet(singularDatasourceName, "db_name"),
68+
resource.TestCheckResourceAttrSet(singularDatasourceName, "db_version"),
69+
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
70+
resource.TestCheckResourceAttrSet(singularDatasourceName, "name"),
71+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
72+
),
73+
},
74+
})
75+
}

0 commit comments

Comments
 (0)