summaryrefslogtreecommitdiff
path: root/pkg/adapter
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/adapter')
-rw-r--r--pkg/adapter/containers.go14
-rw-r--r--pkg/adapter/images.go33
-rw-r--r--pkg/adapter/images_remote.go31
-rw-r--r--pkg/adapter/runtime.go9
-rw-r--r--pkg/adapter/runtime_remote.go4
5 files changed, 20 insertions, 71 deletions
diff --git a/pkg/adapter/containers.go b/pkg/adapter/containers.go
index cada93829..170b2e24e 100644
--- a/pkg/adapter/containers.go
+++ b/pkg/adapter/containers.go
@@ -26,7 +26,7 @@ import (
"github.com/containers/libpod/libpod/image"
"github.com/containers/libpod/libpod/logs"
"github.com/containers/libpod/pkg/adapter/shortcuts"
- "github.com/containers/libpod/pkg/systemdgen"
+ "github.com/containers/libpod/pkg/systemd/generate"
"github.com/containers/storage"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -1154,7 +1154,7 @@ func generateServiceName(c *cliconfig.GenerateSystemdValues, ctr *libpod.Contain
// generateSystemdgenContainerInfo is a helper to generate a
// systemdgen.ContainerInfo for `GenerateSystemd`.
-func (r *LocalRuntime) generateSystemdgenContainerInfo(c *cliconfig.GenerateSystemdValues, nameOrID string, pod *libpod.Pod) (*systemdgen.ContainerInfo, bool, error) {
+func (r *LocalRuntime) generateSystemdgenContainerInfo(c *cliconfig.GenerateSystemdValues, nameOrID string, pod *libpod.Pod) (*generate.ContainerInfo, bool, error) {
ctr, err := r.Runtime.LookupContainer(nameOrID)
if err != nil {
return nil, false, err
@@ -1172,7 +1172,7 @@ func (r *LocalRuntime) generateSystemdgenContainerInfo(c *cliconfig.GenerateSyst
}
name, serviceName := generateServiceName(c, ctr, pod)
- info := &systemdgen.ContainerInfo{
+ info := &generate.ContainerInfo{
ServiceName: serviceName,
ContainerName: name,
RestartPolicy: c.RestartPolicy,
@@ -1187,7 +1187,7 @@ func (r *LocalRuntime) generateSystemdgenContainerInfo(c *cliconfig.GenerateSyst
// GenerateSystemd creates a unit file for a container or pod.
func (r *LocalRuntime) GenerateSystemd(c *cliconfig.GenerateSystemdValues) (string, error) {
- opts := systemdgen.Options{
+ opts := generate.Options{
Files: c.Files,
New: c.New,
}
@@ -1196,7 +1196,7 @@ func (r *LocalRuntime) GenerateSystemd(c *cliconfig.GenerateSystemdValues) (stri
if info, found, err := r.generateSystemdgenContainerInfo(c, c.InputArgs[0], nil); found && err != nil {
return "", err
} else if found && err == nil {
- return systemdgen.CreateContainerSystemdUnit(info, opts)
+ return generate.CreateContainerSystemdUnit(info, opts)
}
// --new does not support pods.
@@ -1242,7 +1242,7 @@ func (r *LocalRuntime) GenerateSystemd(c *cliconfig.GenerateSystemdValues) (stri
// Traverse the dependency graph and create systemdgen.ContainerInfo's for
// each container.
- containerInfos := []*systemdgen.ContainerInfo{podInfo}
+ containerInfos := []*generate.ContainerInfo{podInfo}
for ctr, dependencies := range graph.DependencyMap() {
// Skip the infra container as we already generated it.
if ctr.ID() == infraID {
@@ -1272,7 +1272,7 @@ func (r *LocalRuntime) GenerateSystemd(c *cliconfig.GenerateSystemdValues) (stri
if i > 0 {
builder.WriteByte('\n')
}
- out, err := systemdgen.CreateContainerSystemdUnit(info, opts)
+ out, err := generate.CreateContainerSystemdUnit(info, opts)
if err != nil {
return "", err
}
diff --git a/pkg/adapter/images.go b/pkg/adapter/images.go
deleted file mode 100644
index 762f1a656..000000000
--- a/pkg/adapter/images.go
+++ /dev/null
@@ -1,33 +0,0 @@
-// +build !remoteclient
-
-package adapter
-
-import (
- "github.com/containers/libpod/libpod/image"
- "github.com/pkg/errors"
-)
-
-// Tree ...
-func (r *LocalRuntime) Tree(imageOrID string) (*image.InfoImage, map[string]*image.LayerInfo, *ContainerImage, error) {
- img, err := r.NewImageFromLocal(imageOrID)
- if err != nil {
- return nil, nil, nil, err
- }
-
- // Fetch map of image-layers, which is used for printing output.
- layerInfoMap, err := image.GetLayersMapWithImageInfo(r.Runtime.ImageRuntime())
- if err != nil {
- return nil, nil, nil, errors.Wrapf(err, "error while retrieving layers of image %q", img.InputName)
- }
-
- // Create an imageInfo and fill the image and layer info
- imageInfo := &image.InfoImage{
- ID: img.ID(),
- Tags: img.Names(),
- }
-
- if err := image.BuildImageHierarchyMap(imageInfo, layerInfoMap, img.TopLayer()); err != nil {
- return nil, nil, nil, err
- }
- return imageInfo, layerInfoMap, img, nil
-}
diff --git a/pkg/adapter/images_remote.go b/pkg/adapter/images_remote.go
index 1d4997d9a..e7b38dccc 100644
--- a/pkg/adapter/images_remote.go
+++ b/pkg/adapter/images_remote.go
@@ -7,9 +7,7 @@ import (
"encoding/json"
iopodman "github.com/containers/libpod/cmd/podman/varlink"
- "github.com/containers/libpod/libpod/image"
"github.com/containers/libpod/pkg/inspect"
- "github.com/pkg/errors"
)
// Inspect returns returns an ImageData struct from over a varlink connection
@@ -24,32 +22,3 @@ func (i *ContainerImage) Inspect(ctx context.Context) (*inspect.ImageData, error
}
return &data, nil
}
-
-// Tree ...
-func (r *LocalRuntime) Tree(imageOrID string) (*image.InfoImage, map[string]*image.LayerInfo, *ContainerImage, error) {
- layerInfoMap := make(map[string]*image.LayerInfo)
- imageInfo := &image.InfoImage{}
-
- img, err := r.NewImageFromLocal(imageOrID)
- if err != nil {
- return nil, nil, nil, err
- }
-
- reply, err := iopodman.GetLayersMapWithImageInfo().Call(r.Conn)
- if err != nil {
- return nil, nil, nil, errors.Wrap(err, "failed to obtain image layers")
- }
- if err := json.Unmarshal([]byte(reply), &layerInfoMap); err != nil {
- return nil, nil, nil, errors.Wrap(err, "failed to unmarshal image layers")
- }
-
- reply, err = iopodman.BuildImageHierarchyMap().Call(r.Conn, imageOrID)
- if err != nil {
- return nil, nil, nil, errors.Wrap(err, "failed to get build image map")
- }
- if err := json.Unmarshal([]byte(reply), imageInfo); err != nil {
- return nil, nil, nil, errors.Wrap(err, "failed to unmarshal build image map")
- }
-
- return imageInfo, layerInfoMap, img, nil
-}
diff --git a/pkg/adapter/runtime.go b/pkg/adapter/runtime.go
index 40089797d..dfe6b7f07 100644
--- a/pkg/adapter/runtime.go
+++ b/pkg/adapter/runtime.go
@@ -133,6 +133,15 @@ func (r *LocalRuntime) NewImageFromLocal(name string) (*ContainerImage, error) {
return &ContainerImage{img}, nil
}
+// ImageTree reutnrs an new image.Tree for the provided `imageOrID` and `whatrequires` flag
+func (r *LocalRuntime) ImageTree(imageOrID string, whatRequires bool) (string, error) {
+ img, err := r.Runtime.ImageRuntime().NewFromLocal(imageOrID)
+ if err != nil {
+ return "", err
+ }
+ return img.GenerateTree(whatRequires)
+}
+
// LoadFromArchiveReference calls into local storage to load an image from an archive
func (r *LocalRuntime) LoadFromArchiveReference(ctx context.Context, srcRef types.ImageReference, signaturePolicyPath string, writer io.Writer) ([]*ContainerImage, error) {
var containerImages []*ContainerImage
diff --git a/pkg/adapter/runtime_remote.go b/pkg/adapter/runtime_remote.go
index c908358ff..220d4cf75 100644
--- a/pkg/adapter/runtime_remote.go
+++ b/pkg/adapter/runtime_remote.go
@@ -344,6 +344,10 @@ func (r *LocalRuntime) New(ctx context.Context, name, signaturePolicyPath, authf
return newImage, nil
}
+func (r *LocalRuntime) ImageTree(imageOrID string, whatRequires bool) (string, error) {
+ return iopodman.ImageTree().Call(r.Conn, imageOrID, whatRequires)
+}
+
// IsParent goes through the layers in the store and checks if i.TopLayer is
// the parent of any other layer in store. Double check that image with that
// layer exists as well.