aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/internal/cli/cmd/deploy.go
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-08-18 10:25:21 +0200
committerMartin Polden <mpolden@mpolden.no>2023-08-21 14:27:17 +0200
commit7b4f133606eebb8d10100bb72de8df1e2a98dd17 (patch)
treeddb54e9f6aca62fd4ed16b2b08de3d660178f914 /client/go/internal/cli/cmd/deploy.go
parent8fbbe2b40cd7e4e00d9694e31534ea51dd47f264 (diff)
Wait for deploy service
Diffstat (limited to 'client/go/internal/cli/cmd/deploy.go')
-rw-r--r--client/go/internal/cli/cmd/deploy.go21
1 files changed, 20 insertions, 1 deletions
diff --git a/client/go/internal/cli/cmd/deploy.go b/client/go/internal/cli/cmd/deploy.go
index 09ad06da627..b037a953b53 100644
--- a/client/go/internal/cli/cmd/deploy.go
+++ b/client/go/internal/cli/cmd/deploy.go
@@ -73,6 +73,9 @@ $ vespa deploy -t cloud -z perf.aws-us-east-1c`,
return err
}
}
+ if err := waitForDeployService(cli, target, timeout); err != nil {
+ return err
+ }
var result vespa.PrepareResult
if err := cli.spinner(cli.Stderr, "Uploading application package ...", func() error {
result, err = vespa.Deploy(opts)
@@ -84,7 +87,7 @@ $ vespa deploy -t cloud -z perf.aws-us-east-1c`,
if opts.Target.IsCloud() {
cli.printSuccess("Triggered deployment of ", color.CyanString(pkg.Path), " with run ID ", color.CyanString(strconv.FormatInt(result.ID, 10)))
} else {
- cli.printSuccess("Deployed ", color.CyanString(pkg.Path))
+ cli.printSuccess("Deployed ", color.CyanString(pkg.Path), " with session ID ", color.CyanString(strconv.FormatInt(result.ID, 10)))
printPrepareLog(cli.Stderr, result)
}
if opts.Target.IsCloud() {
@@ -158,6 +161,9 @@ func newActivateCmd(cli *CLI) *cobra.Command {
return err
}
timeout := time.Duration(waitSecs) * time.Second
+ if err := waitForDeployService(cli, target, timeout); err != nil {
+ return err
+ }
opts := vespa.DeploymentOptions{Target: target, Timeout: timeout}
err = vespa.Activate(sessionID, opts)
if err != nil {
@@ -171,10 +177,23 @@ func newActivateCmd(cli *CLI) *cobra.Command {
return cmd
}
+func waitForDeployService(cli *CLI, target vespa.Target, timeout time.Duration) error {
+ if timeout == 0 {
+ return nil
+ }
+ s, err := target.DeployService(0)
+ if err != nil {
+ return err
+ }
+ cli.printInfo("Waiting up to ", color.CyanString(timeout.String()), " for ", s.Description(), " to become ready ...")
+ return s.Wait(timeout)
+}
+
func waitForContainerServices(cli *CLI, target vespa.Target, sessionOrRunID int64, timeout time.Duration) error {
if timeout == 0 {
return nil
}
+ cli.printInfo("Waiting up to ", color.CyanString(timeout.String()), " for deployment to converge ...")
if _, err := target.AwaitDeployment(sessionOrRunID, timeout); err != nil {
return err
}