Skip to content

Commit b57ed42

Browse files
yj115Nishtha Goel
authored andcommitted
Added - Support for ExaDB-C@C Resize of Local Files Systems (non /u02)
1 parent aea3982 commit b57ed42

19 files changed

+303
-6
lines changed

internal/integrationtest/database_exadata_infrastructure_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
1+
// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
22
// Licensed under the Mozilla Public License v2.0
33

44
package integrationtest
@@ -435,6 +435,8 @@ func TestDatabaseExadataInfrastructureResource_basic(t *testing.T) {
435435
resource.TestCheckResourceAttrSet(datasourceName, "exadata_infrastructures.0.data_storage_size_in_tbs"),
436436
resource.TestCheckResourceAttrSet(datasourceName, "exadata_infrastructures.0.db_node_storage_size_in_gbs"),
437437
resource.TestCheckResourceAttr(datasourceName, "exadata_infrastructures.0.defined_tags.%", "1"),
438+
resource.TestCheckResourceAttr(datasourceName, "exadata_infrastructures.0.defined_file_system_configurations.#", "7"),
439+
438440
resource.TestCheckResourceAttr(datasourceName, "exadata_infrastructures.0.display_name", "tstExaInfra"),
439441
resource.TestCheckResourceAttr(datasourceName, "exadata_infrastructures.0.dns_server.#", "2"),
440442
resource.TestCheckResourceAttr(datasourceName, "exadata_infrastructures.0.freeform_tags.%", "1"),
@@ -504,6 +506,8 @@ func TestDatabaseExadataInfrastructureResource_basic(t *testing.T) {
504506
resource.TestCheckResourceAttrSet(singularDatasourceName, "data_storage_size_in_tbs"),
505507
resource.TestCheckResourceAttrSet(singularDatasourceName, "db_node_storage_size_in_gbs"),
506508
resource.TestCheckResourceAttr(singularDatasourceName, "defined_tags.%", "1"),
509+
resource.TestCheckResourceAttr(singularDatasourceName, "defined_file_system_configurations.#", "7"),
510+
507511
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "tstExaInfra"),
508512
resource.TestCheckResourceAttr(singularDatasourceName, "dns_server.#", "2"),
509513
resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),

