Skip to content

Commit f3363a5

Browse files
sankagrajotruon
authored andcommitted
Changes to Update Request for Transit Hub Terraform Resources
1 parent dc066db commit f3363a5

8 files changed

+112
-29
lines changed

oci/core_drg_attachment_management_resource.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,35 +261,35 @@ func (s *CoreDrgAttachmentManagementResourceCrud) Get() error {
261261
func (s *CoreDrgAttachmentManagementResourceCrud) Update() error {
262262
request := oci_core.UpdateDrgAttachmentRequest{}
263263

264-
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
264+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok && s.D.HasChange("defined_tags") {
265265
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
266266
if err != nil {
267267
return err
268268
}
269269
request.DefinedTags = convertedDefinedTags
270270
}
271271

272-
if displayName, ok := s.D.GetOkExists("display_name"); ok {
272+
if displayName, ok := s.D.GetOkExists("display_name"); ok && s.D.HasChange("display_name") {
273273
tmp := displayName.(string)
274274
request.DisplayName = &tmp
275275
}
276276

277277
tmp := s.D.Id()
278278
request.DrgAttachmentId = &tmp
279279

280-
if drgRouteTableId, ok := s.D.GetOkExists("drg_route_table_id"); ok {
280+
if drgRouteTableId, ok := s.D.GetOkExists("drg_route_table_id"); ok && s.D.HasChange("drg_route_table_id") {
281281
tmp := drgRouteTableId.(string)
282282
request.DrgRouteTableId = &tmp
283283
}
284284

285-
if exportRouteDistributionId, ok := s.D.GetOkExists("export_drg_route_distribution_id"); ok {
285+
if exportRouteDistributionId, ok := s.D.GetOkExists("export_drg_route_distribution_id"); ok && s.D.HasChange("export_drg_route_distribution_id") {
286286
if exportRouteDistributionId != nil && exportRouteDistributionId != "" {
287287
tmp := exportRouteDistributionId.(string)
288288
request.ExportDrgRouteDistributionId = &tmp
289289
}
290290
}
291291

292-
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
292+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok && s.D.HasChange("freeform_tags") {
293293
request.FreeformTags = ObjectMapToStringMap(freeformTags.(map[string]interface{}))
294294
}
295295

oci/core_drg_attachment_resource.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -313,35 +313,35 @@ func (s *CoreDrgAttachmentResourceCrud) Get() error {
313313
func (s *CoreDrgAttachmentResourceCrud) Update() error {
314314
request := oci_core.UpdateDrgAttachmentRequest{}
315315

316-
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
316+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok && s.D.HasChange("defined_tags") {
317317
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
318318
if err != nil {
319319
return err
320320
}
321321
request.DefinedTags = convertedDefinedTags
322322
}
323323

324-
if displayName, ok := s.D.GetOkExists("display_name"); ok {
324+
if displayName, ok := s.D.GetOkExists("display_name"); ok && s.D.HasChange("display_name") {
325325
tmp := displayName.(string)
326326
request.DisplayName = &tmp
327327
}
328328

329329
tmp := s.D.Id()
330330
request.DrgAttachmentId = &tmp
331331

332-
if drgRouteTableId, ok := s.D.GetOkExists("drg_route_table_id"); ok {
332+
if drgRouteTableId, ok := s.D.GetOkExists("drg_route_table_id"); ok && s.D.HasChange("drg_route_table_id") {
333333
tmp := drgRouteTableId.(string)
334334
request.DrgRouteTableId = &tmp
335335
}
336336

337-
if exportRouteDistributionId, ok := s.D.GetOkExists("export_drg_route_distribution_id"); ok {
337+
if exportRouteDistributionId, ok := s.D.GetOkExists("export_drg_route_distribution_id"); ok && s.D.HasChange("export_drg_route_distribution_id") {
338338
if exportRouteDistributionId != nil && exportRouteDistributionId != "" {
339339
tmp := exportRouteDistributionId.(string)
340340
request.ExportDrgRouteDistributionId = &tmp
341341
}
342342
}
343343

344-
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
344+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok && s.D.HasChange("freeform_tags") {
345345
request.FreeformTags = ObjectMapToStringMap(freeformTags.(map[string]interface{}))
346346
}
347347

oci/core_drg_attachment_test.go

Lines changed: 85 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ var (
4242
"drg_id": Representation{RepType: Required, Create: `${oci_core_drg.test_drg.id}`},
4343
"defined_tags": Representation{RepType: 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")}`},
4444
"display_name": Representation{RepType: Optional, Create: `displayName`, Update: `displayName2`},
45-
"drg_route_table_id": Representation{RepType: Optional, Create: `${oci_core_drg_route_table.test_drg_route_table.id}`},
45+
"drg_route_table_id": Representation{RepType: Optional, Create: `${oci_core_drg_route_table.test_drg_route_table.id}`, Update: `${oci_core_drg_route_table.test_drg_route_table_2.id}`},
4646
"freeform_tags": Representation{RepType: Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
4747
"network_details": RepresentationGroup{Required, drgAttachmentNetworkDetailsRepresentation},
4848
"lifecycle": RepresentationGroup{Required, ignoreChangesLBRepresentation},
4949
}
5050
drgAttachmentNetworkDetailsRepresentation = map[string]interface{}{
5151
"id": Representation{RepType: Required, Create: `${oci_core_vcn.test_vcn.id}`},
5252
"type": Representation{RepType: Required, Create: `VCN`},
53-
"route_table_id": Representation{RepType: Required, Create: `${oci_core_route_table.test_route_table.id}`},
53+
"route_table_id": Representation{RepType: Required, Create: `${oci_core_route_table.test_route_table.id}`, Update: `${oci_core_route_table.test_route_table_2.id}`},
5454
}
5555

5656
drgAttachmentRepresentationNoRouteTable = map[string]interface{}{
@@ -84,9 +84,11 @@ var (
8484
}
8585

8686
DrgAttachmentResourceDependencies = GenerateResourceFromRepresentationMap("oci_core_drg_route_table", "test_drg_route_table", Required, Create, drgRouteTableRepresentation) +
87+
GenerateResourceFromRepresentationMap("oci_core_drg_route_table", "test_drg_route_table_2", Required, Create, drgRouteTableRepresentation) +
8788
GenerateResourceFromRepresentationMap("oci_core_drg", "test_drg", Required, Create, drgRepresentation) +
8889
GenerateResourceFromRepresentationMap("oci_core_internet_gateway", "test_internet_gateway", Required, Create, internetGatewayRepresentation) +
8990
GenerateResourceFromRepresentationMap("oci_core_route_table", "test_route_table", Required, Create, routeTableRepresentation) +
91+
GenerateResourceFromRepresentationMap("oci_core_route_table", "test_route_table_2", Required, Create, routeTableRepresentation) +
9092
GenerateResourceFromRepresentationMap("oci_core_vcn", "test_vcn", Required, Create, vcnRepresentation) +
9193
DefinedTagsDependencies
9294
)
@@ -419,3 +421,84 @@ func drgAttachmentSweepResponseFetchOperation(client *OracleClients, resourceId
419421
})
420422
return err
421423
}
424+
425+
// Adding a test case for testing the Update request. Updating both drg_route_table_id from and route_table_id simultaneously.
426+
func TestCoreDrgAttachmentUpdateRequest_basic(t *testing.T) {
427+
httpreplay.SetScenario("TestCoreDrgAttachmentResource_basic")
428+
defer httpreplay.SaveScenario()
429+
config := testProviderConfig()
430+
431+
compartmentId := getEnvSettingWithBlankDefault("compartment_ocid")
432+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
433+
434+
resourceName := "oci_core_drg_attachment.test_drg_attachment"
435+
436+
var resId, resId2 string
437+
// 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.
438+
SaveConfigContent(config+compartmentIdVariableStr+DrgAttachmentResourceDependencies+
439+
GenerateResourceFromRepresentationMap("oci_core_drg_attachment", "test_drg_attachment", Optional, Create, drgAttachmentRepresentation), "core", "drgAttachment", t)
440+
441+
ResourceTest(t, testAccCheckCoreDrgAttachmentDestroy, []resource.TestStep{
442+
//verify create with optionals
443+
{
444+
Config: config + compartmentIdVariableStr + DrgAttachmentResourceDependencies +
445+
GenerateResourceFromRepresentationMap("oci_core_drg_attachment", "test_drg_attachment", Optional, Create, drgAttachmentRepresentation),
446+
Check: ComposeAggregateTestCheckFuncWrapper(
447+
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
448+
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "3"),
449+
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"),
450+
resource.TestCheckResourceAttrSet(resourceName, "drg_id"),
451+
resource.TestCheckResourceAttrSet(resourceName, "drg_route_table_id"),
452+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
453+
resource.TestCheckResourceAttrSet(resourceName, "id"),
454+
resource.TestCheckResourceAttr(resourceName, "network_details.#", "1"),
455+
resource.TestCheckResourceAttrSet(resourceName, "network_details.0.id"),
456+
resource.TestCheckResourceAttrSet(resourceName, "network_details.0.route_table_id"),
457+
resource.TestCheckResourceAttr(resourceName, "network_details.0.type", "VCN"),
458+
resource.TestCheckResourceAttrSet(resourceName, "route_table_id"),
459+
resource.TestCheckResourceAttrSet(resourceName, "state"),
460+
resource.TestCheckResourceAttrSet(resourceName, "vcn_id"),
461+
func(s *terraform.State) (err error) {
462+
resId, err = FromInstanceState(s, resourceName, "id")
463+
return err
464+
},
465+
),
466+
},
467+
468+
//verify, updates to updatable parameters
469+
{
470+
Config: config + compartmentIdVariableStr + DrgAttachmentResourceDependencies +
471+
GenerateResourceFromRepresentationMap("oci_core_drg_attachment", "test_drg_attachment", Optional, Update, drgAttachmentRepresentation),
472+
Check: ComposeAggregateTestCheckFuncWrapper(
473+
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
474+
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "3"),
475+
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
476+
resource.TestCheckResourceAttrSet(resourceName, "drg_id"),
477+
resource.TestCheckResourceAttrSet(resourceName, "drg_route_table_id"),
478+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
479+
resource.TestCheckResourceAttrSet(resourceName, "id"),
480+
resource.TestCheckResourceAttr(resourceName, "network_details.#", "1"),
481+
resource.TestCheckResourceAttrSet(resourceName, "network_details.0.id"),
482+
resource.TestCheckResourceAttrSet(resourceName, "network_details.0.route_table_id"),
483+
resource.TestCheckResourceAttr(resourceName, "network_details.0.type", "VCN"),
484+
resource.TestCheckResourceAttrSet(resourceName, "route_table_id"),
485+
resource.TestCheckResourceAttrSet(resourceName, "state"),
486+
resource.TestCheckResourceAttrSet(resourceName, "vcn_id"),
487+
488+
func(s *terraform.State) (err error) {
489+
resId2, err = FromInstanceState(s, resourceName, "id")
490+
if resId != resId2 {
491+
return fmt.Errorf("Resource recreated when it was supposed to be updated.")
492+
}
493+
return err
494+
},
495+
),
496+
},
497+
498+
//delete, before next create
499+
{
500+
Config: config + compartmentIdVariableStr + DrgAttachmentResourceDependencies +
501+
GenerateResourceFromRepresentationMap("oci_core_drg_attachment", "test_drg_attachment", Optional, Update, drgAttachmentRepresentation),
502+
},
503+
})
504+
}

oci/core_drg_resource.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ func (s *CoreDrgResourceCrud) Update() error {
253253
}
254254
request := oci_core.UpdateDrgRequest{}
255255

256-
if defaultDrgRouteTables, ok := s.D.GetOkExists("default_drg_route_tables"); ok {
256+
if defaultDrgRouteTables, ok := s.D.GetOkExists("default_drg_route_tables"); ok && s.D.HasChange("default_drg_route_tables") {
257257
if tmpList := defaultDrgRouteTables.([]interface{}); len(tmpList) > 0 {
258258
fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "default_drg_route_tables", 0)
259259
tmp, err := s.mapToDefaultDrgRouteTables(fieldKeyFormat)
@@ -264,23 +264,23 @@ func (s *CoreDrgResourceCrud) Update() error {
264264
}
265265
}
266266

267-
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
267+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok && s.D.HasChange("defined_tags") {
268268
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
269269
if err != nil {
270270
return err
271271
}
272272
request.DefinedTags = convertedDefinedTags
273273
}
274274

275-
if displayName, ok := s.D.GetOkExists("display_name"); ok {
275+
if displayName, ok := s.D.GetOkExists("display_name"); ok && s.D.HasChange("display_name") {
276276
tmp := displayName.(string)
277277
request.DisplayName = &tmp
278278
}
279279

280280
tmp := s.D.Id()
281281
request.DrgId = &tmp
282282

283-
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
283+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok && s.D.HasChange("freeform_tags") {
284284
request.FreeformTags = ObjectMapToStringMap(freeformTags.(map[string]interface{}))
285285
}
286286

oci/core_drg_route_distribution_resource.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,23 +203,23 @@ func (s *CoreDrgRouteDistributionResourceCrud) Get() error {
203203
func (s *CoreDrgRouteDistributionResourceCrud) Update() error {
204204
request := oci_core.UpdateDrgRouteDistributionRequest{}
205205

206-
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
206+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok && s.D.HasChange("defined_tags") {
207207
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
208208
if err != nil {
209209
return err
210210
}
211211
request.DefinedTags = convertedDefinedTags
212212
}
213213

214-
if displayName, ok := s.D.GetOkExists("display_name"); ok {
214+
if displayName, ok := s.D.GetOkExists("display_name"); ok && s.D.HasChange("display_name") {
215215
tmp := displayName.(string)
216216
request.DisplayName = &tmp
217217
}
218218

219219
tmp := s.D.Id()
220220
request.DrgRouteDistributionId = &tmp
221221

222-
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
222+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok && s.D.HasChange("freeform_tags") {
223223
request.FreeformTags = ObjectMapToStringMap(freeformTags.(map[string]interface{}))
224224
}
225225

oci/core_drg_route_distribution_statement_resource.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ func (s *CoreDrgRouteDistributionStatementResourceCrud) Update() error {
248248
statement := oci_core.UpdateDrgRouteDistributionStatementDetails{}
249249
statement.Id = &statementId
250250

251-
if matchCriteria, ok := s.D.GetOkExists("match_criteria"); ok {
251+
if matchCriteria, ok := s.D.GetOkExists("match_criteria"); ok && s.D.HasChange("match_criteria") {
252252
if tmpList := matchCriteria.([]interface{}); len(tmpList) > 0 {
253253
fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "match_criteria", 0)
254254

@@ -261,7 +261,7 @@ func (s *CoreDrgRouteDistributionStatementResourceCrud) Update() error {
261261
}
262262
}
263263

264-
if priority, ok := s.D.GetOkExists("priority"); ok {
264+
if priority, ok := s.D.GetOkExists("priority"); ok && s.D.HasChange("priority") {
265265
tmp := priority.(int)
266266
statement.Priority = &tmp
267267
}

oci/core_drg_route_table_resource.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,34 +236,34 @@ func (s *CoreDrgRouteTableResourceCrud) Get() error {
236236
func (s *CoreDrgRouteTableResourceCrud) Update() error {
237237
request := oci_core.UpdateDrgRouteTableRequest{}
238238

239-
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
239+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok && s.D.HasChange("defined_tags") {
240240
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
241241
if err != nil {
242242
return err
243243
}
244244
request.DefinedTags = convertedDefinedTags
245245
}
246246

247-
if displayName, ok := s.D.GetOkExists("display_name"); ok {
247+
if displayName, ok := s.D.GetOkExists("display_name"); ok && s.D.HasChange("display_name") {
248248
tmp := displayName.(string)
249249
request.DisplayName = &tmp
250250
}
251251

252252
tmp := s.D.Id()
253253
request.DrgRouteTableId = &tmp
254254

255-
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
255+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok && s.D.HasChange("freeform_tags") {
256256
request.FreeformTags = ObjectMapToStringMap(freeformTags.(map[string]interface{}))
257257
}
258258

259-
if importDrgRouteDistributionId, ok := s.D.GetOkExists("import_drg_route_distribution_id"); ok {
259+
if importDrgRouteDistributionId, ok := s.D.GetOkExists("import_drg_route_distribution_id"); ok && s.D.HasChange("import_drg_route_distribution_id") {
260260
if importDrgRouteDistributionId != nil && importDrgRouteDistributionId != "" {
261261
tmp := importDrgRouteDistributionId.(string)
262262
request.ImportDrgRouteDistributionId = &tmp
263263
}
264264
}
265265

266-
if isEcmpEnabled, ok := s.D.GetOkExists("is_ecmp_enabled"); ok {
266+
if isEcmpEnabled, ok := s.D.GetOkExists("is_ecmp_enabled"); ok && s.D.HasChange("is_ecmp_enabled") {
267267
tmp := isEcmpEnabled.(bool)
268268
request.IsEcmpEnabled = &tmp
269269
}

oci/core_drg_route_table_route_rule_resource.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,16 +293,16 @@ func (s *CoreDrgRouteTableRouteRuleResourceCrud) Update() error {
293293
updateDrgRouteTableDetails := oci_core.UpdateDrgRouteRuleDetails{}
294294
updateDrgRouteTableDetails.Id = &drgRouteRuleId
295295

296-
if destination, ok := s.D.GetOkExists("destination"); ok {
296+
if destination, ok := s.D.GetOkExists("destination"); ok && s.D.HasChange("destination") {
297297
tmp := destination.(string)
298298
updateDrgRouteTableDetails.Destination = &tmp
299299
}
300300

301-
if destinationType, ok := s.D.GetOkExists("destination_type"); ok {
301+
if destinationType, ok := s.D.GetOkExists("destination_type"); ok && s.D.HasChange("destination_type") {
302302
updateDrgRouteTableDetails.DestinationType = oci_core.UpdateDrgRouteRuleDetailsDestinationTypeEnum(destinationType.(string))
303303
}
304304

305-
if nextHopDrgAttachmentId, ok := s.D.GetOkExists("next_hop_drg_attachment_id"); ok {
305+
if nextHopDrgAttachmentId, ok := s.D.GetOkExists("next_hop_drg_attachment_id"); ok && s.D.HasChange("next_hop_drg_attachment_id") {
306306
tmp := nextHopDrgAttachmentId.(string)
307307
updateDrgRouteTableDetails.NextHopDrgAttachmentId = &tmp
308308
}

0 commit comments

Comments
 (0)