From ea719debfc600122cf5741b0dbc6c4dc94782c52 Mon Sep 17 00:00:00 2001 From: Edward J Date: Wed, 12 Jun 2024 14:57:59 -0700 Subject: [PATCH] Fix restart command with project support Fix term.Error space regression --- src/pkg/cli/client/playground.go | 22 ++++++++++++++++------ src/pkg/term/colorizer.go | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/pkg/cli/client/playground.go b/src/pkg/cli/client/playground.go index 03dd4843..b537eabb 100644 --- a/src/pkg/cli/client/playground.go +++ b/src/pkg/cli/client/playground.go @@ -3,6 +3,7 @@ package client import ( "context" "errors" + "fmt" "github.com/DefangLabs/defang/src/pkg/types" defangv1 "github.com/DefangLabs/defang/src/protos/io/defang/v1" @@ -95,16 +96,25 @@ func (g *PlaygroundClient) BootstrapList(context.Context) ([]string, error) { func (g *PlaygroundClient) Restart(ctx context.Context, names ...string) (types.ETag, error) { // For now, we'll just get the service info and pass it back to Deploy as-is. - services := make([]*defangv1.Service, 0, len(names)) + resp, err := g.GetServices(ctx) + if err != nil { + return "", err + } + existingServices := make(map[string]*defangv1.Service) + for _, serviceInfo := range resp.Services { + existingServices[serviceInfo.Service.Name] = serviceInfo.Service + } + + servicesToUpdate := make([]*defangv1.Service, 0, len(names)) for _, name := range names { - serviceInfo, err := g.GetService(ctx, &defangv1.ServiceID{Name: name}) - if err != nil { - return "", err + service, ok := existingServices[name] + if !ok { + return "", fmt.Errorf("service %s not found", name) } - services = append(services, serviceInfo.Service) + servicesToUpdate = append(servicesToUpdate, service) } - dr, err := g.Deploy(ctx, &defangv1.DeployRequest{Services: services}) + dr, err := g.Deploy(ctx, &defangv1.DeployRequest{Project: resp.Project, Services: servicesToUpdate}) if err != nil { return "", err } diff --git a/src/pkg/term/colorizer.go b/src/pkg/term/colorizer.go index 2ce03ad5..5bc30a6a 100644 --- a/src/pkg/term/colorizer.go +++ b/src/pkg/term/colorizer.go @@ -208,7 +208,7 @@ func (t *Term) Warnf(format string, v ...any) (int, error) { } func (t *Term) Error(v ...any) (int, error) { - return output(t.stderr, ErrorColor, ensureNewline(fmt.Sprint(v...))) + return output(t.stderr, ErrorColor, fmt.Sprintln(v...)) } func (t *Term) Errorf(format string, v ...any) (int, error) {