internal/integrationtest/database_vm_cluster_add_virtual_machine_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,11 @@ var (
6161
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`validate_vm_cluster_network`, `vm_networks`}},
6262
}
6363
vmClusterNetworkScansHalfRackRepresentation = map[string]interface{}{
64-
"hostname": acctest.Representation{RepType: acctest.Required, Create: `myprefix1-ivmmj-scan`, Update: `myprefix2-ivmmj-scan`},
65-
"ips": acctest.Representation{RepType: acctest.Required, Create: []string{`192.168.19.7`, `192.168.19.6`, `192.168.19.8`}, Update: []string{`192.168.19.7`, `192.168.19.8`, `192.168.19.9`}},
66-
"port": acctest.Representation{RepType: acctest.Required, Create: `1521`, Update: `1522`},
64+
"hostname": acctest.Representation{RepType: acctest.Required, Create: `myprefix1-ivmmj-scan`, Update: `myprefix2-ivmmj-scan`},
65+
"ips": acctest.Representation{RepType: acctest.Required, Create: []string{`192.168.19.7`, `192.168.19.6`, `192.168.19.8`}, Update: []string{`192.168.19.7`, `192.168.19.8`, `192.168.19.9`}},
66+
"port": acctest.Representation{RepType: acctest.Required, Create: `1521`, Update: `1522`},
67+
"scan_listener_port_tcp": acctest.Representation{RepType: acctest.Required, Create: `1521`, Update: `1522`},
68+
"scan_listener_port_tcp_ssl": acctest.Representation{RepType: acctest.Required, Create: `2484`, Update: `2484`},
6769
}
6870
vmClusterNetworkBackupVmNetworkHalfRackRepresentation = map[string]interface{}{
6971
"domain_name": acctest.Representation{RepType: acctest.Required, Create: `oracle.com`, Update: `oracle.com`},

internal/integrationtest/database_vm_cluster_test.go

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
1+
// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
22
// Licensed under the Mozilla Public License v2.0
33

44
package integrationtest
@@ -60,6 +60,14 @@ var (
6060
"db_node_storage_size_in_gbs": acctest.Representation{RepType: acctest.Optional, Create: `120`, Update: `160`},
6161
"db_servers": acctest.Representation{RepType: acctest.Required, Create: []string{`${data.oci_database_db_servers.test_db_servers.db_servers.0.id}`, `${data.oci_database_db_servers.test_db_servers.db_servers.1.id}`}},
6262
"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")}`},
63+
"file_system_configuration_details": []acctest.RepresentationGroup{
64+
{RepType: acctest.Optional, Group: DatabaseVmClusterFileSystemConfigurationDetailsRepresentation},
65+
{RepType: acctest.Optional, Group: DatabaseVmClusterFileSystemConfigurationDetailsRepresentation1},
66+
{RepType: acctest.Optional, Group: DatabaseVmClusterFileSystemConfigurationDetailsRepresentation2},
67+
{RepType: acctest.Optional, Group: DatabaseVmClusterFileSystemConfigurationDetailsRepresentation3},
68+
{RepType: acctest.Optional, Group: DatabaseVmClusterFileSystemConfigurationDetailsRepresentation4},
69+
{RepType: acctest.Optional, Group: DatabaseVmClusterFileSystemConfigurationDetailsRepresentation5},
70+
{RepType: acctest.Optional, Group: DatabaseVmClusterFileSystemConfigurationDetailsRepresentation6}},
6371
"freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
6472
"is_local_backup_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`},
6573
"is_sparse_diskgroup_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`},
@@ -78,6 +86,42 @@ var (
7886
"is_health_monitoring_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`},
7987
"is_incident_logs_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`},
8088
}
89+
90+
DatabaseVmClusterFileSystemConfigurationDetailsRepresentation = map[string]interface{}{
91+
"file_system_size_gb": acctest.Representation{RepType: acctest.Optional, Create: `250`, Update: `260`},
92+
"mount_point": acctest.Representation{RepType: acctest.Optional, Create: `/u01`, Update: `/u01`},
93+
}
94+
95+
DatabaseVmClusterFileSystemConfigurationDetailsRepresentation1 = map[string]interface{}{
96+
"file_system_size_gb": acctest.Representation{RepType: acctest.Optional, Create: `15`, Update: `25`},
97+
"mount_point": acctest.Representation{RepType: acctest.Optional, Create: `/`, Update: `/`},
98+
}
99+
100+
DatabaseVmClusterFileSystemConfigurationDetailsRepresentation2 = map[string]interface{}{
101+
"file_system_size_gb": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `20`},
102+
"mount_point": acctest.Representation{RepType: acctest.Optional, Create: `/tmp`, Update: `/tmp`},
103+
}
104+
105+
DatabaseVmClusterFileSystemConfigurationDetailsRepresentation3 = map[string]interface{}{
106+
"file_system_size_gb": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `20`},
107+
"mount_point": acctest.Representation{RepType: acctest.Optional, Create: `/var`, Update: `/var`},
108+
}
109+
110+
DatabaseVmClusterFileSystemConfigurationDetailsRepresentation4 = map[string]interface{}{
111+
"file_system_size_gb": acctest.Representation{RepType: acctest.Optional, Create: `30`, Update: `40`},
112+
"mount_point": acctest.Representation{RepType: acctest.Optional, Create: `/var/log`, Update: `/var/log`},
113+
}
114+
115+
DatabaseVmClusterFileSystemConfigurationDetailsRepresentation5 = map[string]interface{}{
116+
"file_system_size_gb": acctest.Representation{RepType: acctest.Optional, Create: `4`, Update: `14`},
117+
"mount_point": acctest.Representation{RepType: acctest.Optional, Create: `/home`, Update: `/home`},
118+
}
119+
120+
DatabaseVmClusterFileSystemConfigurationDetailsRepresentation6 = map[string]interface{}{
121+
"file_system_size_gb": acctest.Representation{RepType: acctest.Optional, Create: `10`},
122+
"mount_point": acctest.Representation{RepType: acctest.Optional, Create: `/var/log/audit`},
123+
}
124+
81125
DatabaseVmClusterResourceDependencies = VmClusterNetworkValidatedResourceConfig
82126
)
83127

