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