diff options
author | baude <bbaude@redhat.com> | 2019-04-02 10:26:43 -0500 |
---|---|---|
committer | baude <bbaude@redhat.com> | 2019-04-04 14:41:50 -0500 |
commit | dc94dbd3c17c9011fc1e851694a2190dcf6c2b3c (patch) | |
tree | b887cd75144e555acfb4a346f43b89cdf5470d8c /pkg/adapter/images.go | |
parent | 1759eb09e1c13bc8392d515d69ca93226d067c73 (diff) | |
download | podman-dc94dbd3c17c9011fc1e851694a2190dcf6c2b3c.tar.gz podman-dc94dbd3c17c9011fc1e851694a2190dcf6c2b3c.tar.bz2 podman-dc94dbd3c17c9011fc1e851694a2190dcf6c2b3c.zip |
podman-remote image tree
add the ability for the podman-remote client to be able to print an
image tree.
Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'pkg/adapter/images.go')
-rw-r--r-- | pkg/adapter/images.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/pkg/adapter/images.go b/pkg/adapter/images.go new file mode 100644 index 000000000..c8ea1cdea --- /dev/null +++ b/pkg/adapter/images.go @@ -0,0 +1,34 @@ +// +build !remoteclient + +package adapter + +import ( + "github.com/containers/libpod/cmd/podman/cliconfig" + "github.com/containers/libpod/libpod/image" + "github.com/pkg/errors" +) + +// Tree ... +func (r *LocalRuntime) Tree(c *cliconfig.TreeValues) (*image.InfoImage, map[string]*image.LayerInfo, *ContainerImage, error) { + img, err := r.NewImageFromLocal(c.InputArgs[0]) + 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 +} |