diff --git a/api/types/filters/parse.go b/api/types/filters/parse.go index 4c5aff6616..cd7ad92e79 100644 --- a/api/types/filters/parse.go +++ b/api/types/filters/parse.go @@ -36,6 +36,7 @@ func NewArgs(initialArgs ...KeyValuePair) Args { return args } +// Keys returns all the keys in list of Args func (args Args) Keys() []string { keys := make([]string, 0, len(args.fields)) for k := range args.fields { diff --git a/daemon/config/builder.go b/daemon/config/builder.go index 8d2d12b671..07eb5ced20 100644 --- a/daemon/config/builder.go +++ b/daemon/config/builder.go @@ -16,8 +16,10 @@ type BuilderGCRule struct { KeepStorage string `json:",omitempty"` } +// BuilderGCFilter contains garbage-collection filter rules for a BuildKit builder type BuilderGCFilter filters.Args +// MarshalJSON returns a JSON byte representation of the BuilderGCFilter func (x *BuilderGCFilter) MarshalJSON() ([]byte, error) { f := filters.Args(*x) keys := f.Keys() @@ -32,6 +34,7 @@ func (x *BuilderGCFilter) MarshalJSON() ([]byte, error) { return json.Marshal(arr) } +// UnmarshalJSON fills the BuilderGCFilter values structure from JSON input func (x *BuilderGCFilter) UnmarshalJSON(data []byte) error { var arr []string f := filters.NewArgs()