Skip to content

Commit 175588a

Browse files
Terraform Team Automationvsin12
authored andcommitted
Added - Support for ExaCC Multi-Rack storage expansion
1 parent 579c529 commit 175588a

10 files changed

+261
-44
lines changed

examples/database/exadata_cc/exadata-infrastructure.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ resource "oci_database_exadata_infrastructure" "test_exadata_infrastructure" {
4848
storage_count = 3
4949
compute_count = 2
5050
is_cps_offline_report_enabled = false
51+
is_multi_rack_deployment = false
5152

5253
#Optional
5354
contacts {
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
{
2+
"generation" : "X8M",
3+
"total racks" : 2,
4+
"total compute" : 2,
5+
"total storage" : 10,
6+
"total existing racks" : 1,
7+
"total existing compute" : 2,
8+
"total existing storage" : 3,
9+
"racks" :
10+
[
11+
{
12+
"rack_num" : 1,
13+
"new rack" : "yes",
14+
"number compute" : 0,
15+
"number storage" : 7,
16+
"existing compute" : 0,
17+
"existing storage" : 0,
18+
"components" :
19+
[
20+
{
21+
"type" : "spine",
22+
"uloc" : 1,
23+
"uheight" : 1,
24+
"new component" : "yes"
25+
},
26+
{
27+
"type" : "storage",
28+
"uloc" : 2,
29+
"uheight" : 2,
30+
"new component" : "yes"
31+
},
32+
{
33+
"type" : "storage",
34+
"uloc" : 4,
35+
"uheight" : 2,
36+
"new component" : "yes"
37+
},
38+
{
39+
"type" : "storage",
40+
"uloc" : 6,
41+
"uheight" : 2,
42+
"new component" : "yes"
43+
},
44+
{
45+
"type" : "storage",
46+
"uloc" : 8,
47+
"uheight" : 2,
48+
"new component" : "yes"
49+
},
50+
{
51+
"type" : "storage",
52+
"uloc" : 10,
53+
"uheight" : 2,
54+
"new component" : "yes"
55+
},
56+
{
57+
"type" : "storage",
58+
"uloc" : 12,
59+
"uheight" : 2,
60+
"new component" : "yes"
61+
},
62+
{
63+
"type" : "storage",
64+
"uloc" : 14,
65+
"uheight" : 2,
66+
"new component" : "yes"
67+
}
68+
]
69+
},
70+
{
71+
"rack_num" : 2,
72+
"new rack" : "no",
73+
"number compute" : 2,
74+
"number storage" : 3,
75+
"existing compute" : 2,
76+
"existing storage" : 3,
77+
"components" :
78+
[
79+
{
80+
"type" : "spine",
81+
"uloc" : 1,
82+
"uheight" : 1,
83+
"new component" : "no"
84+
},
85+
{
86+
"type" : "storage",
87+
"uloc" : 2,
88+
"uheight" : 2,
89+
"new component" : "no"
90+
},
91+
{
92+
"type" : "storage",
93+
"uloc" : 4,
94+
"uheight" : 2,
95+
"new component" : "no"
96+
},
97+
{
98+
"type" : "storage",
99+
"uloc" : 6,
100+
"uheight" : 2,
101+
"new component" : "yes"
102+
},
103+
{
104+
"type" : "compute",
105+
"uloc" : 16,
106+
"uheight" : 1,
107+
"new component" : "no"
108+
},
109+
{
110+
"type" : "compute",
111+
"uloc" : 17,
112+
"uheight" : 1,
113+
"new component" : "no"
114+
}
115+
]
116+
}
117+
]
118+
}

internal/integrationtest/database_exadata_infrastructure_storage_test.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,16 @@ var (
4848
"infini_band_network_cidr": acctest.Representation{RepType: acctest.Required, Create: `10.31.8.0/21`, Update: `10.31.8.0/22`},
4949
"netmask": acctest.Representation{RepType: acctest.Required, Create: `255.255.255.0`, Update: `255.255.254.0`},
5050
"ntp_server": acctest.Representation{RepType: acctest.Required, Create: []string{`10.231.225.76`}, Update: []string{`10.246.6.36`, `10.31.138.20`}},
51-
"shape": acctest.Representation{RepType: acctest.Required, Create: `ExadataCC.Quarter3.100`},
51+
"shape": acctest.Representation{RepType: acctest.Required, Create: `ExadataCC.X8M`},
5252
"time_zone": acctest.Representation{RepType: acctest.Required, Create: `US/Pacific`, Update: `UTC`},
53-
"compute_count": acctest.Representation{RepType: acctest.Optional, Create: `2`},
53+
"compute_count": acctest.Representation{RepType: acctest.Required, Create: `2`},
54+
"storage_count": acctest.Representation{RepType: acctest.Required, Create: `3`},
5455
"contacts": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabaseExadataInfrastructureContactsRepresentation},
5556
"corporate_proxy": acctest.Representation{RepType: acctest.Optional, Create: `http://192.168.19.1:80`, Update: `http://192.168.19.2:80`},
5657
"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")}`},
5758
"freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
5859
"maintenance_window": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabaseExadataInfrastructureMaintenanceWindowRepresentation},
60+
"is_multi_rack_deployment": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`},
5961
"lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreShapeRepresentation},
6062
}
6163

