diff options
author | Jhon Honce <jhonce@redhat.com> | 2020-03-12 10:49:03 -0700 |
---|---|---|
committer | Jhon Honce <jhonce@redhat.com> | 2020-03-18 16:41:12 -0700 |
commit | fbe743501e2a3ea28fe446754b9b12988b4e7a0e (patch) | |
tree | 7582c99d828bcbc83b6bb312e253f006ac637734 /pkg/domain/infra/runtime_abi.go | |
parent | bd9386ddac4ef6730fbe6ce4104e80f56a48fe43 (diff) | |
download | podman-fbe743501e2a3ea28fe446754b9b12988b4e7a0e.tar.gz podman-fbe743501e2a3ea28fe446754b9b12988b4e7a0e.tar.bz2 podman-fbe743501e2a3ea28fe446754b9b12988b4e7a0e.zip |
V2 podman command
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'pkg/domain/infra/runtime_abi.go')
-rw-r--r-- | pkg/domain/infra/runtime_abi.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pkg/domain/infra/runtime_abi.go b/pkg/domain/infra/runtime_abi.go new file mode 100644 index 000000000..de996f567 --- /dev/null +++ b/pkg/domain/infra/runtime_abi.go @@ -0,0 +1,39 @@ +// +build ABISupport + +package infra + +import ( + "context" + "fmt" + + "github.com/containers/libpod/pkg/bindings" + "github.com/containers/libpod/pkg/domain/entities" + "github.com/containers/libpod/pkg/domain/infra/abi" + "github.com/containers/libpod/pkg/domain/infra/tunnel" +) + +// NewContainerEngine factory provides a libpod runtime for container-related operations +func NewContainerEngine(mode entities.EngineMode, opts entities.EngineOptions) (entities.ContainerEngine, error) { + switch mode { + case entities.ABIMode: + r, err := NewLibpodRuntime(opts.FlagSet, opts.Flags) + return &abi.ContainerEngine{ContainerEngine: r}, err + case entities.TunnelMode: + ctx, err := bindings.NewConnection(context.Background(), opts.Uri.String(), opts.Identities...) + return &tunnel.ContainerEngine{ClientCxt: ctx}, err + } + return nil, fmt.Errorf("runtime mode '%v' is not supported", mode) +} + +// NewContainerEngine factory provides a libpod runtime for image-related operations +func NewImageEngine(mode entities.EngineMode, opts entities.EngineOptions) (entities.ImageEngine, error) { + switch mode { + case entities.ABIMode: + r, err := NewLibpodImageRuntime(opts.FlagSet, opts.Flags) + return r, err + case entities.TunnelMode: + ctx, err := bindings.NewConnection(context.Background(), opts.Uri.String(), opts.Identities...) + return &tunnel.ImageEngine{ClientCxt: ctx}, err + } + return nil, fmt.Errorf("runtime mode '%v' is not supported", mode) +} |