func resourceFWPolicyV1Delete(d *schema.ResourceData, meta interface{}) error { log.Printf("[DEBUG] Destroy firewall policy: %s", d.Id()) config := meta.(*Config) networkingClient, err := config.networkingV2Client(d.Get("region").(string)) if err != nil { return fmt.Errorf("Error creating OpenStack networking client: %s", err) } for i := 0; i < 15; i++ { err = policies.Delete(networkingClient, d.Id()).Err if err == nil { break } httpError, ok := err.(*gophercloud.UnexpectedResponseCodeError) if !ok || httpError.Actual != 409 { return err } // This error usually means that the policy is attached // to a firewall. At this point, the firewall is probably // being delete. So, we retry a few times. time.Sleep(time.Second * 2) } return err }
func deletePolicy(t *testing.T, policyID string) { res := policies.Delete(base.Client, policyID) th.AssertNoErr(t, res.Err) t.Logf("Deleted policy %s", policyID) }