aboutsummaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-08-04 10:12:27 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-08-05 10:43:32 +0000
commita1e3e542fff562d885354c55f04e0b7f5097a39b (patch)
tree7209d164b97252913bd8533a4326d53629e7566d /pkg
parentdebf23c72ae1638a7efb294b6df9497224978d01 (diff)
downloadpodman-a1e3e542fff562d885354c55f04e0b7f5097a39b.tar.gz
podman-a1e3e542fff562d885354c55f04e0b7f5097a39b.tar.bz2
podman-a1e3e542fff562d885354c55f04e0b7f5097a39b.zip
Make one runtime for the varlink service
Rather than making a runtime each time a client hits a varlink endpoint, we now make a single runtime when the varlink service starts up. This fixes a problem where we hit a max inotify limit from CNI. Resolves: #1211 Signed-off-by: baude <bbaude@redhat.com> Closes: #1215 Approved by: rhatdan
Diffstat (limited to 'pkg')
-rw-r--r--pkg/varlinkapi/config.go6
-rw-r--r--pkg/varlinkapi/containers.go113
-rw-r--r--pkg/varlinkapi/containers_create.go17
-rw-r--r--pkg/varlinkapi/images.go90
-rw-r--r--pkg/varlinkapi/system.go7
5 files changed, 48 insertions, 185 deletions
diff --git a/pkg/varlinkapi/config.go b/pkg/varlinkapi/config.go
index 3c6a3311c..2da3787be 100644
--- a/pkg/varlinkapi/config.go
+++ b/pkg/varlinkapi/config.go
@@ -2,6 +2,7 @@ package varlinkapi
import (
ioprojectatomicpodman "github.com/projectatomic/libpod/cmd/podman/varlink"
+ "github.com/projectatomic/libpod/libpod"
"github.com/urfave/cli"
)
@@ -9,10 +10,11 @@ import (
type LibpodAPI struct {
Cli *cli.Context
ioprojectatomicpodman.VarlinkInterface
+ Runtime *libpod.Runtime
}
// New creates a new varlink client
-func New(cli *cli.Context) *ioprojectatomicpodman.VarlinkInterface {
- lp := LibpodAPI{Cli: cli}
+func New(cli *cli.Context, runtime *libpod.Runtime) *ioprojectatomicpodman.VarlinkInterface {
+ lp := LibpodAPI{Cli: cli, Runtime: runtime}
return ioprojectatomicpodman.VarlinkNew(&lp)
}
diff --git a/pkg/varlinkapi/containers.go b/pkg/varlinkapi/containers.go
index 1d2379355..82cd135c3 100644
--- a/pkg/varlinkapi/containers.go
+++ b/pkg/varlinkapi/containers.go
@@ -12,7 +12,6 @@ import (
"github.com/containers/storage/pkg/archive"
"github.com/pkg/errors"
"github.com/projectatomic/libpod/cmd/podman/batchcontainer"
- "github.com/projectatomic/libpod/cmd/podman/libpodruntime"
"github.com/projectatomic/libpod/cmd/podman/varlink"
"github.com/projectatomic/libpod/libpod"
)
@@ -23,11 +22,7 @@ func (i *LibpodAPI) ListContainers(call ioprojectatomicpodman.VarlinkCall) error
listContainers []ioprojectatomicpodman.ListContainerData
)
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- containers, err := runtime.GetAllContainers()
+ containers, err := i.Runtime.GetAllContainers()
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -48,11 +43,7 @@ func (i *LibpodAPI) ListContainers(call ioprojectatomicpodman.VarlinkCall) error
// GetContainer ...
func (i *LibpodAPI) GetContainer(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -69,11 +60,7 @@ func (i *LibpodAPI) GetContainer(call ioprojectatomicpodman.VarlinkCall, name st
// InspectContainer ...
func (i *LibpodAPI) InspectContainer(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -94,11 +81,7 @@ func (i *LibpodAPI) InspectContainer(call ioprojectatomicpodman.VarlinkCall, nam
// ListContainerProcesses ...
func (i *LibpodAPI) ListContainerProcesses(call ioprojectatomicpodman.VarlinkCall, name string, opts []string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -126,11 +109,7 @@ func (i *LibpodAPI) ListContainerProcesses(call ioprojectatomicpodman.VarlinkCal
// GetContainerLogs ...
func (i *LibpodAPI) GetContainerLogs(call ioprojectatomicpodman.VarlinkCall, name string) error {
var logs []string
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -190,11 +169,7 @@ func (i *LibpodAPI) GetContainerLogs(call ioprojectatomicpodman.VarlinkCall, nam
// ListContainerChanges ...
func (i *LibpodAPI) ListContainerChanges(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- changes, err := runtime.GetDiff("", name)
+ changes, err := i.Runtime.GetDiff("", name)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -214,11 +189,7 @@ func (i *LibpodAPI) ListContainerChanges(call ioprojectatomicpodman.VarlinkCall,
// ExportContainer ...
func (i *LibpodAPI) ExportContainer(call ioprojectatomicpodman.VarlinkCall, name, path string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -230,11 +201,7 @@ func (i *LibpodAPI) ExportContainer(call ioprojectatomicpodman.VarlinkCall, name
// GetContainerStats ...
func (i *LibpodAPI) GetContainerStats(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -267,11 +234,7 @@ func (i *LibpodAPI) ResizeContainerTty(call ioprojectatomicpodman.VarlinkCall) e
// StartContainer ...
func (i *LibpodAPI) StartContainer(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -290,11 +253,7 @@ func (i *LibpodAPI) StartContainer(call ioprojectatomicpodman.VarlinkCall, name
// StopContainer ...
func (i *LibpodAPI) StopContainer(call ioprojectatomicpodman.VarlinkCall, name string, timeout int64) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -306,11 +265,7 @@ func (i *LibpodAPI) StopContainer(call ioprojectatomicpodman.VarlinkCall, name s
// RestartContainer ...
func (i *LibpodAPI) RestartContainer(call ioprojectatomicpodman.VarlinkCall, name string, timeout int64) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -327,11 +282,7 @@ func (i *LibpodAPI) KillContainer(call ioprojectatomicpodman.VarlinkCall, name s
if signal != -1 {
killSignal = uint(signal)
}
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -353,11 +304,7 @@ func (i *LibpodAPI) RenameContainer(call ioprojectatomicpodman.VarlinkCall) erro
// PauseContainer ...
func (i *LibpodAPI) PauseContainer(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -369,11 +316,7 @@ func (i *LibpodAPI) PauseContainer(call ioprojectatomicpodman.VarlinkCall, name
// UnpauseContainer ...
func (i *LibpodAPI) UnpauseContainer(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -391,11 +334,7 @@ func (i *LibpodAPI) AttachToContainer(call ioprojectatomicpodman.VarlinkCall) er
// WaitContainer ...
func (i *LibpodAPI) WaitContainer(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
@@ -410,15 +349,11 @@ func (i *LibpodAPI) WaitContainer(call ioprojectatomicpodman.VarlinkCall, name s
// RemoveContainer ...
func (i *LibpodAPI) RemoveContainer(call ioprojectatomicpodman.VarlinkCall, name string, force bool) error {
ctx := getContext()
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
- if err := runtime.RemoveContainer(ctx, ctr, force); err != nil {
+ if err := i.Runtime.RemoveContainer(ctx, ctr, force); err != nil {
return call.ReplyErrorOccurred(err.Error())
}
return call.ReplyRemoveContainer(ctr.ID())
@@ -429,11 +364,7 @@ func (i *LibpodAPI) RemoveContainer(call ioprojectatomicpodman.VarlinkCall, name
func (i *LibpodAPI) DeleteStoppedContainers(call ioprojectatomicpodman.VarlinkCall) error {
ctx := getContext()
var deletedContainers []string
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- containers, err := runtime.GetAllContainers()
+ containers, err := i.Runtime.GetAllContainers()
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -443,7 +374,7 @@ func (i *LibpodAPI) DeleteStoppedContainers(call ioprojectatomicpodman.VarlinkCa
return call.ReplyErrorOccurred(err.Error())
}
if state != libpod.ContainerStateRunning {
- if err := runtime.RemoveContainer(ctx, ctr, false); err != nil {
+ if err := i.Runtime.RemoveContainer(ctx, ctr, false); err != nil {
return call.ReplyErrorOccurred(err.Error())
}
deletedContainers = append(deletedContainers, ctr.ID())
@@ -454,11 +385,7 @@ func (i *LibpodAPI) DeleteStoppedContainers(call ioprojectatomicpodman.VarlinkCa
// GetAttachSockets ...
func (i *LibpodAPI) GetAttachSockets(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
diff --git a/pkg/varlinkapi/containers_create.go b/pkg/varlinkapi/containers_create.go
index da6707248..6a601dae8 100644
--- a/pkg/varlinkapi/containers_create.go
+++ b/pkg/varlinkapi/containers_create.go
@@ -10,7 +10,6 @@ import (
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/pkg/signal"
- "github.com/projectatomic/libpod/cmd/podman/libpodruntime"
"github.com/projectatomic/libpod/cmd/podman/varlink"
"github.com/projectatomic/libpod/libpod"
"github.com/projectatomic/libpod/libpod/image"
@@ -22,22 +21,16 @@ import (
// CreateContainer ...
func (i *LibpodAPI) CreateContainer(call ioprojectatomicpodman.VarlinkCall, config ioprojectatomicpodman.Create) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- defer runtime.Shutdown(false)
-
- rtc := runtime.GetConfig()
+ rtc := i.Runtime.GetConfig()
ctx := getContext()
- newImage, err := runtime.ImageRuntime().New(ctx, config.Image, rtc.SignaturePolicyPath, "", os.Stderr, nil, image.SigningOptions{}, false, false)
+ newImage, err := i.Runtime.ImageRuntime().New(ctx, config.Image, rtc.SignaturePolicyPath, "", os.Stderr, nil, image.SigningOptions{}, false, false)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
data, err := newImage.Inspect(ctx)
- createConfig, err := varlinkCreateToCreateConfig(ctx, config, runtime, config.Image, data)
+ createConfig, err := varlinkCreateToCreateConfig(ctx, config, i.Runtime, config.Image, data)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -47,12 +40,12 @@ func (i *LibpodAPI) CreateContainer(call ioprojectatomicpodman.VarlinkCall, conf
return call.ReplyErrorOccurred(err.Error())
}
- options, err := createConfig.GetContainerCreateOptions(runtime)
+ options, err := createConfig.GetContainerCreateOptions(i.Runtime)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
- ctr, err := runtime.NewContainer(ctx, runtimeSpec, options...)
+ ctr, err := i.Runtime.NewContainer(ctx, runtimeSpec, options...)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
diff --git a/pkg/varlinkapi/images.go b/pkg/varlinkapi/images.go
index 385c7c1bc..f4ba8cbf3 100644
--- a/pkg/varlinkapi/images.go
+++ b/pkg/varlinkapi/images.go
@@ -17,7 +17,6 @@ import (
"github.com/pkg/errors"
"github.com/projectatomic/buildah"
"github.com/projectatomic/buildah/imagebuildah"
- "github.com/projectatomic/libpod/cmd/podman/libpodruntime"
"github.com/projectatomic/libpod/cmd/podman/varlink"
"github.com/projectatomic/libpod/libpod"
"github.com/projectatomic/libpod/libpod/image"
@@ -28,11 +27,7 @@ import (
// ListImages lists all the images in the store
// It requires no inputs.
func (i *LibpodAPI) ListImages(call ioprojectatomicpodman.VarlinkCall) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- images, err := runtime.ImageRuntime().GetImages()
+ images, err := i.Runtime.ImageRuntime().GetImages()
if err != nil {
return call.ReplyErrorOccurred(fmt.Sprintf("unable to get list of images %q", err))
}
@@ -60,11 +55,7 @@ func (i *LibpodAPI) ListImages(call ioprojectatomicpodman.VarlinkCall) error {
// GetImage returns a single image in the form of a ImageInList
func (i *LibpodAPI) GetImage(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().NewFromLocal(name)
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -101,14 +92,9 @@ func (i *LibpodAPI) BuildImage(call ioprojectatomicpodman.VarlinkCall, config io
memoryLimit int64
memorySwap int64
namespace []buildah.NamespaceOption
+ err error
)
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- defer runtime.Shutdown(false)
-
systemContext := types.SystemContext{}
dockerfiles := config.Dockerfile
contextDir := ""
@@ -215,7 +201,7 @@ func (i *LibpodAPI) BuildImage(call ioprojectatomicpodman.VarlinkCall, config io
call.Continues = true
}
- c := build(runtime, options, config.Dockerfile)
+ c := build(i.Runtime, options, config.Dockerfile)
var log []string
done := false
for {
@@ -249,7 +235,7 @@ func (i *LibpodAPI) BuildImage(call ioprojectatomicpodman.VarlinkCall, config io
}
}
call.Continues = false
- newImage, err := runtime.ImageRuntime().NewFromLocal(config.Tags[0])
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(config.Tags[0])
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -280,11 +266,7 @@ func (i *LibpodAPI) CreateImage(call ioprojectatomicpodman.VarlinkCall) error {
// InspectImage returns an image's inspect information as a string that can be serialized.
// Requires an image ID or name
func (i *LibpodAPI) InspectImage(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().NewFromLocal(name)
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
return call.ReplyImageNotFound(name)
}
@@ -299,11 +281,7 @@ func (i *LibpodAPI) InspectImage(call ioprojectatomicpodman.VarlinkCall, name st
// HistoryImage returns the history of the image's layers
// Requires an image or name
func (i *LibpodAPI) HistoryImage(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().NewFromLocal(name)
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
return call.ReplyImageNotFound(name)
}
@@ -329,11 +307,7 @@ func (i *LibpodAPI) HistoryImage(call ioprojectatomicpodman.VarlinkCall, name st
// PushImage pushes an local image to registry
// TODO We need to add options for signing, credentials, tls, and multi-tag
func (i *LibpodAPI) PushImage(call ioprojectatomicpodman.VarlinkCall, name, tag string, tlsVerify bool) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().NewFromLocal(name)
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
return call.ReplyImageNotFound(err.Error())
}
@@ -356,11 +330,7 @@ func (i *LibpodAPI) PushImage(call ioprojectatomicpodman.VarlinkCall, name, tag
// TagImage accepts an image name and tag as strings and tags an image in the local store.
func (i *LibpodAPI) TagImage(call ioprojectatomicpodman.VarlinkCall, name, tag string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().NewFromLocal(name)
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
return call.ReplyImageNotFound(name)
}
@@ -374,15 +344,11 @@ func (i *LibpodAPI) TagImage(call ioprojectatomicpodman.VarlinkCall, name, tag s
// remove the image even if being used by stopped containers
func (i *LibpodAPI) RemoveImage(call ioprojectatomicpodman.VarlinkCall, name string, force bool) error {
ctx := getContext()
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().NewFromLocal(name)
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
return call.ReplyImageNotFound(name)
}
- _, err = runtime.RemoveImage(ctx, newImage, force)
+ _, err = i.Runtime.RemoveImage(ctx, newImage, force)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -420,11 +386,7 @@ func (i *LibpodAPI) SearchImage(call ioprojectatomicpodman.VarlinkCall, name str
// DeleteUnusedImages deletes any images that do not have containers associated with it.
// TODO Filters are not implemented
func (i *LibpodAPI) DeleteUnusedImages(call ioprojectatomicpodman.VarlinkCall) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- images, err := runtime.ImageRuntime().GetImages()
+ images, err := i.Runtime.ImageRuntime().GetImages()
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -446,17 +408,13 @@ func (i *LibpodAPI) DeleteUnusedImages(call ioprojectatomicpodman.VarlinkCall) e
// Commit ...
func (i *LibpodAPI) Commit(call ioprojectatomicpodman.VarlinkCall, name, imageName string, changes []string, author, message string, pause bool) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- ctr, err := runtime.LookupContainer(name)
+ ctr, err := i.Runtime.LookupContainer(name)
if err != nil {
return call.ReplyContainerNotFound(name)
}
- sc := image.GetSystemContext(runtime.GetConfig().SignaturePolicyPath, "", false)
+ sc := image.GetSystemContext(i.Runtime.GetConfig().SignaturePolicyPath, "", false)
coptions := buildah.CommitOptions{
- SignaturePolicyPath: runtime.GetConfig().SignaturePolicyPath,
+ SignaturePolicyPath: i.Runtime.GetConfig().SignaturePolicyPath,
ReportWriter: nil,
SystemContext: sc,
PreferredManifestType: buildah.OCIv1ImageManifest,
@@ -478,10 +436,6 @@ func (i *LibpodAPI) Commit(call ioprojectatomicpodman.VarlinkCall, name, imageNa
// ImportImage imports an image from a tarball to the image store
func (i *LibpodAPI) ImportImage(call ioprojectatomicpodman.VarlinkCall, source, reference, message string, changes []string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
configChanges, err := util.GetImageConfig(changes)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
@@ -493,7 +447,7 @@ func (i *LibpodAPI) ImportImage(call ioprojectatomicpodman.VarlinkCall, source,
Config: configChanges,
History: history,
}
- newImage, err := runtime.ImageRuntime().Import(getContext(), source, reference, nil, image.SigningOptions{}, config)
+ newImage, err := i.Runtime.ImageRuntime().Import(getContext(), source, reference, nil, image.SigningOptions{}, config)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -503,11 +457,7 @@ func (i *LibpodAPI) ImportImage(call ioprojectatomicpodman.VarlinkCall, source,
// ExportImage exports an image to the provided destination
// destination must have the transport type!!
func (i *LibpodAPI) ExportImage(call ioprojectatomicpodman.VarlinkCall, name, destination string, compress bool, tags []string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().NewFromLocal(name)
+ newImage, err := i.Runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
return call.ReplyImageNotFound(name)
}
@@ -526,11 +476,7 @@ func (i *LibpodAPI) ExportImage(call ioprojectatomicpodman.VarlinkCall, name, de
// PullImage pulls an image from a registry to the image store.
// TODO This implementation is incomplete
func (i *LibpodAPI) PullImage(call ioprojectatomicpodman.VarlinkCall, name string) error {
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- newImage, err := runtime.ImageRuntime().New(getContext(), name, "", "", nil, &image.DockerRegistryOptions{}, image.SigningOptions{}, true, false)
+ newImage, err := i.Runtime.ImageRuntime().New(getContext(), name, "", "", nil, &image.DockerRegistryOptions{}, image.SigningOptions{}, true, false)
if err != nil {
return call.ReplyErrorOccurred(fmt.Sprintf("unable to pull %s: %s", name, err.Error()))
}
diff --git a/pkg/varlinkapi/system.go b/pkg/varlinkapi/system.go
index 63acad909..747a25966 100644
--- a/pkg/varlinkapi/system.go
+++ b/pkg/varlinkapi/system.go
@@ -4,7 +4,6 @@ import (
goruntime "runtime"
"strings"
- "github.com/projectatomic/libpod/cmd/podman/libpodruntime"
"github.com/projectatomic/libpod/cmd/podman/varlink"
"github.com/projectatomic/libpod/libpod"
)
@@ -36,11 +35,7 @@ func (i *LibpodAPI) Ping(call ioprojectatomicpodman.VarlinkCall) error {
// GetInfo returns details about the podman host and its stores
func (i *LibpodAPI) GetInfo(call ioprojectatomicpodman.VarlinkCall) error {
podmanInfo := ioprojectatomicpodman.PodmanInfo{}
- runtime, err := libpodruntime.GetRuntime(i.Cli)
- if err != nil {
- return call.ReplyRuntimeError(err.Error())
- }
- info, err := runtime.Info()
+ info, err := i.Runtime.Info()
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}