Skip to content

Commit e8dfc06

Browse files
Neha Kaushalsahilg11
authored andcommitted
Added - Support for In-place Upgrade support
1 parent 757d2dd commit e8dfc06

13 files changed

+379
-38
lines changed

examples/ocvp/main.tf

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ resource "oci_ocvp_sddc" "test_sddc" {
372372
provisioning_subnet_id = oci_core_subnet.test_provisioning_subnet.id
373373
ssh_authorized_keys = "ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"
374374
vmotion_vlan_id = oci_core_vlan.test_vmotion_net_vlan.id
375-
vmware_software_version = "7.0 update 2"
375+
vmware_software_version = "7.0 update 3"
376376
vsan_vlan_id = oci_core_vlan.test_vsan_net_vlan.id
377377
vsphere_vlan_id = oci_core_vlan.test_vsphere_net_vlan.id
378378
// Optional
@@ -398,10 +398,11 @@ resource "oci_ocvp_esxi_host" "test_esxi_host" {
398398
sddc_id = oci_ocvp_sddc.test_sddc.id
399399
#Optional
400400
compute_availability_domain = data.oci_identity_availability_domains.ADs.availability_domains[0]["name"]
401-
current_sku = data.oci_ocvp_supported_skus.test_supported_skus.items[0].name
401+
current_sku = "HOUR"
402402
host_ocpu_count = "52.0"
403403
host_shape_name = "BM.DenseIO2.52"
404-
next_sku = data.oci_ocvp_supported_skus.test_supported_skus.items[0].name
404+
next_sku = "HOUR"
405+
#non_upgraded_esxi_host_id = data.oci_ocvp_esxi_hosts.non_upgraded_esxi_hosts.esxi_host_collection[0].id
405406
#defined_tags = {"${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}" = "${var.esxihost_defined_tags_value}"}
406407
#display_name = var.esxihost_display_name
407408
#freeform_tags = var.esxihost_freeform_tags

internal/integrationtest/ocvp_esxi_host_test.go

Lines changed: 63 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var (
2828
OcvpEsxiHostRequiredOnlyResource = EsxiHostResourceDependencies +
2929
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Required, acctest.Create, OcvpEsxiHostRepresentation)
3030

31-
OcvpEsxiHostResourceConfig = EsxiHostResourceDependencies +
31+
OcvpEsxiHostResourceConfig = EsxiHostUpgradeResourceDependencies +
3232
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Optional, acctest.Update, OcvpEsxiHostRepresentation)
3333

3434
ReplacementEsxiHostResourceConfig = EsxiHostResourceDependencies +
@@ -47,10 +47,16 @@ var (
4747
"name": acctest.Representation{RepType: acctest.Required, Create: `id`},
4848
"values": acctest.Representation{RepType: acctest.Required, Create: []string{`${oci_ocvp_esxi_host.test_esxi_host.id}`}},
4949
}
50-
existingEsxiHostDataSourceRepresentation = map[string]interface{}{
50+
// for replace node
51+
failedEsxiHostDataSourceRepresentation = map[string]interface{}{
5152
"sddc_id": acctest.Representation{RepType: acctest.Optional, Create: `${oci_ocvp_sddc.test_sddc.id}`},
5253
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `${oci_ocvp_sddc.test_sddc.display_name}-1`},
5354
}
55+
//for upgrade ESXi host
56+
nonUpgradedEsxiHostDataSourceRepresentation = map[string]interface{}{
57+
"sddc_id": acctest.Representation{RepType: acctest.Optional, Create: `${oci_ocvp_sddc.test_sddc.id}`},
58+
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `${oci_ocvp_sddc.test_sddc.display_name}-2`},
59+
}
5460

5561
OcvpEsxiHostRepresentation = map[string]interface{}{
5662
"sddc_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_ocvp_sddc.test_sddc.id}`},
@@ -65,11 +71,18 @@ var (
6571
}
6672
replacementEsxiHostRepresentation = map[string]interface{}{
6773
"sddc_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_ocvp_sddc.test_sddc.id}`},
68-
"failed_esxi_host_id": acctest.Representation{RepType: acctest.Optional, Create: `${data.oci_ocvp_esxi_hosts.existing_esxi_hosts.esxi_host_collection[0].id}`},
74+
"failed_esxi_host_id": acctest.Representation{RepType: acctest.Optional, Create: `${data.oci_ocvp_esxi_hosts.failed_esxi_hosts.esxi_host_collection[0].id}`},
6975
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `replacement`},
7076
}
77+
upgradedEsxiHostRepresentation = map[string]interface{}{
78+
"sddc_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_ocvp_sddc.test_sddc.id}`},
79+
"non_upgraded_esxi_host_id": acctest.Representation{RepType: acctest.Optional, Create: `${data.oci_ocvp_esxi_hosts.non_upgraded_esxi_hosts.esxi_host_collection[0].id}`},
80+
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `upgrade`},
81+
}
7182

