From 9133ffe836da4a23e2588b8a5e5ed01fb1ee0051 Mon Sep 17 00:00:00 2001 From: Luiz Aoqui Date: Tue, 7 Dec 2021 17:37:44 -0500 Subject: [PATCH 1/3] api: return error when LicenseGet status is not 200 --- api/operator.go | 6 ++++++ api/operator_ent_test.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 api/operator_ent_test.go diff --git a/api/operator.go b/api/operator.go index 439fabe052e..c3343c5e4ce 100644 --- a/api/operator.go +++ b/api/operator.go @@ -3,6 +3,7 @@ package api import ( "encoding/json" "errors" + "fmt" "io" "io/ioutil" "strconv" @@ -338,6 +339,11 @@ func (op *Operator) LicenseGet(q *QueryOptions) (*LicenseReply, *QueryMeta, erro return nil, nil, errors.New("Nomad Enterprise only endpoint") } + if resp.StatusCode != 200 { + body, _ := io.ReadAll(resp.Body) + return nil, nil, fmt.Errorf("Unexpected response code: %d (%s)", resp.StatusCode, body) + } + err = json.NewDecoder(resp.Body).Decode(&reply) if err != nil { return nil, nil, err diff --git a/api/operator_ent_test.go b/api/operator_ent_test.go new file mode 100644 index 00000000000..dde79dddb31 --- /dev/null +++ b/api/operator_ent_test.go @@ -0,0 +1,28 @@ +//go:build ent +// +build ent + +package api + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestOperator_LicenseGet(t *testing.T) { + t.Parallel() + c, s, _ := makeACLClient(t, nil, nil) + defer s.Stop() + + operator := c.Operator() + + // Make atuhenticated request. + _, _, err := operator.LicenseGet(nil) + require.NoError(t, err) + + // Make unatuhenticated request. + c.SetSecretID("") + _, _, err = operator.LicenseGet(nil) + require.Error(t, err) + require.Contains(t, err.Error(), "403") +} From ecda8d60a717e916e320cb5f1243fac022350ace Mon Sep 17 00:00:00 2001 From: Luiz Aoqui Date: Tue, 7 Dec 2021 17:52:46 -0500 Subject: [PATCH 2/3] changelog: add entry for #11644 --- .changelog/11644.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/11644.txt diff --git a/.changelog/11644.txt b/.changelog/11644.txt new file mode 100644 index 00000000000..0980926fa1d --- /dev/null +++ b/.changelog/11644.txt @@ -0,0 +1,3 @@ +```release-note:improvement +api: Improve error message returned by `Operator.LicenseGet` +``` From afedb5aa3acfd94ddf43205cd913a8b1c79b860b Mon Sep 17 00:00:00 2001 From: Luiz Aoqui Date: Wed, 8 Dec 2021 19:20:29 -0500 Subject: [PATCH 3/3] fix typo --- api/operator_ent_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/operator_ent_test.go b/api/operator_ent_test.go index dde79dddb31..6be12845b41 100644 --- a/api/operator_ent_test.go +++ b/api/operator_ent_test.go @@ -16,11 +16,11 @@ func TestOperator_LicenseGet(t *testing.T) { operator := c.Operator() - // Make atuhenticated request. + // Make authenticated request. _, _, err := operator.LicenseGet(nil) require.NoError(t, err) - // Make unatuhenticated request. + // Make unauthenticated request. c.SetSecretID("") _, _, err = operator.LicenseGet(nil) require.Error(t, err)