Remove use of deprecated filter functions
| ... | ... |
@@ -28,7 +28,7 @@ func (s *containerRouter) getContainersJSON(ctx context.Context, w http.Response |
| 28 | 28 |
if err := httputils.ParseForm(r); err != nil {
|
| 29 | 29 |
return err |
| 30 | 30 |
} |
| 31 |
- filter, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 31 |
+ filter, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 32 | 32 |
if err != nil {
|
| 33 | 33 |
return err |
| 34 | 34 |
} |
| ... | ... |
@@ -588,7 +588,7 @@ func (s *containerRouter) postContainersPrune(ctx context.Context, w http.Respon |
| 588 | 588 |
return err |
| 589 | 589 |
} |
| 590 | 590 |
|
| 591 |
- pruneFilters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 591 |
+ pruneFilters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 592 | 592 |
if err != nil {
|
| 593 | 593 |
return validationError{err}
|
| 594 | 594 |
} |
| ... | ... |
@@ -302,7 +302,7 @@ func (s *imageRouter) getImagesJSON(ctx context.Context, w http.ResponseWriter, |
| 302 | 302 |
return err |
| 303 | 303 |
} |
| 304 | 304 |
|
| 305 |
- imageFilters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 305 |
+ imageFilters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 306 | 306 |
if err != nil {
|
| 307 | 307 |
return err |
| 308 | 308 |
} |
| ... | ... |
@@ -385,7 +385,7 @@ func (s *imageRouter) postImagesPrune(ctx context.Context, w http.ResponseWriter |
| 385 | 385 |
return err |
| 386 | 386 |
} |
| 387 | 387 |
|
| 388 |
- pruneFilters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 388 |
+ pruneFilters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 389 | 389 |
if err != nil {
|
| 390 | 390 |
return err |
| 391 | 391 |
} |
| ... | ... |
@@ -45,27 +45,27 @@ func filterNetworks(nws []types.NetworkResource, filter filters.Args) ([]types.N |
| 45 | 45 |
|
| 46 | 46 |
displayNet := []types.NetworkResource{}
|
| 47 | 47 |
for _, nw := range nws {
|
| 48 |
- if filter.Include("driver") {
|
|
| 48 |
+ if filter.Contains("driver") {
|
|
| 49 | 49 |
if !filter.ExactMatch("driver", nw.Driver) {
|
| 50 | 50 |
continue |
| 51 | 51 |
} |
| 52 | 52 |
} |
| 53 |
- if filter.Include("name") {
|
|
| 53 |
+ if filter.Contains("name") {
|
|
| 54 | 54 |
if !filter.Match("name", nw.Name) {
|
| 55 | 55 |
continue |
| 56 | 56 |
} |
| 57 | 57 |
} |
| 58 |
- if filter.Include("id") {
|
|
| 58 |
+ if filter.Contains("id") {
|
|
| 59 | 59 |
if !filter.Match("id", nw.ID) {
|
| 60 | 60 |
continue |
| 61 | 61 |
} |
| 62 | 62 |
} |
| 63 |
- if filter.Include("label") {
|
|
| 63 |
+ if filter.Contains("label") {
|
|
| 64 | 64 |
if !filter.MatchKVList("label", nw.Labels) {
|
| 65 | 65 |
continue |
| 66 | 66 |
} |
| 67 | 67 |
} |
| 68 |
- if filter.Include("scope") {
|
|
| 68 |
+ if filter.Contains("scope") {
|
|
| 69 | 69 |
if !filter.ExactMatch("scope", nw.Scope) {
|
| 70 | 70 |
continue |
| 71 | 71 |
} |
| ... | ... |
@@ -73,7 +73,7 @@ func filterNetworks(nws []types.NetworkResource, filter filters.Args) ([]types.N |
| 73 | 73 |
displayNet = append(displayNet, nw) |
| 74 | 74 |
} |
| 75 | 75 |
|
| 76 |
- if filter.Include("type") {
|
|
| 76 |
+ if filter.Contains("type") {
|
|
| 77 | 77 |
typeNet := []types.NetworkResource{}
|
| 78 | 78 |
errFilter := filter.WalkValues("type", func(fval string) error {
|
| 79 | 79 |
passList, err := filterNetworkByType(displayNet, fval) |
| ... | ... |
@@ -37,7 +37,7 @@ func (n *networkRouter) getNetworksList(ctx context.Context, w http.ResponseWrit |
| 37 | 37 |
} |
| 38 | 38 |
|
| 39 | 39 |
filter := r.Form.Get("filters")
|
| 40 |
- netFilters, err := filters.FromParam(filter) |
|
| 40 |
+ netFilters, err := filters.FromJSON(filter) |
|
| 41 | 41 |
if err != nil {
|
| 42 | 42 |
return err |
| 43 | 43 |
} |
| ... | ... |
@@ -489,7 +489,7 @@ func (n *networkRouter) postNetworksPrune(ctx context.Context, w http.ResponseWr |
| 489 | 489 |
return err |
| 490 | 490 |
} |
| 491 | 491 |
|
| 492 |
- pruneFilters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 492 |
+ pruneFilters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 493 | 493 |
if err != nil {
|
| 494 | 494 |
return err |
| 495 | 495 |
} |
| ... | ... |
@@ -290,7 +290,7 @@ func (pr *pluginRouter) listPlugins(ctx context.Context, w http.ResponseWriter, |
| 290 | 290 |
return err |
| 291 | 291 |
} |
| 292 | 292 |
|
| 293 |
- pluginFilters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 293 |
+ pluginFilters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 294 | 294 |
if err != nil {
|
| 295 | 295 |
return err |
| 296 | 296 |
} |
| ... | ... |
@@ -151,7 +151,7 @@ func (sr *swarmRouter) getServices(ctx context.Context, w http.ResponseWriter, r |
| 151 | 151 |
if err := httputils.ParseForm(r); err != nil {
|
| 152 | 152 |
return err |
| 153 | 153 |
} |
| 154 |
- filter, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 154 |
+ filter, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 155 | 155 |
if err != nil {
|
| 156 | 156 |
return invalidRequestError{err}
|
| 157 | 157 |
} |
| ... | ... |
@@ -277,7 +277,7 @@ func (sr *swarmRouter) getNodes(ctx context.Context, w http.ResponseWriter, r *h |
| 277 | 277 |
if err := httputils.ParseForm(r); err != nil {
|
| 278 | 278 |
return err |
| 279 | 279 |
} |
| 280 |
- filter, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 280 |
+ filter, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 281 | 281 |
if err != nil {
|
| 282 | 282 |
return err |
| 283 | 283 |
} |
| ... | ... |
@@ -339,7 +339,7 @@ func (sr *swarmRouter) getTasks(ctx context.Context, w http.ResponseWriter, r *h |
| 339 | 339 |
if err := httputils.ParseForm(r); err != nil {
|
| 340 | 340 |
return err |
| 341 | 341 |
} |
| 342 |
- filter, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 342 |
+ filter, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 343 | 343 |
if err != nil {
|
| 344 | 344 |
return err |
| 345 | 345 |
} |
| ... | ... |
@@ -367,7 +367,7 @@ func (sr *swarmRouter) getSecrets(ctx context.Context, w http.ResponseWriter, r |
| 367 | 367 |
if err := httputils.ParseForm(r); err != nil {
|
| 368 | 368 |
return err |
| 369 | 369 |
} |
| 370 |
- filters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 370 |
+ filters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 371 | 371 |
if err != nil {
|
| 372 | 372 |
return err |
| 373 | 373 |
} |
| ... | ... |
@@ -434,7 +434,7 @@ func (sr *swarmRouter) getConfigs(ctx context.Context, w http.ResponseWriter, r |
| 434 | 434 |
if err := httputils.ParseForm(r); err != nil {
|
| 435 | 435 |
return err |
| 436 | 436 |
} |
| 437 |
- filters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 437 |
+ filters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 438 | 438 |
if err != nil {
|
| 439 | 439 |
return err |
| 440 | 440 |
} |
| ... | ... |
@@ -127,7 +127,7 @@ func (s *systemRouter) getEvents(ctx context.Context, w http.ResponseWriter, r * |
| 127 | 127 |
} |
| 128 | 128 |
} |
| 129 | 129 |
|
| 130 |
- ef, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 130 |
+ ef, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 131 | 131 |
if err != nil {
|
| 132 | 132 |
return err |
| 133 | 133 |
} |
| ... | ... |
@@ -72,7 +72,7 @@ func (v *volumeRouter) postVolumesPrune(ctx context.Context, w http.ResponseWrit |
| 72 | 72 |
return err |
| 73 | 73 |
} |
| 74 | 74 |
|
| 75 |
- pruneFilters, err := filters.FromParam(r.Form.Get("filters"))
|
|
| 75 |
+ pruneFilters, err := filters.FromJSON(r.Form.Get("filters"))
|
|
| 76 | 76 |
if err != nil {
|
| 77 | 77 |
return err |
| 78 | 78 |
} |
| ... | ... |
@@ -42,14 +42,14 @@ func TestParseArgsEdgeCase(t *testing.T) {
|
| 42 | 42 |
} |
| 43 | 43 |
} |
| 44 | 44 |
|
| 45 |
-func TestToParam(t *testing.T) {
|
|
| 45 |
+func TestToJSON(t *testing.T) {
|
|
| 46 | 46 |
fields := map[string]map[string]bool{
|
| 47 | 47 |
"created": {"today": true},
|
| 48 | 48 |
"image.name": {"ubuntu*": true, "*untu": true},
|
| 49 | 49 |
} |
| 50 | 50 |
a := Args{fields: fields}
|
| 51 | 51 |
|
| 52 |
- _, err := ToParam(a) |
|
| 52 |
+ _, err := ToJSON(a) |
|
| 53 | 53 |
if err != nil {
|
| 54 | 54 |
t.Errorf("failed to marshal the filters: %s", err)
|
| 55 | 55 |
} |
| ... | ... |
@@ -80,7 +80,7 @@ func TestToParamWithVersion(t *testing.T) {
|
| 80 | 80 |
} |
| 81 | 81 |
} |
| 82 | 82 |
|
| 83 |
-func TestFromParam(t *testing.T) {
|
|
| 83 |
+func TestFromJSON(t *testing.T) {
|
|
| 84 | 84 |
invalids := []string{
|
| 85 | 85 |
"anything", |
| 86 | 86 |
"['a','list']", |
| ... | ... |
@@ -103,14 +103,14 @@ func TestFromParam(t *testing.T) {
|
| 103 | 103 |
} |
| 104 | 104 |
|
| 105 | 105 |
for _, invalid := range invalids {
|
| 106 |
- if _, err := FromParam(invalid); err == nil {
|
|
| 106 |
+ if _, err := FromJSON(invalid); err == nil {
|
|
| 107 | 107 |
t.Fatalf("Expected an error with %v, got nothing", invalid)
|
| 108 | 108 |
} |
| 109 | 109 |
} |
| 110 | 110 |
|
| 111 | 111 |
for expectedArgs, matchers := range valid {
|
| 112 | 112 |
for _, json := range matchers {
|
| 113 |
- args, err := FromParam(json) |
|
| 113 |
+ args, err := FromJSON(json) |
|
| 114 | 114 |
if err != nil {
|
| 115 | 115 |
t.Fatal(err) |
| 116 | 116 |
} |
| ... | ... |
@@ -136,11 +136,11 @@ func TestFromParam(t *testing.T) {
|
| 136 | 136 |
|
| 137 | 137 |
func TestEmpty(t *testing.T) {
|
| 138 | 138 |
a := Args{}
|
| 139 |
- v, err := ToParam(a) |
|
| 139 |
+ v, err := ToJSON(a) |
|
| 140 | 140 |
if err != nil {
|
| 141 | 141 |
t.Errorf("failed to marshal the filters: %s", err)
|
| 142 | 142 |
} |
| 143 |
- v1, err := FromParam(v) |
|
| 143 |
+ v1, err := FromJSON(v) |
|
| 144 | 144 |
if err != nil {
|
| 145 | 145 |
t.Errorf("%s", err)
|
| 146 | 146 |
} |
| ... | ... |
@@ -337,6 +337,17 @@ func TestOnlyOneExactMatch(t *testing.T) {
|
| 337 | 337 |
} |
| 338 | 338 |
} |
| 339 | 339 |
|
| 340 |
+func TestContains(t *testing.T) {
|
|
| 341 |
+ f := NewArgs() |
|
| 342 |
+ if f.Contains("status") {
|
|
| 343 |
+ t.Fatal("Expected to not contain a status key, got true")
|
|
| 344 |
+ } |
|
| 345 |
+ f.Add("status", "running")
|
|
| 346 |
+ if !f.Contains("status") {
|
|
| 347 |
+ t.Fatal("Expected to contain a status key, got false")
|
|
| 348 |
+ } |
|
| 349 |
+} |
|
| 350 |
+ |
|
| 340 | 351 |
func TestInclude(t *testing.T) {
|
| 341 | 352 |
f := NewArgs() |
| 342 | 353 |
if f.Include("status") {
|
| ... | ... |
@@ -18,7 +18,7 @@ func (cli *Client) ConfigList(ctx context.Context, options types.ConfigListOptio |
| 18 | 18 |
query := url.Values{}
|
| 19 | 19 |
|
| 20 | 20 |
if options.Filters.Len() > 0 {
|
| 21 |
- filterJSON, err := filters.ToParam(options.Filters) |
|
| 21 |
+ filterJSON, err := filters.ToJSON(options.Filters) |
|
| 22 | 22 |
if err != nil {
|
| 23 | 23 |
return nil, err |
| 24 | 24 |
} |
| ... | ... |
@@ -21,7 +21,7 @@ func (cli *Client) ImageSearch(ctx context.Context, term string, options types.I |
| 21 | 21 |
query.Set("limit", fmt.Sprintf("%d", options.Limit))
|
| 22 | 22 |
|
| 23 | 23 |
if options.Filters.Len() > 0 {
|
| 24 |
- filterJSON, err := filters.ToParam(options.Filters) |
|
| 24 |
+ filterJSON, err := filters.ToJSON(options.Filters) |
|
| 25 | 25 |
if err != nil {
|
| 26 | 26 |
return results, err |
| 27 | 27 |
} |
| ... | ... |
@@ -15,7 +15,7 @@ func (cli *Client) NodeList(ctx context.Context, options types.NodeListOptions) |
| 15 | 15 |
query := url.Values{}
|
| 16 | 16 |
|
| 17 | 17 |
if options.Filters.Len() > 0 {
|
| 18 |
- filterJSON, err := filters.ToParam(options.Filters) |
|
| 18 |
+ filterJSON, err := filters.ToJSON(options.Filters) |
|
| 19 | 19 |
|
| 20 | 20 |
if err != nil {
|
| 21 | 21 |
return nil, err |
| ... | ... |
@@ -18,7 +18,7 @@ func (cli *Client) SecretList(ctx context.Context, options types.SecretListOptio |
| 18 | 18 |
query := url.Values{}
|
| 19 | 19 |
|
| 20 | 20 |
if options.Filters.Len() > 0 {
|
| 21 |
- filterJSON, err := filters.ToParam(options.Filters) |
|
| 21 |
+ filterJSON, err := filters.ToJSON(options.Filters) |
|
| 22 | 22 |
if err != nil {
|
| 23 | 23 |
return nil, err |
| 24 | 24 |
} |
| ... | ... |
@@ -15,7 +15,7 @@ func (cli *Client) ServiceList(ctx context.Context, options types.ServiceListOpt |
| 15 | 15 |
query := url.Values{}
|
| 16 | 16 |
|
| 17 | 17 |
if options.Filters.Len() > 0 {
|
| 18 |
- filterJSON, err := filters.ToParam(options.Filters) |
|
| 18 |
+ filterJSON, err := filters.ToJSON(options.Filters) |
|
| 19 | 19 |
if err != nil {
|
| 20 | 20 |
return nil, err |
| 21 | 21 |
} |
| ... | ... |
@@ -15,7 +15,7 @@ func (cli *Client) TaskList(ctx context.Context, options types.TaskListOptions) |
| 15 | 15 |
query := url.Values{}
|
| 16 | 16 |
|
| 17 | 17 |
if options.Filters.Len() > 0 {
|
| 18 |
- filterJSON, err := filters.ToParam(options.Filters) |
|
| 18 |
+ filterJSON, err := filters.ToJSON(options.Filters) |
|
| 19 | 19 |
if err != nil {
|
| 20 | 20 |
return nil, err |
| 21 | 21 |
} |
| ... | ... |
@@ -24,7 +24,7 @@ func getDockerOS(serverHeader string) string {
|
| 24 | 24 |
func getFiltersQuery(f filters.Args) (url.Values, error) {
|
| 25 | 25 |
query := url.Values{}
|
| 26 | 26 |
if f.Len() > 0 {
|
| 27 |
- filterJSON, err := filters.ToParam(f) |
|
| 27 |
+ filterJSON, err := filters.ToJSON(f) |
|
| 28 | 28 |
if err != nil {
|
| 29 | 29 |
return query, err |
| 30 | 30 |
} |
| ... | ... |
@@ -74,7 +74,7 @@ func (c *Cluster) GetServices(options apitypes.ServiceListOptions) ([]types.Serv |
| 74 | 74 |
services := make([]types.Service, 0, len(r.Services)) |
| 75 | 75 |
|
| 76 | 76 |
for _, service := range r.Services {
|
| 77 |
- if options.Filters.Include("mode") {
|
|
| 77 |
+ if options.Filters.Contains("mode") {
|
|
| 78 | 78 |
var mode string |
| 79 | 79 |
switch service.Spec.GetMode().(type) {
|
| 80 | 80 |
case *swarmapi.ServiceSpec_Global: |
| ... | ... |
@@ -15,7 +15,7 @@ func (c *Cluster) GetTasks(options apitypes.TaskListOptions) ([]types.Task, erro |
| 15 | 15 |
|
| 16 | 16 |
if err := c.lockedManagerAction(func(ctx context.Context, state nodeState) error {
|
| 17 | 17 |
filterTransform := func(filter filters.Args) error {
|
| 18 |
- if filter.Include("service") {
|
|
| 18 |
+ if filter.Contains("service") {
|
|
| 19 | 19 |
serviceFilters := filter.Get("service")
|
| 20 | 20 |
for _, serviceFilter := range serviceFilters {
|
| 21 | 21 |
service, err := getService(ctx, state.controlClient, serviceFilter, false) |
| ... | ... |
@@ -26,7 +26,7 @@ func (c *Cluster) GetTasks(options apitypes.TaskListOptions) ([]types.Task, erro |
| 26 | 26 |
filter.Add("service", service.ID)
|
| 27 | 27 |
} |
| 28 | 28 |
} |
| 29 |
- if filter.Include("node") {
|
|
| 29 |
+ if filter.Contains("node") {
|
|
| 30 | 30 |
nodeFilters := filter.Get("node")
|
| 31 | 31 |
for _, nodeFilter := range nodeFilters {
|
| 32 | 32 |
node, err := getNode(ctx, state.controlClient, nodeFilter) |
| ... | ... |
@@ -37,7 +37,7 @@ func (c *Cluster) GetTasks(options apitypes.TaskListOptions) ([]types.Task, erro |
| 37 | 37 |
filter.Add("node", node.ID)
|
| 38 | 38 |
} |
| 39 | 39 |
} |
| 40 |
- if !filter.Include("runtime") {
|
|
| 40 |
+ if !filter.Contains("runtime") {
|
|
| 41 | 41 |
// default to only showing container tasks |
| 42 | 42 |
filter.Add("runtime", "container")
|
| 43 | 43 |
filter.Add("runtime", "")
|
| ... | ... |
@@ -53,14 +53,14 @@ func (ef *Filter) filterContains(field string, values map[string]struct{}) bool
|
| 53 | 53 |
} |
| 54 | 54 |
|
| 55 | 55 |
func (ef *Filter) matchScope(scope string) bool {
|
| 56 |
- if !ef.filter.Include("scope") {
|
|
| 56 |
+ if !ef.filter.Contains("scope") {
|
|
| 57 | 57 |
return true |
| 58 | 58 |
} |
| 59 | 59 |
return ef.filter.ExactMatch("scope", scope)
|
| 60 | 60 |
} |
| 61 | 61 |
|
| 62 | 62 |
func (ef *Filter) matchLabels(attributes map[string]string) bool {
|
| 63 |
- if !ef.filter.Include("label") {
|
|
| 63 |
+ if !ef.filter.Contains("label") {
|
|
| 64 | 64 |
return true |
| 65 | 65 |
} |
| 66 | 66 |
return ef.filter.MatchKVList("label", attributes)
|
| ... | ... |
@@ -67,7 +67,7 @@ func (daemon *Daemon) Images(imageFilters filters.Args, all bool, withExtraAttrs |
| 67 | 67 |
return nil, err |
| 68 | 68 |
} |
| 69 | 69 |
|
| 70 |
- if imageFilters.Include("dangling") {
|
|
| 70 |
+ if imageFilters.Contains("dangling") {
|
|
| 71 | 71 |
if imageFilters.ExactMatch("dangling", "true") {
|
| 72 | 72 |
danglingOnly = true |
| 73 | 73 |
} else if !imageFilters.ExactMatch("dangling", "false") {
|
| ... | ... |
@@ -116,7 +116,7 @@ func (daemon *Daemon) Images(imageFilters filters.Args, all bool, withExtraAttrs |
| 116 | 116 |
} |
| 117 | 117 |
} |
| 118 | 118 |
|
| 119 |
- if imageFilters.Include("label") {
|
|
| 119 |
+ if imageFilters.Contains("label") {
|
|
| 120 | 120 |
// Very old image that do not have image.Config (or even labels) |
| 121 | 121 |
if img.Config == nil {
|
| 122 | 122 |
continue |
| ... | ... |
@@ -150,7 +150,7 @@ func (daemon *Daemon) Images(imageFilters filters.Args, all bool, withExtraAttrs |
| 150 | 150 |
newImage := newImage(img, size) |
| 151 | 151 |
|
| 152 | 152 |
for _, ref := range daemon.referenceStore.References(id.Digest()) {
|
| 153 |
- if imageFilters.Include("reference") {
|
|
| 153 |
+ if imageFilters.Contains("reference") {
|
|
| 154 | 154 |
var found bool |
| 155 | 155 |
var matchErr error |
| 156 | 156 |
for _, pattern := range imageFilters.Get("reference") {
|
| ... | ... |
@@ -173,11 +173,11 @@ func (daemon *Daemon) Images(imageFilters filters.Args, all bool, withExtraAttrs |
| 173 | 173 |
if newImage.RepoDigests == nil && newImage.RepoTags == nil {
|
| 174 | 174 |
if all || len(daemon.stores[platform].imageStore.Children(id)) == 0 {
|
| 175 | 175 |
|
| 176 |
- if imageFilters.Include("dangling") && !danglingOnly {
|
|
| 176 |
+ if imageFilters.Contains("dangling") && !danglingOnly {
|
|
| 177 | 177 |
//dangling=false case, so dangling image is not needed |
| 178 | 178 |
continue |
| 179 | 179 |
} |
| 180 |
- if imageFilters.Include("reference") { // skip images with no references if filtering by reference
|
|
| 180 |
+ if imageFilters.Contains("reference") { // skip images with no references if filtering by reference
|
|
| 181 | 181 |
continue |
| 182 | 182 |
} |
| 183 | 183 |
newImage.RepoDigests = []string{"<none>@<none>"}
|
| ... | ... |
@@ -276,7 +276,7 @@ func (daemon *Daemon) foldFilter(view container.View, config *types.ContainerLis |
| 276 | 276 |
} |
| 277 | 277 |
|
| 278 | 278 |
var taskFilter, isTask bool |
| 279 |
- if psFilters.Include("is-task") {
|
|
| 279 |
+ if psFilters.Contains("is-task") {
|
|
| 280 | 280 |
if psFilters.ExactMatch("is-task", "true") {
|
| 281 | 281 |
taskFilter = true |
| 282 | 282 |
isTask = true |
| ... | ... |
@@ -319,7 +319,7 @@ func (daemon *Daemon) foldFilter(view container.View, config *types.ContainerLis |
| 319 | 319 |
|
| 320 | 320 |
imagesFilter := map[image.ID]bool{}
|
| 321 | 321 |
var ancestorFilter bool |
| 322 |
- if psFilters.Include("ancestor") {
|
|
| 322 |
+ if psFilters.Contains("ancestor") {
|
|
| 323 | 323 |
ancestorFilter = true |
| 324 | 324 |
psFilters.WalkValues("ancestor", func(ancestor string) error {
|
| 325 | 325 |
id, platform, err := daemon.GetImageIDAndPlatform(ancestor) |
| ... | ... |
@@ -465,7 +465,7 @@ func includeContainerInList(container *container.Snapshot, ctx *listContext) ite |
| 465 | 465 |
return excludeContainer |
| 466 | 466 |
} |
| 467 | 467 |
|
| 468 |
- if ctx.filters.Include("volume") {
|
|
| 468 |
+ if ctx.filters.Contains("volume") {
|
|
| 469 | 469 |
volumesByName := make(map[string]types.MountPoint) |
| 470 | 470 |
for _, m := range container.Mounts {
|
| 471 | 471 |
if m.Name != "" {
|
| ... | ... |
@@ -509,7 +509,7 @@ func includeContainerInList(container *container.Snapshot, ctx *listContext) ite |
| 509 | 509 |
networkExist = errors.New("container part of network")
|
| 510 | 510 |
noNetworks = errors.New("container is not part of any networks")
|
| 511 | 511 |
) |
| 512 |
- if ctx.filters.Include("network") {
|
|
| 512 |
+ if ctx.filters.Contains("network") {
|
|
| 513 | 513 |
err := ctx.filters.WalkValues("network", func(value string) error {
|
| 514 | 514 |
if container.NetworkSettings == nil {
|
| 515 | 515 |
return noNetworks |
| ... | ... |
@@ -585,7 +585,7 @@ func (daemon *Daemon) Volumes(filter string) ([]*types.Volume, []string, error) |
| 585 | 585 |
var ( |
| 586 | 586 |
volumesOut []*types.Volume |
| 587 | 587 |
) |
| 588 |
- volFilters, err := filters.FromParam(filter) |
|
| 588 |
+ volFilters, err := filters.FromJSON(filter) |
|
| 589 | 589 |
if err != nil {
|
| 590 | 590 |
return nil, nil, err |
| 591 | 591 |
} |
| ... | ... |
@@ -627,17 +627,17 @@ func (daemon *Daemon) filterVolumes(vols []volume.Volume, filter filters.Args) ( |
| 627 | 627 |
|
| 628 | 628 |
var retVols []volume.Volume |
| 629 | 629 |
for _, vol := range vols {
|
| 630 |
- if filter.Include("name") {
|
|
| 630 |
+ if filter.Contains("name") {
|
|
| 631 | 631 |
if !filter.Match("name", vol.Name()) {
|
| 632 | 632 |
continue |
| 633 | 633 |
} |
| 634 | 634 |
} |
| 635 |
- if filter.Include("driver") {
|
|
| 635 |
+ if filter.Contains("driver") {
|
|
| 636 | 636 |
if !filter.ExactMatch("driver", vol.DriverName()) {
|
| 637 | 637 |
continue |
| 638 | 638 |
} |
| 639 | 639 |
} |
| 640 |
- if filter.Include("label") {
|
|
| 640 |
+ if filter.Contains("label") {
|
|
| 641 | 641 |
v, ok := vol.(volume.DetailedVolume) |
| 642 | 642 |
if !ok {
|
| 643 | 643 |
continue |
| ... | ... |
@@ -649,7 +649,7 @@ func (daemon *Daemon) filterVolumes(vols []volume.Volume, filter filters.Args) ( |
| 649 | 649 |
retVols = append(retVols, vol) |
| 650 | 650 |
} |
| 651 | 651 |
danglingOnly := false |
| 652 |
- if filter.Include("dangling") {
|
|
| 652 |
+ if filter.Contains("dangling") {
|
|
| 653 | 653 |
if filter.ExactMatch("dangling", "true") || filter.ExactMatch("dangling", "1") {
|
| 654 | 654 |
danglingOnly = true |
| 655 | 655 |
} else if !filter.ExactMatch("dangling", "false") && !filter.ExactMatch("dangling", "0") {
|
| ... | ... |
@@ -182,7 +182,7 @@ func (daemon *Daemon) ImagesPrune(ctx context.Context, pruneFilters filters.Args |
| 182 | 182 |
rep := &types.ImagesPruneReport{}
|
| 183 | 183 |
|
| 184 | 184 |
danglingOnly := true |
| 185 |
- if pruneFilters.Include("dangling") {
|
|
| 185 |
+ if pruneFilters.Contains("dangling") {
|
|
| 186 | 186 |
if pruneFilters.ExactMatch("dangling", "false") || pruneFilters.ExactMatch("dangling", "0") {
|
| 187 | 187 |
danglingOnly = false |
| 188 | 188 |
} else if !pruneFilters.ExactMatch("dangling", "true") && !pruneFilters.ExactMatch("dangling", "1") {
|
| ... | ... |
@@ -440,7 +440,7 @@ func (daemon *Daemon) NetworksPrune(ctx context.Context, pruneFilters filters.Ar |
| 440 | 440 |
|
| 441 | 441 |
func getUntilFromPruneFilters(pruneFilters filters.Args) (time.Time, error) {
|
| 442 | 442 |
until := time.Time{}
|
| 443 |
- if !pruneFilters.Include("until") {
|
|
| 443 |
+ if !pruneFilters.Contains("until") {
|
|
| 444 | 444 |
return until, nil |
| 445 | 445 |
} |
| 446 | 446 |
untilFilters := pruneFilters.Get("until")
|
| ... | ... |
@@ -464,8 +464,8 @@ func matchLabels(pruneFilters filters.Args, labels map[string]string) bool {
|
| 464 | 464 |
return false |
| 465 | 465 |
} |
| 466 | 466 |
// By default MatchKVList will return true if field (like 'label!') does not exist |
| 467 |
- // So we have to add additional Include("label!") check
|
|
| 468 |
- if pruneFilters.Include("label!") {
|
|
| 467 |
+ // So we have to add additional Contains("label!") check
|
|
| 468 |
+ if pruneFilters.Contains("label!") {
|
|
| 469 | 469 |
if pruneFilters.MatchKVList("label!", labels) {
|
| 470 | 470 |
return false |
| 471 | 471 |
} |
| ... | ... |
@@ -23,7 +23,7 @@ func (daemon *Daemon) SearchRegistryForImages(ctx context.Context, filtersArgs s |
| 23 | 23 |
authConfig *types.AuthConfig, |
| 24 | 24 |
headers map[string][]string) (*registrytypes.SearchResults, error) {
|
| 25 | 25 |
|
| 26 |
- searchFilters, err := filters.FromParam(filtersArgs) |
|
| 26 |
+ searchFilters, err := filters.FromJSON(filtersArgs) |
|
| 27 | 27 |
if err != nil {
|
| 28 | 28 |
return nil, err |
| 29 | 29 |
} |
| ... | ... |
@@ -33,21 +33,21 @@ func (daemon *Daemon) SearchRegistryForImages(ctx context.Context, filtersArgs s |
| 33 | 33 |
|
| 34 | 34 |
var isAutomated, isOfficial bool |
| 35 | 35 |
var hasStarFilter = 0 |
| 36 |
- if searchFilters.Include("is-automated") {
|
|
| 36 |
+ if searchFilters.Contains("is-automated") {
|
|
| 37 | 37 |
if searchFilters.UniqueExactMatch("is-automated", "true") {
|
| 38 | 38 |
isAutomated = true |
| 39 | 39 |
} else if !searchFilters.UniqueExactMatch("is-automated", "false") {
|
| 40 | 40 |
return nil, invalidFilter{"is-automated", searchFilters.Get("is-automated")}
|
| 41 | 41 |
} |
| 42 | 42 |
} |
| 43 |
- if searchFilters.Include("is-official") {
|
|
| 43 |
+ if searchFilters.Contains("is-official") {
|
|
| 44 | 44 |
if searchFilters.UniqueExactMatch("is-official", "true") {
|
| 45 | 45 |
isOfficial = true |
| 46 | 46 |
} else if !searchFilters.UniqueExactMatch("is-official", "false") {
|
| 47 | 47 |
return nil, invalidFilter{"is-official", searchFilters.Get("is-official")}
|
| 48 | 48 |
} |
| 49 | 49 |
} |
| 50 |
- if searchFilters.Include("stars") {
|
|
| 50 |
+ if searchFilters.Contains("stars") {
|
|
| 51 | 51 |
hasStars := searchFilters.Get("stars")
|
| 52 | 52 |
for _, hasStar := range hasStars {
|
| 53 | 53 |
iHasStar, err := strconv.Atoi(hasStar) |
| ... | ... |
@@ -67,17 +67,17 @@ func (daemon *Daemon) SearchRegistryForImages(ctx context.Context, filtersArgs s |
| 67 | 67 |
|
| 68 | 68 |
filteredResults := []registrytypes.SearchResult{}
|
| 69 | 69 |
for _, result := range unfilteredResult.Results {
|
| 70 |
- if searchFilters.Include("is-automated") {
|
|
| 70 |
+ if searchFilters.Contains("is-automated") {
|
|
| 71 | 71 |
if isAutomated != result.IsAutomated {
|
| 72 | 72 |
continue |
| 73 | 73 |
} |
| 74 | 74 |
} |
| 75 |
- if searchFilters.Include("is-official") {
|
|
| 75 |
+ if searchFilters.Contains("is-official") {
|
|
| 76 | 76 |
if isOfficial != result.IsOfficial {
|
| 77 | 77 |
continue |
| 78 | 78 |
} |
| 79 | 79 |
} |
| 80 |
- if searchFilters.Include("stars") {
|
|
| 80 |
+ if searchFilters.Contains("stars") {
|
|
| 81 | 81 |
if result.StarCount < hasStarFilter {
|
| 82 | 82 |
continue |
| 83 | 83 |
} |
| ... | ... |
@@ -282,7 +282,7 @@ func getNetworkIDByName(c *check.C, name string) string {
|
| 282 | 282 |
filterArgs = filters.NewArgs() |
| 283 | 283 |
) |
| 284 | 284 |
filterArgs.Add("name", name)
|
| 285 |
- filterJSON, err := filters.ToParam(filterArgs) |
|
| 285 |
+ filterJSON, err := filters.ToJSON(filterArgs) |
|
| 286 | 286 |
c.Assert(err, checker.IsNil) |
| 287 | 287 |
v.Set("filters", filterJSON)
|
| 288 | 288 |
|
| ... | ... |
@@ -365,7 +365,7 @@ func (pm *Manager) List(pluginFilters filters.Args) ([]types.Plugin, error) {
|
| 365 | 365 |
|
| 366 | 366 |
enabledOnly := false |
| 367 | 367 |
disabledOnly := false |
| 368 |
- if pluginFilters.Include("enabled") {
|
|
| 368 |
+ if pluginFilters.Contains("enabled") {
|
|
| 369 | 369 |
if pluginFilters.ExactMatch("enabled", "true") {
|
| 370 | 370 |
enabledOnly = true |
| 371 | 371 |
} else if pluginFilters.ExactMatch("enabled", "false") {
|
| ... | ... |
@@ -386,7 +386,7 @@ next: |
| 386 | 386 |
if disabledOnly && p.PluginObj.Enabled {
|
| 387 | 387 |
continue |
| 388 | 388 |
} |
| 389 |
- if pluginFilters.Include("capability") {
|
|
| 389 |
+ if pluginFilters.Contains("capability") {
|
|
| 390 | 390 |
for _, f := range p.GetTypes() {
|
| 391 | 391 |
if !pluginFilters.Match("capability", f.Capability) {
|
| 392 | 392 |
continue next |