diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-03-20 22:22:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-20 22:22:20 +0100 |
commit | 7a095af92a6a39845b1c362222b23632f3e17001 (patch) | |
tree | 52a8692894690a8f09e025f90d6d2b5045259e4f /pkg/domain/infra/abi | |
parent | 6df1d2043bd3cd2252ea3d737cf542e332106074 (diff) | |
parent | c81e065149da73ae904aa19ee46a23d1ab8ce55c (diff) | |
download | podman-7a095af92a6a39845b1c362222b23632f3e17001.tar.gz podman-7a095af92a6a39845b1c362222b23632f3e17001.tar.bz2 podman-7a095af92a6a39845b1c362222b23632f3e17001.zip |
Merge pull request #5571 from baude/v2exists
podmanv2 container exists|wait
Diffstat (limited to 'pkg/domain/infra/abi')
-rw-r--r-- | pkg/domain/infra/abi/containers.go | 66 | ||||
-rw-r--r-- | pkg/domain/infra/abi/runtime.go | 2 |
2 files changed, 66 insertions, 2 deletions
diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go new file mode 100644 index 000000000..cdcd77246 --- /dev/null +++ b/pkg/domain/infra/abi/containers.go @@ -0,0 +1,66 @@ +// +build ABISupport + +package abi + +import ( + "context" + + "github.com/containers/libpod/libpod/define" + "github.com/containers/libpod/pkg/adapter/shortcuts" + "github.com/containers/libpod/pkg/domain/entities" + "github.com/pkg/errors" +) + +// TODO: Should return *entities.ContainerExistsReport, error +func (ic *ContainerEngine) ContainerExists(ctx context.Context, nameOrId string) (*entities.BoolReport, error) { + _, err := ic.Libpod.LookupContainer(nameOrId) + if err != nil && errors.Cause(err) != define.ErrNoSuchCtr { + return nil, err + } + return &entities.BoolReport{Value: err == nil}, nil +} + +func (ic *ContainerEngine) ContainerWait(ctx context.Context, namesOrIds []string, options entities.WaitOptions) ([]entities.WaitReport, error) { + var ( + responses []entities.WaitReport + ) + ctrs, err := shortcuts.GetContainersByContext(false, options.Latest, namesOrIds, ic.Libpod) + if err != nil { + return nil, err + } + for _, c := range ctrs { + response := entities.WaitReport{Id: c.ID()} + exitCode, err := c.WaitForConditionWithInterval(options.Interval, options.Condition) + if err != nil { + response.Error = err + } else { + response.ExitCode = exitCode + } + responses = append(responses, response) + } + return responses, nil +} + +func (ic *ContainerEngine) ContainerDelete(ctx context.Context, opts entities.ContainerDeleteOptions) (*entities.ContainerDeleteReport, error) { + panic("implement me") +} + +func (ic *ContainerEngine) ContainerPrune(ctx context.Context) (*entities.ContainerPruneReport, error) { + panic("implement me") +} + +func (ic *ContainerEngine) PodDelete(ctx context.Context, opts entities.PodPruneOptions) (*entities.PodDeleteReport, error) { + panic("implement me") +} + +func (ic *ContainerEngine) PodPrune(ctx context.Context) (*entities.PodPruneReport, error) { + panic("implement me") +} + +func (ic *ContainerEngine) VolumeDelete(ctx context.Context, opts entities.VolumeDeleteOptions) (*entities.VolumeDeleteReport, error) { + panic("implement me") +} + +func (ic *ContainerEngine) VolumePrune(ctx context.Context) (*entities.VolumePruneReport, error) { + panic("implement me") +} diff --git a/pkg/domain/infra/abi/runtime.go b/pkg/domain/infra/abi/runtime.go index 479a69586..b53fb6d3a 100644 --- a/pkg/domain/infra/abi/runtime.go +++ b/pkg/domain/infra/abi/runtime.go @@ -4,7 +4,6 @@ package abi import ( "github.com/containers/libpod/libpod" - "github.com/containers/libpod/pkg/domain/entities" ) // Image-related runtime linked against libpod library @@ -14,6 +13,5 @@ type ImageEngine struct { // Container-related runtime linked against libpod library type ContainerEngine struct { - entities.ContainerEngine Libpod *libpod.Runtime } |