diff --git a/resource_compute_route.go b/resource_compute_route.go index 6e39a413..ac5760f9 100644 --- a/resource_compute_route.go +++ b/resource_compute_route.go @@ -118,7 +118,11 @@ func resourceComputeRouteCreate(d *schema.ResourceData, meta interface{}) error nextHopIp = v.(string) } if v, ok := d.GetOk("next_hop_gateway"); ok { - nextHopGateway = v.(string) + if v == "default-internet-gateway" { + nextHopGateway = fmt.Sprintf("projects/%s/global/gateways/default-internet-gateway", project) + } else { + nextHopGateway = v.(string) + } } if v, ok := d.GetOk("next_hop_vpn_tunnel"); ok { nextHopVpnTunnel = v.(string) diff --git a/resource_compute_route_test.go b/resource_compute_route_test.go index dff2ed00..24ef0cf2 100644 --- a/resource_compute_route_test.go +++ b/resource_compute_route_test.go @@ -29,6 +29,25 @@ func TestAccComputeRoute_basic(t *testing.T) { }) } +func TestAccComputeRoute_defaultInternetGateway(t *testing.T) { + var route compute.Route + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckComputeRouteDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccComputeRoute_defaultInternetGateway, + Check: resource.ComposeTestCheckFunc( + testAccCheckComputeRouteExists( + "google_compute_route.foobar", &route), + ), + }, + }, + }) +} + func testAccCheckComputeRouteDestroy(s *terraform.State) error { config := testAccProvider.Meta().(*Config) @@ -89,3 +108,17 @@ resource "google_compute_route" "foobar" { next_hop_ip = "10.0.1.5" priority = 100 }`, acctest.RandString(10), acctest.RandString(10)) + +var testAccComputeRoute_defaultInternetGateway = fmt.Sprintf(` +resource "google_compute_network" "foobar" { + name = "route-test-%s" + ipv4_range = "10.0.0.0/16" +} + +resource "google_compute_route" "foobar" { + name = "route-test-%s" + dest_range = "0.0.0.0/0" + network = "${google_compute_network.foobar.name}" + next_hop_gateway = "default-internet-gateway" + priority = 100 +}`, acctest.RandString(10), acctest.RandString(10))