Merge pull request #182 from vdemeester/180-fix-stack-rm-config-endpoint

Do not call the config endpoint if API is lower than 1.30
This commit is contained in:
Daniel Nephin 2017-06-14 14:31:01 -04:00 committed by GitHub
commit 759e59e4a4
2 changed files with 20 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import (
"strings" "strings"
"github.com/docker/cli/cli/compose/convert" "github.com/docker/cli/cli/compose/convert"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/filters"
"github.com/docker/docker/api/types/swarm" "github.com/docker/docker/api/types/swarm"
@ -34,6 +35,13 @@ type fakeClient struct {
configRemoveFunc func(configID string) error configRemoveFunc func(configID string) error
} }
func (cli *fakeClient) ServerVersion(ctx context.Context) (types.Version, error) {
return types.Version{
Version: "docker-dev",
APIVersion: api.DefaultVersion,
}, nil
}
func (cli *fakeClient) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error) { func (cli *fakeClient) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error) {
if cli.serviceListFunc != nil { if cli.serviceListFunc != nil {
return cli.serviceListFunc(options) return cli.serviceListFunc(options)

View File

@ -8,6 +8,7 @@ import (
"github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm" "github.com/docker/docker/api/types/swarm"
"github.com/docker/docker/api/types/versions"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"golang.org/x/net/context" "golang.org/x/net/context"
@ -55,10 +56,20 @@ func runRemove(dockerCli command.Cli, opts removeOptions) error {
return err return err
} }
configs, err := getStackConfigs(ctx, client, namespace) var configs []swarm.Config
version, err := client.ServerVersion(ctx)
if err != nil { if err != nil {
return err return err
} }
if versions.LessThan(version.APIVersion, "1.30") {
fmt.Fprintf(dockerCli.Err(), `WARNING: ignoring "configs" (requires API version 1.30, but the Docker daemon API version is %s)`, version.APIVersion)
} else {
configs, err = getStackConfigs(ctx, client, namespace)
if err != nil {
return err
}
}
if len(services)+len(networks)+len(secrets)+len(configs) == 0 { if len(services)+len(networks)+len(secrets)+len(configs) == 0 {
fmt.Fprintf(dockerCli.Out(), "Nothing found in stack: %s\n", namespace) fmt.Fprintf(dockerCli.Out(), "Nothing found in stack: %s\n", namespace)