From 8371d20cf0f93f45694ced9fe1352d6db94b5284 Mon Sep 17 00:00:00 2001 From: Joe Topjian Date: Mon, 5 Sep 2016 04:07:25 +0000 Subject: [PATCH] provider/openstack: gophercloud migration: router interface error response --- ...ource_openstack_networking_router_interface_v2.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go b/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go index 4db584edc3..6c0da6a2c9 100644 --- a/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go @@ -146,7 +146,7 @@ func waitForRouterInterfaceDelete(networkingClient *gophercloud.ServiceClient, d routerId := d.Get("router_id").(string) routerInterfaceId := d.Id() - log.Printf("[DEBUG] Attempting to delete OpenStack Router Interface %s.\n", routerInterfaceId) + log.Printf("[DEBUG] Attempting to delete OpenStack Router Interface %s.", routerInterfaceId) removeOpts := routers.RemoveInterfaceOpts{ SubnetID: d.Get("subnet_id").(string), @@ -168,10 +168,18 @@ func waitForRouterInterfaceDelete(networkingClient *gophercloud.ServiceClient, d log.Printf("[DEBUG] Successfully deleted OpenStack Router Interface %s", routerInterfaceId) return r, "DELETED", nil } + + if errCode, ok := err.(gophercloud.ErrUnexpectedResponseCode); ok { + if errCode.Actual == 409 { + log.Printf("[DEBUG] Received a 409 response. Interface still in use.") + return r, "ACTIVE", nil + } + } + return r, "ACTIVE", err } - log.Printf("[DEBUG] OpenStack Router Interface %s still active.\n", routerInterfaceId) + log.Printf("[DEBUG] OpenStack Router Interface %s still active.", routerInterfaceId) return r, "ACTIVE", nil } }