Store vpn_tunnel.router as a self_link. Fixes #1963. (#2003)

<!-- This change is generated by MagicModules. -->
/cc @danawillow
This commit is contained in:
The Magician 2018-09-07 15:36:34 -07:00 committed by Dana Hoffman
parent 6969ce5b4e
commit 8212820076
3 changed files with 27 additions and 48 deletions

View File

@ -672,6 +672,9 @@ func expandComputeAutoscalerAutoscalingPolicyLoadBalancingUtilizationTarget(v in
}
func expandComputeAutoscalerTarget(v interface{}, d *schema.ResourceData, config *Config) (interface{}, error) {
if v == nil || v.(string) == "" {
return "", nil
}
f, err := parseZonalFieldValue("instanceGroupManagers", v.(string), "project", "zone", d, config, true)
if err != nil {
return nil, fmt.Errorf("Invalid value for target: %s", err)

View File

@ -176,9 +176,10 @@ func resourceComputeVpnTunnel() *schema.Resource {
ForceNew: true,
},
"router": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Type: schema.TypeString,
Optional: true,
ForceNew: true,
DiffSuppressFunc: compareSelfLinkOrResourceName,
},
"ike_version": {
Type: schema.TypeInt,
@ -557,7 +558,7 @@ func flattenComputeVpnTunnelRouter(v interface{}) interface{} {
if v == nil {
return v
}
return NameFromSelfLinkStateFunc(v)
return ConvertSelfLinkToV1(v.(string))
}
func flattenComputeVpnTunnelPeerIp(v interface{}) interface{} {

View File

@ -21,14 +21,12 @@ func TestAccComputeVpnTunnel_basic(t *testing.T) {
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccComputeVpnTunnel_basic(),
Check: resource.ComposeTestCheckFunc(
testAccCheckComputeVpnTunnelExists(
"google_compute_vpn_tunnel.foobar"),
resource.TestCheckResourceAttr(
"google_compute_vpn_tunnel.foobar", "local_traffic_selector.#", "1"),
resource.TestCheckResourceAttr(
"google_compute_vpn_tunnel.foobar", "remote_traffic_selector.#", "2"),
),
},
resource.TestStep{
ResourceName: "google_compute_vpn_tunnel.foobar",
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"shared_secret"},
},
},
})
@ -45,12 +43,12 @@ func TestAccComputeVpnTunnel_router(t *testing.T) {
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccComputeVpnTunnelRouter(router),
Check: resource.ComposeTestCheckFunc(
testAccCheckComputeVpnTunnelExists(
"google_compute_vpn_tunnel.foobar"),
resource.TestCheckResourceAttr(
"google_compute_vpn_tunnel.foobar", "router", router),
),
},
resource.TestStep{
ResourceName: "google_compute_vpn_tunnel.foobar",
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"shared_secret"},
},
},
})
@ -66,8 +64,12 @@ func TestAccComputeVpnTunnel_defaultTrafficSelectors(t *testing.T) {
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccComputeVpnTunnelDefaultTrafficSelectors(),
Check: testAccCheckComputeVpnTunnelExists(
"google_compute_vpn_tunnel.foobar"),
},
resource.TestStep{
ResourceName: "google_compute_vpn_tunnel.foobar",
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"shared_secret"},
},
},
})
@ -98,33 +100,6 @@ func testAccCheckComputeVpnTunnelDestroy(s *terraform.State) error {
return nil
}
func testAccCheckComputeVpnTunnelExists(n string) resource.TestCheckFunc {
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n]
if !ok {
return fmt.Errorf("Not found: %s", n)
}
if rs.Primary.ID == "" {
return fmt.Errorf("No ID is set")
}
config := testAccProvider.Meta().(*Config)
name := rs.Primary.Attributes["name"]
region := rs.Primary.Attributes["region"]
project := config.Project
vpnTunnelsService := compute.NewVpnTunnelsService(config.clientCompute)
_, err := vpnTunnelsService.Get(project, region, name).Do()
if err != nil {
return fmt.Errorf("Error Reading VPN Tunnel %s: %s", name, err)
}
return nil
}
}
func testAccComputeVpnTunnel_basic() string {
return fmt.Sprintf(`
resource "google_compute_network" "foobar" {
@ -239,7 +214,7 @@ func testAccComputeVpnTunnelRouter(router string) string {
target_vpn_gateway = "${google_compute_vpn_gateway.foobar.self_link}"
shared_secret = "unguessable"
peer_ip = "8.8.8.8"
router = "${google_compute_router.foobar.name}"
router = "${google_compute_router.foobar.self_link}"
}
`, testId, testId, testId, testId, testId, testId, testId, router, testId)
}