Merge pull request #5236 from marusak/filter_by_id

apiv2: Image filtering and fixup docs
This commit is contained in:
OpenShift Merge Robot
2020-02-21 12:17:38 -05:00
committed by GitHub
3 changed files with 25 additions and 15 deletions

View File

@ -102,6 +102,13 @@ func ReferenceFilter(ctx context.Context, referenceFilter string) ResultFilter {
}
}
// IdFilter allows you to filter by image Id
func IdFilter(idFilter string) ResultFilter {
return func(i *Image) bool {
return i.ID() == idFilter
}
}
// OutputImageFilter allows you to filter by an a specific image name
func OutputImageFilter(userImage *Image) ResultFilter {
return func(i *Image) bool {
@ -165,6 +172,8 @@ func (ir *Runtime) createFilterFuncs(filters []string, img *Image) ([]ResultFilt
case "reference":
referenceFilter := strings.Join(splitFilter[1:], "=")
filterFuncs = append(filterFuncs, ReferenceFilter(ctx, referenceFilter))
case "id":
filterFuncs = append(filterFuncs, IdFilter(splitFilter[1]))
default:
return nil, errors.Errorf("invalid filter %s ", splitFilter[0])
}

View File

@ -615,21 +615,21 @@ func (s *APIServer) registerContainersHandlers(r *mux.Router) error {
// name: filters
// type: string
// description: |
// Returns a list of containers.
// - ancestor=(<image-name>[:<tag>], <image id>, or <image@digest>)
// - before=(<container id> or <container name>)
// - expose=(<port>[/<proto>]|<startport-endport>/[<proto>])
// - exited=<int> containers with exit code of <int>
// - health=(starting|healthy|unhealthy|none)
// - id=<ID> a container's ID
// - is-task=(true|false)
// - label=key or label="key=value" of a container label
// - name=<name> a container's name
// - network=(<network id> or <network name>)
// - publish=(<port>[/<proto>]|<startport-endport>/[<proto>])
// - since=(<container id> or <container name>)
// - status=(created|restarting|running|removing|paused|exited|dead)
// - volume=(<volume name> or <mount point destination>)
// A JSON encoded value of the filters (a `map[string][]string`) to process on the containers list. Available filters:
// - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)
// - `before`=(`<container id>` or `<container name>`)
// - `expose`=(`<port>[/<proto>]` or `<startport-endport>/[<proto>]`)
// - `exited=<int>` containers with exit code of `<int>`
// - `health`=(`starting`, `healthy`, `unhealthy` or `none`)
// - `id=<ID>` a container's ID
// - `is-task`=(`true` or `false`)
// - `label`=(`key` or `"key=value"`) of an container label
// - `name=<name>` a container's name
// - `network`=(`<network id>` or `<network name>`)
// - `publish`=(`<port>[/<proto>]` or `<startport-endport>/[<proto>]`)
// - `since`=(`<container id>` or `<container name>`)
// - `status`=(`created`, `restarting`, `running`, `removing`, `paused`, `exited` or `dead`)
// - `volume`=(`<volume name>` or `<mount point destination>`)
// produces:
// - application/json
// responses:

View File

@ -648,6 +648,7 @@ func (s *APIServer) registerImagesHandlers(r *mux.Router) error {
// - `dangling=true`
// - `label=key` or `label="key=value"` of an image label
// - `reference`=(`<image-name>[:<tag>]`)
// - `id`=(`<image-id>`)
// - `since`=(`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`)
// type: string
// produces: