Skip to content

Commit 95ec9a9

Browse files
author
Brett Mack
committed
Refresh firewall rules after each failure before trying to append new rules
1 parent 965882b commit 95ec9a9

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

builtin/providers/vcd/resource_vcd_firewall_rules.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,19 @@ func resourceVcdFirewallRulesCreate(d *schema.ResourceData, meta interface{}) er
8989
defer vcd_client.Mutex.Unlock()
9090

9191
edgeGateway, err := vcd_client.OrgVdc.FindEdgeGateway(d.Get("edge_gateway").(string))
92-
93-
firewallRules, _ := expandFirewallRules(d.Get("rule").(*schema.Set).List(), edgeGateway.EdgeGateway)
94-
95-
task, err := edgeGateway.CreateFirewallRules(d.Get("default_action").(string), firewallRules)
9692
if err != nil {
97-
return fmt.Errorf("Error setting firewall rules: %#v", err)
93+
return fmt.Errorf("Unable to find edge gateway: %s", err)
9894
}
99-
err = task.WaitTaskCompletion()
95+
96+
err = retryCall(5, func() error {
97+
edgeGateway.Refresh()
98+
firewallRules, _ := expandFirewallRules(d.Get("rule").(*schema.Set).List(), edgeGateway.EdgeGateway)
99+
task, err := edgeGateway.CreateFirewallRules(d.Get("default_action").(string), firewallRules)
100+
if err != nil {
101+
return fmt.Errorf("Error setting firewall rules: %#v", err)
102+
}
103+
return task.WaitTaskCompletion()
104+
})
100105
if err != nil {
101106
return fmt.Errorf("Error completing tasks: %#v", err)
102107
}

0 commit comments

Comments
 (0)