72-
EsxiHostResourceDependencies = OcvpSddcRequiredOnlyResource + acctest.GenerateDataSourceFromRepresentationMap("oci_ocvp_esxi_hosts", "existing_esxi_hosts", acctest.Optional, acctest.Create, existingEsxiHostDataSourceRepresentation)
83+
EsxiHostResourceDependencies = OcvpSddcRequiredOnlyResource + acctest.GenerateDataSourceFromRepresentationMap("oci_ocvp_esxi_hosts", "failed_esxi_hosts", acctest.Optional, acctest.Create, failedEsxiHostDataSourceRepresentation)
84+
85+
EsxiHostUpgradeResourceDependencies = OcvpSddcUpgradeResource + acctest.GenerateDataSourceFromRepresentationMap("oci_ocvp_esxi_hosts", "non_upgraded_esxi_hosts", acctest.Optional, acctest.Create, nonUpgradedEsxiHostDataSourceRepresentation)
7386
)
7487

7588
// issue-routing-tag: ocvp/default
@@ -88,7 +101,7 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
88101

89102
var resId, resId2 string
90103
// 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.
91-
acctest.SaveConfigContent(config+compartmentIdVariableStr+EsxiHostResourceDependencies+
104+
acctest.SaveConfigContent(config+compartmentIdVariableStr+EsxiHostUpgradeResourceDependencies+
92105
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Optional, acctest.Create, OcvpEsxiHostRepresentation), "ocvp", "esxiHost", t)
93106

94107
acctest.ResourceTest(t, testAccCheckOcvpEsxiHostDestroy, []resource.TestStep{
@@ -131,7 +144,7 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
131144
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
132145
resource.TestCheckResourceAttrSet(resourceName, "compute_availability_domain"),
133146
resource.TestCheckResourceAttrSet(resourceName, "compute_instance_id"),
134-
resource.TestCheckResourceAttr(resourceName, "current_sku", "MONTH"),
147+
resource.TestCheckResourceAttrSet(resourceName, "current_sku"),
135148
resource.TestCheckResourceAttr(resourceName, "display_name", `replacement`),
136149
resource.TestCheckResourceAttrSet(resourceName, "failed_esxi_host_id"),
137150
resource.TestCheckResourceAttrSet(resourceName, "host_ocpu_count"),
@@ -164,26 +177,59 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
164177
resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
165178
resource.TestCheckResourceAttrSet(singularDatasourceName, "compute_availability_domain"),
166179
resource.TestCheckResourceAttrSet(singularDatasourceName, "compute_instance_id"),
167-
resource.TestCheckResourceAttr(singularDatasourceName, "current_sku", "MONTH"),
180+
resource.TestCheckResourceAttrSet(singularDatasourceName, "current_sku"),
168181
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", `replacement`),
169182
resource.TestCheckResourceAttrSet(singularDatasourceName, "grace_period_end_date"),
170183
resource.TestCheckResourceAttr(singularDatasourceName, "host_ocpu_count", "52"),
171184
resource.TestCheckResourceAttr(singularDatasourceName, "host_shape_name", "BM.DenseIO2.52"),
172185
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
173-
resource.TestCheckResourceAttr(singularDatasourceName, "next_sku", "MONTH"),
186+
resource.TestCheckResourceAttrSet(singularDatasourceName, "next_sku"),
174187
resource.TestCheckResourceAttrSet(singularDatasourceName, "sddc_id"),
175188
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
176189
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
177190
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"),
178191
),
179192
},
180-
// delete replace node before next Create
193+
// delete replace node and upgrade SDDC before next Create
181194
{
182-
Config: config + compartmentIdVariableStr + EsxiHostResourceDependencies,
195+
Config: config + compartmentIdVariableStr + EsxiHostUpgradeResourceDependencies,
196+
},
197+
// verify upgrade node
198+
{
199+
Config: config + compartmentIdVariableStr + EsxiHostUpgradeResourceDependencies +
200+
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Optional, acctest.Create, upgradedEsxiHostRepresentation),
201+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
202+
resource.TestCheckResourceAttrSet(resourceName, "non_upgraded_esxi_host_id"),
203+
resource.TestCheckResourceAttr(resourceName, "vmware_software_version", "7.0 update 3"),
204+
205+
func(s *terraform.State) (err error) {
206+
resId, err = acctest.FromInstanceState(s, resourceName, "id")
207+
if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
208+
if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
209+
return errExport
210+
}
211+
}
212+
return err
213+
},
214+
),
215+
},
216+
// verify singular datasource for upgrade node
217+
{
218+
Config: config + compartmentIdVariableStr + EsxiHostUpgradeResourceDependencies +
219+
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Optional, acctest.Create, upgradedEsxiHostRepresentation) +
220+
acctest.GenerateDataSourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Required, acctest.Create, OcvpOcvpEsxiHostSingularDataSourceRepresentation),
221+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
222+
resource.TestCheckResourceAttrSet(singularDatasourceName, "non_upgraded_esxi_host_id"),
223+
resource.TestCheckResourceAttr(singularDatasourceName, "vmware_software_version", "7.0 update 3"),
224+
),
225+
},
226+
// delete upgraded node before next Create
227+
{
228+
Config: config + compartmentIdVariableStr + EsxiHostUpgradeResourceDependencies,
183229
},
184230
// verify Create with optionals
185231
{
186-
Config: config + compartmentIdVariableStr + EsxiHostResourceDependencies +
232+
Config: config + compartmentIdVariableStr + EsxiHostUpgradeResourceDependencies +
187233
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Optional, acctest.Create, OcvpEsxiHostRepresentation),
188234
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
189235
resource.TestCheckResourceAttrSet(resourceName, "billing_contract_end_date"),
@@ -203,6 +249,7 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
203249
resource.TestCheckResourceAttrSet(resourceName, "state"),
204250
resource.TestCheckResourceAttrSet(resourceName, "time_created"),
205251
resource.TestCheckResourceAttrSet(resourceName, "time_updated"),
252+
resource.TestCheckResourceAttr(resourceName, "vmware_software_version", "7.0 update 3"),
206253