@@ -91,9 +93,7 @@ func TestDatabaseExadataInfrastructureStorageResource_basic(t *testing.T) {
9193
{
9294
Config: config + compartmentIdVariableStr + ExadataInfrastructureStorageResourceDependencies +
9395
acctest.GenerateResourceFromRepresentationMap("oci_database_exadata_infrastructure", "test_exadata_infrastructure", acctest.Optional, acctest.Create,
94-
acctest.RepresentationCopyWithNewProperties(exadataInfrastructureStorageRepresentation, map[string]interface{}{
95-
"storage_count": 3,
96-
})),
96+
exadataInfrastructureStorageRepresentation),
9797
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
9898
resource.TestCheckResourceAttr(resourceName, "admin_network_cidr", "192.168.0.0/16"),
9999
resource.TestCheckResourceAttr(resourceName, "cloud_control_plane_server1", "10.32.88.1"),
@@ -121,7 +121,8 @@ func TestDatabaseExadataInfrastructureStorageResource_basic(t *testing.T) {
121121
resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.weeks_of_month.#", "0"),
122122
resource.TestCheckResourceAttr(resourceName, "netmask", "255.255.255.0"),
123123
resource.TestCheckResourceAttr(resourceName, "ntp_server.#", "1"),
124-
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.Quarter3.100"),
124+
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.X8M"),
125+
resource.TestCheckResourceAttr(resourceName, "is_multi_rack_deployment", "false"),
125126
resource.TestCheckResourceAttrSet(resourceName, "state"),
126127
resource.TestCheckResourceAttr(resourceName, "storage_count", "3"),
127128
resource.TestCheckResourceAttr(resourceName, "compute_count", "2"),
@@ -138,9 +139,8 @@ func TestDatabaseExadataInfrastructureStorageResource_basic(t *testing.T) {
138139
{
139140
Config: config + compartmentIdVariableStr + ExadataInfrastructureResourceActivateDependencies +
140141
acctest.GenerateResourceFromRepresentationMap("oci_database_exadata_infrastructure", "test_exadata_infrastructure", acctest.Optional, acctest.Create,
141-
acctest.RepresentationCopyWithNewProperties(exadataInfrastructureActivateRepresentation, map[string]interface{}{
142-
"activation_file": acctest.Representation{RepType: acctest.Optional, Create: activationFilePath},
143-
"maintenance_window": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabaseExadataInfrastructureMaintenanceWindowRepresentation},
142+
acctest.RepresentationCopyWithNewProperties(exadataInfrastructureStorageRepresentation, map[string]interface{}{
143+
"activation_file": acctest.Representation{RepType: acctest.Optional, Create: activationFilePath},
144144
})),
145145
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
146146
resource.TestCheckResourceAttr(resourceName, "admin_network_cidr", "192.168.0.0/16"),
@@ -156,7 +156,8 @@ func TestDatabaseExadataInfrastructureStorageResource_basic(t *testing.T) {
156156
resource.TestCheckResourceAttr(resourceName, "infini_band_network_cidr", "10.31.8.0/21"),
157157
resource.TestCheckResourceAttr(resourceName, "netmask", "255.255.255.0"),
158158
resource.TestCheckResourceAttr(resourceName, "ntp_server.#", "1"),
159-
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.Quarter3.100"),
159+
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.X8M"),
160+
resource.TestCheckResourceAttr(resourceName, "is_multi_rack_deployment", "false"),
160161
resource.TestCheckResourceAttr(resourceName, "time_zone", "US/Pacific"),
161162
resource.TestCheckResourceAttr(resourceName, "state", "ACTIVE"),
162163

@@ -176,8 +177,9 @@ func TestDatabaseExadataInfrastructureStorageResource_basic(t *testing.T) {
176177
acctest.GenerateResourceFromRepresentationMap("oci_database_exadata_infrastructure", "test_exadata_infrastructure", acctest.Optional, acctest.Update,
177178
acctest.RepresentationCopyWithNewProperties(exadataInfrastructureStorageRepresentation, map[string]interface{}{
178179
//"activation_file": acctest.Representation{RepType: acctest.Optional, Create: activationFilePath},
179-
"additional_storage_count": acctest.Representation{RepType: acctest.Optional, Update: `3`},
180-
"maintenance_window": acctest.RepresentationGroup{RepType: acctest.Optional, Group: exadataInfrastructureMaintenanceWindowRepresentationComplete},
180+
"additional_storage_count": acctest.Representation{RepType: acctest.Optional, Update: `7`},
181+
"maintenance_window": acctest.RepresentationGroup{RepType: acctest.Optional, Group: exadataInfrastructureMaintenanceWindowRepresentationComplete},
182+
"multi_rack_configuration_file": acctest.Representation{RepType: acctest.Optional, Update: `../../examples/database/exadata_cc/multi_rack_sar_file_storage.json`},
181183
})),
182184
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
183185
resource.TestCheckResourceAttr(resourceName, "admin_network_cidr", "192.168.0.0/20"),
@@ -193,12 +195,13 @@ func TestDatabaseExadataInfrastructureStorageResource_basic(t *testing.T) {
193195
resource.TestCheckResourceAttr(resourceName, "infini_band_network_cidr", "10.31.8.0/22"),
194196
resource.TestCheckResourceAttr(resourceName, "netmask", "255.255.254.0"),
195197
resource.TestCheckResourceAttr(resourceName, "ntp_server.#", "2"),
196-
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.X8"),
198+
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.X8M"),
197199
resource.TestCheckResourceAttrSet(resourceName, "state"),
198200
resource.TestCheckResourceAttr(resourceName, "storage_count", "3"),
199201
resource.TestCheckResourceAttr(resourceName, "compute_count", "2"),
200-
resource.TestCheckResourceAttr(resourceName, "additional_storage_count", "3"),
202+
resource.TestCheckResourceAttr(resourceName, "additional_storage_count", "7"),
201203
resource.TestCheckResourceAttr(resourceName, "activated_storage_count", "0"),
204+
resource.TestCheckResourceAttr(resourceName, "is_multi_rack_deployment", "true"),
202205
resource.TestCheckResourceAttr(resourceName, "time_zone", "UTC"),
203206

204207
func(s *terraform.State) (err error) {
@@ -232,10 +235,11 @@ func TestDatabaseExadataInfrastructureStorageResource_basic(t *testing.T) {
232235
resource.TestCheckResourceAttr(resourceName, "infini_band_network_cidr", "10.31.8.0/22"),
233236
resource.TestCheckResourceAttr(resourceName, "netmask", "255.255.254.0"),
234237
resource.TestCheckResourceAttr(resourceName, "ntp_server.#", "2"),
235-
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.X8"),
238+
resource.TestCheckResourceAttr(resourceName, "shape", "ExadataCC.X8M"),
236239
resource.TestCheckResourceAttrSet(resourceName, "state"),
237240
resource.TestCheckResourceAttr(resourceName, "storage_count", "3"),
238241
resource.TestCheckResourceAttr(resourceName, "compute_count", "2"),
242+
resource.TestCheckResourceAttr(resourceName, "is_multi_rack_deployment", "true"),
239243
resource.TestCheckResourceAttr(resourceName, "time_zone", "UTC"),
240244

241245
func(s *terraform.State) (err error) {

0 commit comments

Comments
 (0)