diff options
author | Brent Baude <bbaude@redhat.com> | 2020-04-04 13:59:55 -0500 |
---|---|---|
committer | Brent Baude <bbaude@redhat.com> | 2020-04-06 12:12:59 -0500 |
commit | b22254dc8bfdea5153761e93298182286f874bac (patch) | |
tree | 16ff841496724a6b600824d06900a075d429e7dc /libpod/podfilters | |
parent | e318b09b6800ddb013ddf3b9a2fb99ebc55bd920 (diff) | |
download | podman-b22254dc8bfdea5153761e93298182286f874bac.tar.gz podman-b22254dc8bfdea5153761e93298182286f874bac.tar.bz2 podman-b22254dc8bfdea5153761e93298182286f874bac.zip |
podmanv2 ps
add the ability to list containers
Signed-off-by: Brent Baude <bbaude@redhat.com>
Diffstat (limited to 'libpod/podfilters')
-rw-r--r-- | libpod/podfilters/pods.go | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/libpod/podfilters/pods.go b/libpod/podfilters/pods.go deleted file mode 100644 index 54fa85edc..000000000 --- a/libpod/podfilters/pods.go +++ /dev/null @@ -1,115 +0,0 @@ -package podfilters - -import ( - "strconv" - "strings" - - "github.com/containers/libpod/libpod" - "github.com/containers/libpod/libpod/define" - "github.com/containers/libpod/pkg/util" - "github.com/pkg/errors" -) - -// GeneratePodFilterFunc takes a filter and filtervalue (key, value) -// and generates a libpod function that can be used to filter -// pods -func GeneratePodFilterFunc(filter, filterValue string) ( - func(pod *libpod.Pod) bool, error) { - switch filter { - case "ctr-ids": - return func(p *libpod.Pod) bool { - ctrIds, err := p.AllContainersByID() - if err != nil { - return false - } - return util.StringInSlice(filterValue, ctrIds) - }, nil - case "ctr-names": - return func(p *libpod.Pod) bool { - ctrs, err := p.AllContainers() - if err != nil { - return false - } - for _, ctr := range ctrs { - if filterValue == ctr.Name() { - return true - } - } - return false - }, nil - case "ctr-number": - return func(p *libpod.Pod) bool { - ctrIds, err := p.AllContainersByID() - if err != nil { - return false - } - - fVint, err2 := strconv.Atoi(filterValue) - if err2 != nil { - return false - } - return len(ctrIds) == fVint - }, nil - case "ctr-status": - if !util.StringInSlice(filterValue, - []string{"created", "restarting", "running", "paused", - "exited", "unknown"}) { - return nil, errors.Errorf("%s is not a valid status", filterValue) - } - return func(p *libpod.Pod) bool { - ctr_statuses, err := p.Status() - if err != nil { - return false - } - for _, ctr_status := range ctr_statuses { - state := ctr_status.String() - if ctr_status == define.ContainerStateConfigured { - state = "created" - } - if state == filterValue { - return true - } - } - return false - }, nil - case "id": - return func(p *libpod.Pod) bool { - return strings.Contains(p.ID(), filterValue) - }, nil - case "name": - return func(p *libpod.Pod) bool { - return strings.Contains(p.Name(), filterValue) - }, nil - case "status": - if !util.StringInSlice(filterValue, []string{"stopped", "running", "paused", "exited", "dead", "created"}) { - return nil, errors.Errorf("%s is not a valid pod status", filterValue) - } - return func(p *libpod.Pod) bool { - status, err := p.GetPodStatus() - if err != nil { - return false - } - if strings.ToLower(status) == filterValue { - return true - } - return false - }, nil - case "label": - var filterArray = strings.SplitN(filterValue, "=", 2) - var filterKey = filterArray[0] - if len(filterArray) > 1 { - filterValue = filterArray[1] - } else { - filterValue = "" - } - return func(p *libpod.Pod) bool { - for labelKey, labelValue := range p.Labels() { - if labelKey == filterKey && ("" == filterValue || labelValue == filterValue) { - return true - } - } - return false - }, nil - } - return nil, errors.Errorf("%s is an invalid filter", filter) -} |