From b14e31831a1d444dbbdf482a98a2c45b0f57e8ae Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Thu, 1 Sep 2022 13:38:32 -0400 Subject: [PATCH] cmd/gitops-pusher: standardize hujson before posting to validate (#5525) Apparently the validate route doesn't check content-types or handle hujson with comments correctly. This patch makes gitops-pusher convert the hujson to normal json. Signed-off-by: Xe Signed-off-by: Xe (cherry picked from commit 3564fd61b5f51ef8ad709740b802bc7e0ec719aa) --- cmd/gitops-pusher/gitops-pusher.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmd/gitops-pusher/gitops-pusher.go b/cmd/gitops-pusher/gitops-pusher.go index ebdd69eaa..ca81fdd38 100644 --- a/cmd/gitops-pusher/gitops-pusher.go +++ b/cmd/gitops-pusher/gitops-pusher.go @@ -8,6 +8,7 @@ package main import ( + "bytes" "context" "crypto/sha256" "encoding/json" @@ -264,13 +265,16 @@ func applyNewACL(ctx context.Context, tailnet, apiKey, policyFname, oldEtag stri } func testNewACLs(ctx context.Context, tailnet, apiKey, policyFname string) error { - fin, err := os.Open(policyFname) + data, err := os.ReadFile(policyFname) + if err != nil { + return err + } + data, err = hujson.Standardize(data) if err != nil { return err } - defer fin.Close() - req, err := http.NewRequestWithContext(ctx, http.MethodPost, fmt.Sprintf("https://api.tailscale.com/api/v2/tailnet/%s/acl/validate", tailnet), fin) + req, err := http.NewRequestWithContext(ctx, http.MethodPost, fmt.Sprintf("https://api.tailscale.com/api/v2/tailnet/%s/acl/validate", tailnet), bytes.NewBuffer(data)) if err != nil { return err }