diff --git a/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/requests.go b/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/requests.go index 74f76ade6..aa38abfea 100644 --- a/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/requests.go +++ b/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/requests.go @@ -195,8 +195,8 @@ func Update(c *golangsdk.ServiceClient, id string, opts UpdateOpts) (r UpdateRes } // Delete will permanently delete a particular LoadBalancer based on its unique ID. -func Delete(c *golangsdk.ServiceClient, id string) (r DeleteResult) { - _, r.Err = c.Delete2(resourceURL(c, id), &r.Body, &golangsdk.RequestOpts{ +func Delete(c *golangsdk.ServiceClient, id string, keepEIP bool) (r DeleteResult) { + _, r.Err = c.Delete2(deleteURL(c, id, keepEIP), &r.Body, &golangsdk.RequestOpts{ OkCodes: []int{200}, }) return diff --git a/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/urls.go b/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/urls.go index 141a36914..7648cf934 100644 --- a/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/urls.go +++ b/openstack/networking/v2/extensions/elbaas/loadbalancer_elbs/urls.go @@ -14,3 +14,10 @@ func rootURL(c *golangsdk.ServiceClient) string { func resourceURL(c *golangsdk.ServiceClient, id string) string { return c.ServiceURL(rootPath, resourcePath, id) } + +func deleteURL(c *golangsdk.ServiceClient, id string, keepEIP bool) string { + if keepEIP { + return c.ServiceURL(rootPath, resourcePath, id, "keep-eip") + } + return c.ServiceURL(rootPath, resourcePath, id) +}