Skip to content

Commit 342bb1f

Browse files
committed
PATCH: Format rules that should be deleted
1 parent 8aa9fd7 commit 342bb1f

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

cloudamqp/resource_cloudamqp_security_firewall.go

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,15 +204,36 @@ func resourceSecurityFirewallUpdate(d *schema.ResourceData, meta interface{}) er
204204
}
205205

206206
func resourceSecurityFirewallDelete(d *schema.ResourceData, meta interface{}) error {
207+
var (
208+
api = meta.(*api.API)
209+
instanceID = d.Get("instance_id").(int)
210+
sleep = d.Get("sleep").(int)
211+
timeout = d.Get("timeout").(int)
212+
replace = d.Get("replace").(bool)
213+
)
214+
207215
if enableFasterInstanceDestroy == true {
208216
log.Printf("[DEBUG] cloudamqp::resource::security_firewall::delete skip calling backend.")
209217
return nil
210218
}
211219

212-
api := meta.(*api.API)
213-
log.Printf("[DEBUG] cloudamqp::resource::security_firewall::delete instance id: %v", d.Get("instance_id"))
214-
data, err := api.DeleteFirewallSettings(d.Get("instance_id").(int), d.Get("sleep").(int), d.Get("timeout").(int))
215-
d.Set("rules", data)
220+
if replace {
221+
data, err := api.DeleteFirewallSettings(instanceID, sleep, timeout)
222+
d.Set("rules", data)
223+
return err
224+
}
225+
226+
var params []map[string]interface{}
227+
localFirewalls := d.Get("rules").(*schema.Set).List()
228+
log.Printf("[DEBUG] Delete firewall rules: %v", localFirewalls)
229+
for _, k := range localFirewalls {
230+
rule := k.(map[string]interface{})
231+
rule["services"] = []string{}
232+
rule["ports"] = []int{}
233+
params = append(params, rule)
234+
}
235+
log.Printf("[DEBUG] Delete firewall params: %v", params)
236+
err := api.PatchFirewallSettings(instanceID, params, sleep, timeout)
216237
return err
217238
}
218239

0 commit comments

Comments
 (0)