From 2779e26b6c8cce0a5675ea78b14a246cea24da32 Mon Sep 17 00:00:00 2001 From: The Magician Date: Fri, 5 Apr 2019 11:10:12 -0700 Subject: [PATCH] [terraform] update cidr_blocks to fix ipv6 parsing issues and improve testing (#3390) Original Author: @benkevan --- google/data_source_google_netblock_ip_ranges.go | 17 +++++++---------- ...ata_source_google_netblock_ip_ranges_test.go | 6 +++--- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/google/data_source_google_netblock_ip_ranges.go b/google/data_source_google_netblock_ip_ranges.go index 0a7c69b0..0af86f26 100644 --- a/google/data_source_google_netblock_ip_ranges.go +++ b/google/data_source_google_netblock_ip_ranges.go @@ -102,19 +102,16 @@ func getCidrBlocks() (map[string][]string, error) { splitedResponse = strings.Split(response, " ") for _, sp := range splitedResponse { - if strings.HasPrefix(sp, "ip") { - - cdrBlock := strings.Split(sp, ":")[1] + if strings.HasPrefix(sp, "ip4") { + cdrBlock := strings.Replace(sp, "ip4:", "", 1) + cidrBlocks["cidr_blocks_ipv4"] = append(cidrBlocks["cidr_blocks_ipv4"], cdrBlock) cidrBlocks["cidr_blocks"] = append(cidrBlocks["cidr_blocks"], cdrBlock) - if strings.HasPrefix(sp, "ip4") { - cdrBlock := strings.Replace(sp, "ip4:", "", 1) - cidrBlocks["cidr_blocks_ipv4"] = append(cidrBlocks["cidr_blocks_ipv4"], cdrBlock) + } else if strings.HasPrefix(sp, "ip6") { + cdrBlock := strings.Replace(sp, "ip6:", "", 1) + cidrBlocks["cidr_blocks_ipv6"] = append(cidrBlocks["cidr_blocks_ipv6"], cdrBlock) + cidrBlocks["cidr_blocks"] = append(cidrBlocks["cidr_blocks"], cdrBlock) - } else if strings.HasPrefix(sp, "ip6") { - cdrBlock := strings.Replace(sp, "ip6:", "", 1) - cidrBlocks["cidr_blocks_ipv6"] = append(cidrBlocks["cidr_blocks_ipv6"], cdrBlock) - } } else if strings.HasPrefix(sp, "include:") { cidr_block := strings.Replace(sp, "include:", "", 1) dnsNetblockList = append(dnsNetblockList, cidr_block) diff --git a/google/data_source_google_netblock_ip_ranges_test.go b/google/data_source_google_netblock_ip_ranges_test.go index eb048cca..9f7b9a81 100644 --- a/google/data_source_google_netblock_ip_ranges_test.go +++ b/google/data_source_google_netblock_ip_ranges_test.go @@ -18,15 +18,15 @@ func TestAccDataSourceGoogleNetblockIpRanges_basic(t *testing.T) { resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some", "cidr_blocks.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))), resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some", - "cidr_blocks.0", regexp.MustCompile("^[0-9./:]+$")), + "cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")), resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some", "cidr_blocks_ipv4.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))), resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some", - "cidr_blocks_ipv4.0", regexp.MustCompile("^[0-9./]+$")), + "cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")), resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some", "cidr_blocks_ipv6.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))), resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some", - "cidr_blocks_ipv6.0", regexp.MustCompile("^[0-9./:]+$")), + "cidr_blocks_ipv6.0", regexp.MustCompile("^(?:[0-9a-fA-F]{1,4}:){1,2}.*/[0-9]{1,3}$")), ), }, },