Skip to content

Commit

Permalink
Merge pull request #1237 from vdemeester/use-non-deprecated-filters-f…
Browse files Browse the repository at this point in the history
…uncs

Migrate to non-deprecated functions of `api/types/filters`
  • Loading branch information
Vincent Demeester authored Jul 27, 2018
2 parents a3464c0 + 55edeb4 commit edfd623
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 8 deletions.
2 changes: 1 addition & 1 deletion cli/command/service/ps.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ loop:
}

func updateNodeFilter(ctx context.Context, client client.APIClient, filter filters.Args) error {
if filter.Include("node") {
if filter.Contains("node") {
nodeFilters := filter.Get("node")
for _, nodeFilter := range nodeFilters {
nodeReference, err := node.Reference(ctx, client, nodeFilter)
Expand Down
2 changes: 1 addition & 1 deletion cli/command/system/prune.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ func runBuildCachePrune(dockerCli command.Cli, _ opts.FilterOpt) (uint64, string

func runPrune(dockerCli command.Cli, options pruneOptions) error {
// TODO version this once "until" filter is supported for volumes
if options.pruneVolumes && options.filter.Value().Include("until") {
if options.pruneVolumes && options.filter.Value().Contains("until") {
return fmt.Errorf(`ERROR: The "until" filter is not supported with "--volumes"`)
}
if versions.LessThan(dockerCli.Client().ClientVersion(), "1.31") {
Expand Down
4 changes: 2 additions & 2 deletions cli/command/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,14 @@ func PruneFilters(dockerCli Cli, pruneFilters filters.Args) filters.Args {
// CLI label filter supersede config.json.
// If CLI label filter conflict with config.json,
// skip adding label! filter in config.json.
if pruneFilters.Include("label!") && pruneFilters.ExactMatch("label!", parts[1]) {
if pruneFilters.Contains("label!") && pruneFilters.ExactMatch("label!", parts[1]) {
continue
}
} else if parts[0] == "label!" {
// CLI label! filter supersede config.json.
// If CLI label! filter conflict with config.json,
// skip adding label filter in config.json.
if pruneFilters.Include("label") && pruneFilters.ExactMatch("label", parts[1]) {
if pruneFilters.Contains("label") && pruneFilters.ExactMatch("label", parts[1]) {
continue
}
}
Expand Down
18 changes: 14 additions & 4 deletions opts/opts.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (

"github.com/docker/docker/api/types/filters"
units "github.com/docker/go-units"
"github.com/pkg/errors"
)

var (
Expand Down Expand Up @@ -318,7 +319,7 @@ func NewFilterOpt() FilterOpt {
}

func (o *FilterOpt) String() string {
repr, err := filters.ToParam(o.filter)
repr, err := filters.ToJSON(o.filter)
if err != nil {
return "invalid filters"
}
Expand All @@ -327,9 +328,18 @@ func (o *FilterOpt) String() string {

// Set sets the value of the opt by parsing the command line value
func (o *FilterOpt) Set(value string) error {
var err error
o.filter, err = filters.ParseFlag(value, o.filter)
return err
if value == "" {
return nil
}
if !strings.Contains(value, "=") {
return errors.New("bad format of filter (expected name=value)")
}
f := strings.SplitN(value, "=", 2)
name := strings.ToLower(strings.TrimSpace(f[0]))
value = strings.TrimSpace(f[1])

o.filter.Add(name, value)
return nil
}

// Type returns the option type
Expand Down

0 comments on commit edfd623

Please sign in to comment.