Skip to content

Commit 2fc2311

Browse files
[#9353] Make cloud router sort advertised_ip_ranges in state by config order (#10572) (#18228)
[upstream:43a016f81c954557aeaad7f4f8286774f294e70e] Signed-off-by: Modular Magician <magic-modules@google.com>
1 parent 22607be commit 2fc2311

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

google/services/compute/resource_compute_router.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -633,26 +633,30 @@ func flattenComputeRouterBgpAdvertisedIpRanges(v interface{}, d *schema.Resource
633633
return v
634634
}
635635
l := v.([]interface{})
636-
transformed := make([]interface{}, 0, len(l))
636+
apiData := make([]map[string]interface{}, 0, len(l))
637637
for _, raw := range l {
638638
original := raw.(map[string]interface{})
639639
if len(original) < 1 {
640640
// Do not include empty json objects coming back from the api
641641
continue
642642
}
643-
transformed = append(transformed, map[string]interface{}{
644-
"range": flattenComputeRouterBgpAdvertisedIpRangesRange(original["range"], d, config),
645-
"description": flattenComputeRouterBgpAdvertisedIpRangesDescription(original["description"], d, config),
643+
apiData = append(apiData, map[string]interface{}{
644+
"description": original["description"],
645+
"range": original["range"],
646646
})
647647
}
648-
return transformed
649-
}
650-
func flattenComputeRouterBgpAdvertisedIpRangesRange(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
651-
return v
652-
}
653-
654-
func flattenComputeRouterBgpAdvertisedIpRangesDescription(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
655-
return v
648+
configData := []map[string]interface{}{}
649+
if v, ok := d.GetOk("advertised_ip_ranges"); ok {
650+
for _, item := range v.([]interface{}) {
651+
configData = append(configData, item.(map[string]interface{}))
652+
}
653+
}
654+
sorted, err := tpgresource.SortMapsByConfigOrder(configData, apiData, "range")
655+
if err != nil {
656+
log.Printf("[ERROR] Could not support API response for advertisedIpRanges.0.range: %s", err)
657+
return apiData
658+
}
659+
return sorted
656660
}
657661

658662
func flattenComputeRouterBgpKeepaliveInterval(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {

google/services/compute/resource_compute_router_generated_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func TestAccComputeRouter_routerBasicExample(t *testing.T) {
4949
ResourceName: "google_compute_router.foobar",
5050
ImportState: true,
5151
ImportStateVerify: true,
52-
ImportStateVerifyIgnore: []string{"network", "region"},
52+
ImportStateVerifyIgnore: []string{"advertisedIpRanges", "network", "region"},
5353
},
5454
},
5555
})
@@ -99,7 +99,7 @@ func TestAccComputeRouter_computeRouterEncryptedInterconnectExample(t *testing.T
9999
ResourceName: "google_compute_router.encrypted-interconnect-router",
100100
ImportState: true,
101101
ImportStateVerify: true,
102-
ImportStateVerifyIgnore: []string{"network", "region"},
102+
ImportStateVerifyIgnore: []string{"advertisedIpRanges", "network", "region"},
103103
},
104104
},
105105
})

0 commit comments

Comments
 (0)