From 55973e3b9ac82244c11a6e99978ffd915310d56c Mon Sep 17 00:00:00 2001 From: Uzair Ali <72073401+uzaxirr@users.noreply.github.com> Date: Mon, 24 Jun 2024 13:21:12 +0530 Subject: [PATCH] Create Default firewall for network when not specified. (#230) * Create Default firewall for network when not specified. --- civo/network/resource_network.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/civo/network/resource_network.go b/civo/network/resource_network.go index 096d1e7..83be75a 100644 --- a/civo/network/resource_network.go +++ b/civo/network/resource_network.go @@ -2,6 +2,7 @@ package network import ( "context" + "fmt" "log" "time" @@ -137,6 +138,14 @@ func resourceNetworkCreate(ctx context.Context, d *schema.ResourceData, m interf return err } d.SetId(network.ID) + + // Create a default firewall for the network + log.Printf("[INFO] Creating default firewall for the network %s", d.Get("label").(string)) + err = createDefaultFirewall(apiClient, network.ID, network.Label) + if err != nil { + return err + } + return nil }, 10*time.Second, 2*time.Minute) @@ -259,3 +268,21 @@ func expandStringList(input interface{}) []string { } return result } + +// createDefaultFirewall function to create a default firewall +func createDefaultFirewall(apiClient *civogo.Client, networkID string, networkName string) error { + + firewallConfig := civogo.FirewallConfig{ + Name: fmt.Sprintf("%s-default", networkName), + NetworkID: networkID, + Region: apiClient.Region, + } + + // Create the default firewall + _, err := apiClient.NewFirewall(&firewallConfig) + if err != nil { + return err + } + + return nil +}