diff options
author | Eirik Nygaard <eirik.nygaard@yahooinc.com> | 2022-08-23 09:54:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-23 09:54:55 +0200 |
commit | 8e096204bddca2292990aa0497f87dd2f44c181c (patch) | |
tree | d6228868a82ac2b4eb3b9841462d7b912cfd0a38 | |
parent | 1dca2f9010a2c58bf6d5666c5468c9bdf1e57791 (diff) | |
parent | d71b338105692e7b0f089a04827a942fb5fe0ba9 (diff) |
Merge pull request #23714 from vespa-engine/hmusum/fix-go-client-prepare
Handle response from prepare properly
-rw-r--r-- | client/go/cmd/deploy.go | 1 | ||||
-rw-r--r-- | client/go/cmd/deploy_test.go | 1 | ||||
-rw-r--r-- | client/go/vespa/deploy.go | 18 |
3 files changed, 19 insertions, 1 deletions
diff --git a/client/go/cmd/deploy.go b/client/go/cmd/deploy.go index e72667e49b6..012570c5471 100644 --- a/client/go/cmd/deploy.go +++ b/client/go/cmd/deploy.go @@ -132,6 +132,7 @@ func newPrepareCmd(cli *CLI) *cobra.Command { return fmt.Errorf("could not write session id: %w", err) } cli.printSuccess("Prepared ", color.CyanString(pkg.Path), " with session ", result.ID) + printPrepareLog(cli.Stderr, result) return nil }, } diff --git a/client/go/cmd/deploy_test.go b/client/go/cmd/deploy_test.go index fe3e0ca0467..e231591f94e 100644 --- a/client/go/cmd/deploy_test.go +++ b/client/go/cmd/deploy_test.go @@ -122,6 +122,7 @@ func assertPrepare(applicationPackage string, arguments []string, t *testing.T) t.Helper() client := &mock.HTTPClient{} client.NextResponseString(200, `{"session-id":"42"}`) + client.NextResponseString(200, `{"session-id":"42","message":"Session 42 for tenant 'default' prepared.","log":[{"level":"WARNING","message":"Warning message 1","time": 1430134091319}]}`) cli, stdout, _ := newTestCLI(t) cli.httpClient = client assert.Nil(t, cli.Run(arguments...)) diff --git a/client/go/vespa/deploy.go b/client/go/vespa/deploy.go index ad4fc5f3022..0e086979d72 100644 --- a/client/go/vespa/deploy.go +++ b/client/go/vespa/deploy.go @@ -143,7 +143,23 @@ func Prepare(deployment DeploymentOptions) (PrepareResult, error) { if err := checkResponse(req, response, serviceDescription); err != nil { return PrepareResult{}, err } - return result, nil + var jsonResponse struct { + SessionID string `json:"session-id"` + Log []LogLinePrepareResponse `json:"log"` + } + jsonDec := json.NewDecoder(response.Body) + if err := jsonDec.Decode(&jsonResponse); err != nil { + return PrepareResult{}, err + } + var id int64 + id, err = strconv.ParseInt(jsonResponse.SessionID, 10, 64) + if err != nil { + return PrepareResult{}, err + } + return PrepareResult{ + ID: id, + LogLines: jsonResponse.Log, + }, err } // Activate deployment with sessionID from a past prepare |