207254
func(s *terraform.State) (err error) {
208255
resId, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -215,11 +262,9 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
215262
},
216263
),
217264
},
218-
219265
// verify updates to updatable parameters
220266
{
221-
Config: config + compartmentIdVariableStr + EsxiHostResourceDependencies +
222-
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Optional, acctest.Update, OcvpEsxiHostRepresentation),
267+
Config: config + compartmentIdVariableStr + OcvpEsxiHostResourceConfig,
223268
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
224269
resource.TestCheckResourceAttrSet(resourceName, "billing_contract_end_date"),
225270
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
@@ -238,6 +283,7 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
238283
resource.TestCheckResourceAttrSet(resourceName, "state"),
239284
resource.TestCheckResourceAttrSet(resourceName, "time_created"),
240285
resource.TestCheckResourceAttrSet(resourceName, "time_updated"),
286+
resource.TestCheckResourceAttr(resourceName, "vmware_software_version", "7.0 update 3"),
241287

242288
func(s *terraform.State) (err error) {
243289
resId2, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -252,8 +298,7 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
252298
{
253299
Config: config +
254300
acctest.GenerateDataSourceFromRepresentationMap("oci_ocvp_esxi_hosts", "test_esxi_hosts", acctest.Optional, acctest.Update, OcvpOcvpEsxiHostDataSourceRepresentation) +
255-
compartmentIdVariableStr + EsxiHostResourceDependencies +
256-
acctest.GenerateResourceFromRepresentationMap("oci_ocvp_esxi_host", "test_esxi_host", acctest.Optional, acctest.Update, OcvpEsxiHostRepresentation),
301+
compartmentIdVariableStr + OcvpEsxiHostResourceConfig,
257302
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
258303
resource.TestCheckResourceAttrSet(datasourceName, "sddc_id"),
259304
resource.TestCheckResourceAttrSet(datasourceName, "esxi_host_collection.0.compute_availability_domain"),
@@ -294,8 +339,10 @@ func TestOcvpEsxiHostResource_basic(t *testing.T) {
294339
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
295340
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
296341
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"),
342+
resource.TestCheckResourceAttrSet(singularDatasourceName, "vmware_software_version"),
297343
),
298344
},
345+
299346
// verify resource import
300347
{
301348
Config: config + OcvpEsxiHostRequiredOnlyResource,

0 commit comments

Comments
 (0)