@@ -143,6 +187,9 @@ func TestDatabaseVmClusterResource_basic(t *testing.T) {
143187
resource.TestCheckResourceAttr(resourceName, "db_servers.#", "2"),
144188
resource.TestCheckResourceAttr(resourceName, "display_name", "vmCluster"),
145189
resource.TestCheckResourceAttrSet(resourceName, "exadata_infrastructure_id"),
190+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.#", "7"),
191+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.0.file_system_size_gb", "250"),
192+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.0.mount_point", "/u01"),
146193
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
147194
resource.TestCheckResourceAttr(resourceName, "gi_version", "19.0.0.0.0"),
148195
resource.TestCheckResourceAttr(resourceName, "is_local_backup_enabled", "false"),
@@ -184,6 +231,9 @@ func TestDatabaseVmClusterResource_basic(t *testing.T) {
184231
resource.TestCheckResourceAttr(resourceName, "db_servers.#", "2"),
185232
resource.TestCheckResourceAttr(resourceName, "display_name", "vmCluster"),
186233
resource.TestCheckResourceAttrSet(resourceName, "exadata_infrastructure_id"),
234+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.#", "7"),
235+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.0.file_system_size_gb", "250"),
236+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.0.mount_point", "/u01"),
187237
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
188238
resource.TestCheckResourceAttr(resourceName, "gi_version", "19.0.0.0.0"),
189239
resource.TestCheckResourceAttr(resourceName, "is_local_backup_enabled", "false"),
@@ -220,6 +270,9 @@ func TestDatabaseVmClusterResource_basic(t *testing.T) {
220270
resource.TestCheckResourceAttr(resourceName, "db_servers.#", "2"),
221271
resource.TestCheckResourceAttr(resourceName, "display_name", "vmCluster"),
222272
resource.TestCheckResourceAttrSet(resourceName, "exadata_infrastructure_id"),
273+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.#", "7"),
274+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.0.file_system_size_gb", "260"),
275+
resource.TestCheckResourceAttr(resourceName, "file_system_configuration_details.0.mount_point", "/u01"),
223276
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
224277
resource.TestCheckResourceAttr(resourceName, "gi_version", "19.0.0.0.0"),
225278
resource.TestCheckResourceAttr(resourceName, "is_local_backup_enabled", "false"),
@@ -264,6 +317,9 @@ func TestDatabaseVmClusterResource_basic(t *testing.T) {
264317
resource.TestCheckResourceAttr(datasourceName, "vm_clusters.0.db_servers.#", "2"),
265318
resource.TestCheckResourceAttr(datasourceName, "vm_clusters.0.display_name", "vmCluster"),
266319
resource.TestCheckResourceAttrSet(datasourceName, "vm_clusters.0.exadata_infrastructure_id"),
320+
resource.TestCheckResourceAttr(datasourceName, "vm_clusters.0.file_system_configuration_details.#", "7"),
321+
resource.TestCheckResourceAttr(datasourceName, "vm_clusters.0.file_system_configuration_details.0.file_system_size_gb", "260"),
322+
resource.TestCheckResourceAttr(datasourceName, "vm_clusters.0.file_system_configuration_details.0.mount_point", "/u01"),
267323
resource.TestCheckResourceAttr(datasourceName, "vm_clusters.0.freeform_tags.%", "1"),
268324
resource.TestCheckResourceAttr(datasourceName, "vm_clusters.0.gi_version", "19.0.0.0.0"),
269325
resource.TestCheckResourceAttrSet(datasourceName, "vm_clusters.0.id"),
@@ -299,16 +355,19 @@ func TestDatabaseVmClusterResource_basic(t *testing.T) {
299355
resource.TestCheckResourceAttr(singularDatasourceName, "db_node_storage_size_in_gbs", "160"),
300356
resource.TestCheckResourceAttr(singularDatasourceName, "db_servers.#", "2"),
301357
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "vmCluster"),
358+
resource.TestCheckResourceAttr(singularDatasourceName, "file_system_configuration_details.#", "7"),
359+
resource.TestCheckResourceAttr(singularDatasourceName, "file_system_configuration_details.0.file_system_size_gb", "260"),
360+
resource.TestCheckResourceAttr(singularDatasourceName, "file_system_configuration_details.0.mount_point", "/u01"),
302361
resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),
303362
resource.TestCheckResourceAttr(singularDatasourceName, "gi_version", "19.0.0.0.0"),
304363
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
305364
resource.TestCheckResourceAttr(singularDatasourceName, "is_local_backup_enabled", "false"),
306365
resource.TestCheckResourceAttr(singularDatasourceName, "is_sparse_diskgroup_enabled", "false"),
307366
resource.TestCheckResourceAttr(singularDatasourceName, "license_model", "LICENSE_INCLUDED"),
308367
resource.TestCheckResourceAttr(singularDatasourceName, "memory_size_in_gbs", "90"),
368+
resource.TestCheckResourceAttr(singularDatasourceName, "system_version", "19.2.12.0.0.200317"),
309369
resource.TestCheckResourceAttrSet(singularDatasourceName, "shape"),
310370
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
311-
resource.TestCheckResourceAttr(singularDatasourceName, "system_version", "19.2.12.0.0.200317"),
312371
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
313372
resource.TestCheckResourceAttr(singularDatasourceName, "time_zone", "US/Pacific"),
314373
),

internal/service/database/database_exadata_infrastructure_data_source.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,12 @@ func (s *DatabaseExadataInfrastructureDataSourceCrud) SetData() error {
136136
s.D.Set("db_server_version", *s.Res.DbServerVersion)
137137
}
138138

139+
definedFileSystemConfigurations := []interface{}{}
140+
for _, item := range s.Res.DefinedFileSystemConfigurations {
141+
definedFileSystemConfigurations = append(definedFileSystemConfigurations, DefinedFileSystemConfigurationToMap(item))
142+
}
143+
s.D.Set("defined_file_system_configurations", definedFileSystemConfigurations)
144+
139145
if s.Res.DefinedTags != nil {
140146
s.D.Set("defined_tags", tfresource.DefinedTagsToMap(s.Res.DefinedTags))
141147
}

internal/service/database/database_exadata_infrastructure_resource.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,35 @@ func DatabaseExadataInfrastructureResource() *schema.Resource {
361361
Type: schema.TypeString,
362362
Computed: true,
363363
},
364+
"defined_file_system_configurations": {
365+
Type: schema.TypeList,
366+
Computed: true,
367+
Elem: &schema.Resource{
368+
Schema: map[string]*schema.Schema{
369+
// Required
370+
371+
// Optional
372+
373+
// Computed
374+
"is_backup_partition": {
375+
Type: schema.TypeBool,
376+
Computed: true,
377+
},
378+
"is_resizable": {
379+
Type: schema.TypeBool,
380+
Computed: true,
381+
},
382+
"min_size_gb": {
383+
Type: schema.TypeInt,
384+
Computed: true,
385+
},
386+
"mount_point": {
387+
Type: schema.TypeString,
388+
Computed: true,
389+
},
390+
},
391+
},
392+
},
364393
"lifecycle_details": {
365394
Type: schema.TypeString,
366395
Computed: true,
@@ -1003,6 +1032,12 @@ func (s *DatabaseExadataInfrastructureResourceCrud) SetData() error {
10031032
s.D.Set("db_server_version", *s.Res.DbServerVersion)
10041033
}
10051034

1035+
definedFileSystemConfigurations := []interface{}{}
1036+
for _, item := range s.Res.DefinedFileSystemConfigurations {
1037+
definedFileSystemConfigurations = append(definedFileSystemConfigurations, DefinedFileSystemConfigurationToMap(item))
1038+
}
1039+
s.D.Set("defined_file_system_configurations", definedFileSystemConfigurations)
1040+
10061041
if s.Res.DefinedTags != nil {
10071042
s.D.Set("defined_tags", tfresource.DefinedTagsToMap(s.Res.DefinedTags))
10081043
}

internal/service/database/database_exadata_infrastructures_data_source.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ func (s *DatabaseExadataInfrastructuresDataSourceCrud) SetData() error {
176176
exadataInfrastructure["db_server_version"] = *r.DbServerVersion
177177
}
178178

179+
definedFileSystemConfigurations := []interface{}{}
180+
for _, item := range r.DefinedFileSystemConfigurations {
181+
definedFileSystemConfigurations = append(definedFileSystemConfigurations, DefinedFileSystemConfigurationToMap(item))
182+
}
183+
exadataInfrastructure["defined_file_system_configurations"] = definedFileSystemConfigurations
184+
179185
if r.DefinedTags != nil {
180186
exadataInfrastructure["defined_tags"] = tfresource.DefinedTagsToMap(r.DefinedTags)
181187
}

internal/service/database/database_vm_cluster_add_virtual_machine_resource.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,27 @@ func DatabaseVmClusterAddVirtualMachineResource() *schema.Resource {
120120
Type: schema.TypeString,
121121
Computed: true,
122122
},
123+
"file_system_configuration_details": {
124+
Type: schema.TypeList,
125+
Computed: true,
126+
Elem: &schema.Resource{
127+
Schema: map[string]*schema.Schema{
128+
// Required
129+
130+
// Optional
131+
132+
// Computed
133+
"file_system_size_gb": {
134+
Type: schema.TypeInt,
135+
Computed: true,
136+
},
137+
"mount_point": {
138+
Type: schema.TypeString,
139+
Computed: true,
140+
},
141+
},
142+
},
143+
},
123144
"freeform_tags": {
124145
Type: schema.TypeMap,
125146
Computed: true,
@@ -314,6 +335,12 @@ func (s *DatabaseVmClusterAddVirtualMachineResourceCrud) SetData() error {
314335
s.D.Set("exadata_infrastructure_id", *s.Res.ExadataInfrastructureId)
315336
}
316337

338+
fileSystemConfigurationDetails := []interface{}{}
339+
for _, item := range s.Res.FileSystemConfigurationDetails {
340+
fileSystemConfigurationDetails = append(fileSystemConfigurationDetails, FileSystemConfigurationDetailToMap(item))
341+
}
342+
s.D.Set("file_system_configuration_details", fileSystemConfigurationDetails)
343+
317344
s.D.Set("freeform_tags", s.Res.FreeformTags)
318345

319346
if s.Res.GiVersion != nil {

internal/service/database/database_vm_cluster_data_source.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@ func (s *DatabaseVmClusterDataSourceCrud) SetData() error {
110110
s.D.Set("exadata_infrastructure_id", *s.Res.ExadataInfrastructureId)
111111
}
112112

113+
fileSystemConfigurationDetails := []interface{}{}
114+
for _, item := range s.Res.FileSystemConfigurationDetails {
115+
fileSystemConfigurationDetails = append(fileSystemConfigurationDetails, FileSystemConfigurationDetailToMap(item))
116+
}
117+
s.D.Set("file_system_configuration_details", fileSystemConfigurationDetails)
118+
113119
s.D.Set("freeform_tags", s.Res.FreeformTags)
114120

115121
if s.Res.GiVersion != nil {

internal/service/database/database_vm_cluster_remove_virtual_machine_resource.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,27 @@ func DatabaseVmClusterRemoveVirtualMachineResource() *schema.Resource {
112112
Type: schema.TypeString,
113113
Computed: true,
114114
},
115+
"file_system_configuration_details": {
116+
Type: schema.TypeList,
117+
Computed: true,
118+
Elem: &schema.Resource{
119+
Schema: map[string]*schema.Schema{
120+
// Required
121+
122+
// Optional
123+
124+
// Computed
125+
"file_system_size_gb": {
126+
Type: schema.TypeInt,
127+
Computed: true,
128+
},
129+
"mount_point": {
130+
Type: schema.TypeString,
131+
Computed: true,
132+
},
133+
},
134+
},
135+
},
115136
"freeform_tags": {
116137
Type: schema.TypeMap,
117138
Computed: true,
@@ -306,6 +327,12 @@ func (s *DatabaseVmClusterRemoveVirtualMachineResourceCrud) SetData() error {
306327
s.D.Set("exadata_infrastructure_id", *s.Res.ExadataInfrastructureId)
307328
}
308329

330+
fileSystemConfigurationDetails := []interface{}{}
331+
for _, item := range s.Res.FileSystemConfigurationDetails {
332+
fileSystemConfigurationDetails = append(fileSystemConfigurationDetails, FileSystemConfigurationDetailToMap(item))
333+
}
334+
s.D.Set("file_system_configuration_details", fileSystemConfigurationDetails)
335+
309336
s.D.Set("freeform_tags", s.Res.FreeformTags)
310337

311338
if s.Res.GiVersion != nil {

0 commit comments

Comments
 (0)