From 8150e7421c55dea354e239e618acb9d1160b53da Mon Sep 17 00:00:00 2001 From: Uzair Ali <72073401+uzaxirr@users.noreply.github.com> Date: Mon, 2 Sep 2024 15:56:25 +0530 Subject: [PATCH] Decode Base64 script before saving state (#336) * Decode Base64 script before saving state --- civo/instances/resource_instance.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/civo/instances/resource_instance.go b/civo/instances/resource_instance.go index e21f13d1..285a8471 100644 --- a/civo/instances/resource_instance.go +++ b/civo/instances/resource_instance.go @@ -2,6 +2,7 @@ package instances import ( "context" + "encoding/base64" "errors" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" "log" @@ -361,6 +362,16 @@ func resourceInstanceRead(_ context.Context, d *schema.ResourceData, m interface d.Set("initial_password", "") } + if resp.Script == "" { + d.Set("script", "") + } + + decodedScript, err := base64.StdEncoding.DecodeString(resp.Script) + if err != nil { + return diag.Errorf("[ERR] failed to decode base64 script: %s", err) + } + + d.Set("script", string(decodedScript)) d.Set("hostname", resp.Hostname) d.Set("reverse_dns", resp.ReverseDNS) d.Set("size", resp.Size) @@ -377,7 +388,6 @@ func resourceInstanceRead(_ context.Context, d *schema.ResourceData, m interface d.Set("network_id", resp.NetworkID) d.Set("firewall_id", resp.FirewallID) d.Set("status", resp.Status) - d.Set("script", resp.Script) d.Set("created_at", resp.CreatedAt.UTC().String()) d.Set("notes", resp.Notes) d.Set("disk_image", diskImg.ID)