From 64919225622acba5de4333875d8fce657d08710b Mon Sep 17 00:00:00 2001 From: Angus Lees Date: Tue, 2 Jun 2015 13:42:32 +1000 Subject: [PATCH] Catch 404 and return exists=false from GetTCPLoadBalancer Previouly getVipByName treated 404 like any other unexpected error return and passed it up the chain. This caused the "if ErrNotFound then exists=false" logic in GetTCPLoadBalancer to never fire. This change teaches getVipByName to return ErrNotFound on a 404 server response. --- pkg/cloudprovider/openstack/openstack.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/cloudprovider/openstack/openstack.go b/pkg/cloudprovider/openstack/openstack.go index 2415114bddb..0ef02cb72df 100644 --- a/pkg/cloudprovider/openstack/openstack.go +++ b/pkg/cloudprovider/openstack/openstack.go @@ -463,6 +463,11 @@ func getVipByName(client *gophercloud.ServiceClient, name string) (*vips.Virtual return true, nil }) if err != nil { + if e, ok := err.(*gophercloud.UnexpectedResponseCodeError); ok { + if e.Actual == http.StatusNotFound { + return nil, ErrNotFound + } + } return nil, err }