cmd/gitops-pusher: correctly handle ACL tests failing (#5016)

Apparently the API for running ACL tests returns a 200 if the ACL tests
fail. This is weird, but we can handle it.

Signed-off-by: Xe <xe@tailscale.com>
This commit is contained in:
Xe Iaso 2022-07-08 10:53:50 -04:00 committed by GitHub
parent c7993d2b88
commit 5bb44a4a5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 7 deletions

View File

@ -132,7 +132,13 @@ func applyNewACL(ctx context.Context, tailnet, apiKey, policyFname, oldEtag stri
got := resp.StatusCode got := resp.StatusCode
want := http.StatusOK want := http.StatusOK
if got != want { if got != want {
return fmt.Errorf("wanted HTTP status code %d but got %d", want, got) var ate ACLTestError
err := json.NewDecoder(resp.Body).Decode(&ate)
if err != nil {
return err
}
return ate
} }
return nil return nil
@ -159,13 +165,19 @@ func testNewACLs(ctx context.Context, tailnet, apiKey, policyFname string) error
} }
defer resp.Body.Close() defer resp.Body.Close()
if resp.StatusCode != http.StatusOK { got := resp.StatusCode
var ate ACLTestError want := http.StatusOK
err := json.NewDecoder(resp.Body).Decode(&ate) if got != want {
if err != nil { return fmt.Errorf("wanted HTTP status code %d but got %d", want, got)
return err }
}
var ate ACLTestError
err = json.NewDecoder(resp.Body).Decode(&ate)
if err != nil {
return err
}
if len(ate.Data) != 0 {
return ate return ate
} }