| package worker |
| |
| import ( |
| "strings" |
| |
| "github.com/containerd/containerd/filters" |
| ) |
| |
| func adaptWorker(w Worker) filters.Adaptor { |
| return filters.AdapterFunc(func(fieldpath []string) (string, bool) { |
| if len(fieldpath) == 0 { |
| return "", false |
| } |
| |
| switch fieldpath[0] { |
| case "id": |
| return w.ID(), len(w.ID()) > 0 |
| case "labels": |
| return checkMap(fieldpath[1:], w.Labels()) |
| } |
| |
| return "", false |
| }) |
| } |
| |
| func checkMap(fieldpath []string, m map[string]string) (string, bool) { |
| if len(m) == 0 { |
| return "", false |
| } |
| |
| value, ok := m[strings.Join(fieldpath, ".")] |
| return value, ok |
| } |