adopt compose-go/v2

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
Nicolas De Loof 2023-11-08 10:19:24 +01:00 committed by Nicolas De loof
parent 85a1aec123
commit cda04f288e
62 changed files with 187 additions and 144 deletions

View file

@ -22,9 +22,9 @@ import (
"os"
"strings"
"github.com/compose-spec/compose-go/cli"
"github.com/compose-spec/compose-go/loader"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/cli"
"github.com/compose-spec/compose-go/v2/loader"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
cliopts "github.com/docker/cli/opts"
ui "github.com/docker/compose/v2/pkg/progress"
@ -50,7 +50,14 @@ func (opts buildOptions) toAPIBuildOptions(services []string) (api.BuildOptions,
var SSHKeys []types.SSHKey
var err error
if opts.ssh != "" {
SSHKeys, err = loader.ParseShortSSHSyntax(opts.ssh)
id, path, found := strings.Cut(opts.ssh, "=")
if !found && id != "default" {
return api.BuildOptions{}, fmt.Errorf("invalid ssh key %q", opts.ssh)
}
SSHKeys = append(SSHKeys, types.SSHKey{
ID: id,
Path: path,
})
if err != nil {
return api.BuildOptions{}, err
}

View file

@ -27,10 +27,10 @@ import (
"strings"
"syscall"
"github.com/compose-spec/compose-go/cli"
"github.com/compose-spec/compose-go/dotenv"
"github.com/compose-spec/compose-go/types"
composegoutils "github.com/compose-spec/compose-go/utils"
"github.com/compose-spec/compose-go/v2/cli"
"github.com/compose-spec/compose-go/v2/dotenv"
"github.com/compose-spec/compose-go/v2/types"
composegoutils "github.com/compose-spec/compose-go/v2/utils"
"github.com/docker/buildx/util/logutil"
dockercli "github.com/docker/cli/cli"
"github.com/docker/cli/cli-plugins/manager"

View file

@ -19,7 +19,7 @@ package compose
import (
"testing"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"gotest.tools/v3/assert"
)

View file

@ -24,8 +24,8 @@ import (
"sort"
"strings"
"github.com/compose-spec/compose-go/cli"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/cli"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
"github.com/spf13/cobra"

View file

@ -24,7 +24,7 @@ import (
"strings"
"time"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
"github.com/spf13/cobra"
@ -164,7 +164,15 @@ func (opts createOptions) Apply(project *types.Project) error {
return err
}
for _, scale := range opts.scale {
err := applyScaleOpts(project, opts.scale)
if err != nil {
return err
}
return nil
}
func applyScaleOpts(project *types.Project, opts []string) error {
for _, scale := range opts {
split := strings.Split(scale, "=")
if len(split) != 2 {
return fmt.Errorf("invalid --scale option %q. Should be SERVICE=NUM", scale)
@ -174,7 +182,7 @@ func (opts createOptions) Apply(project *types.Project) error {
if err != nil {
return err
}
err = setServiceScale(project, name, uint64(replicas))
err = setServiceScale(project, name, replicas)
if err != nil {
return err
}

View file

@ -21,7 +21,7 @@ import (
"fmt"
"testing"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/davecgh/go-spew/spew"
"github.com/docker/compose/v2/pkg/api"
"github.com/docker/compose/v2/pkg/mocks"

View file

@ -19,7 +19,7 @@ package compose
import (
"context"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli"
"github.com/docker/cli/cli/command"
"github.com/docker/compose/v2/pkg/api"

View file

@ -19,7 +19,7 @@ package compose
import (
"fmt"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/compose/v2/pkg/utils"
)

View file

@ -19,7 +19,7 @@ package compose
import (
"testing"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/stretchr/testify/require"
)

View file

@ -21,7 +21,7 @@ import (
"fmt"
"os"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
"github.com/morikuni/aec"
"github.com/spf13/cobra"

View file

@ -19,7 +19,7 @@ package compose
import (
"testing"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"gotest.tools/v3/assert"
)

View file

@ -19,7 +19,7 @@ package compose
import (
"context"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
"github.com/spf13/cobra"

View file

@ -21,12 +21,12 @@ import (
"fmt"
"strings"
"github.com/compose-spec/compose-go/v2/format"
xprogress "github.com/moby/buildkit/util/progress/progressui"
"github.com/sirupsen/logrus"
cgo "github.com/compose-spec/compose-go/cli"
"github.com/compose-spec/compose-go/loader"
"github.com/compose-spec/compose-go/types"
cgo "github.com/compose-spec/compose-go/v2/cli"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
"github.com/docker/cli/opts"
"github.com/mattn/go-shellwords"
@ -98,7 +98,7 @@ func (options runOptions) apply(project *types.Project) error {
}
for _, v := range options.volumes {
volume, err := loader.ParseVolume(v)
volume, err := format.ParseVolume(v)
if err != nil {
return err
}

View file

@ -24,7 +24,7 @@ import (
"github.com/docker/cli/cli/command"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"golang.org/x/exp/maps"
"github.com/docker/compose/v2/pkg/api"
@ -77,11 +77,11 @@ func runScale(ctx context.Context, dockerCli command.Cli, backend api.Service, o
if service.Name != key {
continue
}
if service.Deploy == nil {
service.Deploy = &types.DeployConfig{}
value := value
service.Scale = &value
if service.Deploy != nil {
service.Deploy.Replicas = &value
}
scale := uint64(value)
service.Deploy.Replicas = &scale
project.Services[i] = service
break
}

View file

@ -25,7 +25,7 @@ import (
xprogress "github.com/moby/buildkit/util/progress/progressui"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
"github.com/docker/compose/v2/cmd/formatter"
"github.com/spf13/cobra"
@ -259,7 +259,7 @@ func runUp(
})
}
func setServiceScale(project *types.Project, name string, replicas uint64) error {
func setServiceScale(project *types.Project, name string, replicas int) error {
for i, s := range project.Services {
if s.Name != name {
continue
@ -269,10 +269,10 @@ func setServiceScale(project *types.Project, name string, replicas uint64) error
if err != nil {
return err
}
if service.Deploy == nil {
service.Deploy = &types.DeployConfig{}
service.Scale = &replicas
if service.Deploy != nil {
service.Deploy.Replicas = &replicas
}
service.Deploy.Replicas = &replicas
project.Services[i] = service
return nil
}

View file

@ -19,7 +19,7 @@ package compose
import (
"testing"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"gotest.tools/v3/assert"
)
@ -31,13 +31,21 @@ func TestApplyScaleOpt(t *testing.T) {
},
{
Name: "bar",
Deploy: &types.DeployConfig{
Mode: "test",
},
},
},
}
opt := createOptions{scale: []string{"foo=2"}}
err := opt.Apply(&p)
err := applyScaleOpts(&p, []string{"foo=2", "bar=3"})
assert.NilError(t, err)
foo, err := p.GetService("foo")
assert.NilError(t, err)
assert.Equal(t, *foo.Deploy.Replicas, uint64(2))
assert.Equal(t, *foo.Scale, 2)
bar, err := p.GetService("bar")
assert.NilError(t, err)
assert.Equal(t, *bar.Scale, 3)
assert.Equal(t, *bar.Deploy.Replicas, 3)
}

View file

@ -20,7 +20,7 @@ import (
"context"
"fmt"
"github.com/compose-spec/compose-go/types"
"github.com/compose-spec/compose-go/v2/types"
"github.com/docker/cli/cli/command"
"github.com/docker/compose/v2/internal/locker"