diff options
author | baude <bbaude@redhat.com> | 2018-03-06 10:42:13 -0600 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-03-07 20:59:11 +0000 |
commit | 4344639508ccd16041d1ec7fd531b6427f930374 (patch) | |
tree | 4b28256bae65377bdf4f4900461f3f5379869bf1 /libpod | |
parent | f57b7bbf43fe7fc7ada8055911c7ac55e53fa698 (diff) | |
download | podman-4344639508ccd16041d1ec7fd531b6427f930374.tar.gz podman-4344639508ccd16041d1ec7fd531b6427f930374.tar.bz2 podman-4344639508ccd16041d1ec7fd531b6427f930374.zip |
podman import, load, and commit are too verbose
The progress should not be show for import, load, and commit. It makes machine
parsing of the output much more difficult. Also, each command should output an
image ID or name for the user.
Added a --verbose flag for users that still want to see progress.
Resolves issue #450
Signed-off-by: baude <bbaude@redhat.com>
Closes: #456
Approved by: rhatdan
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/container_api.go | 11 | ||||
-rw-r--r-- | libpod/runtime_img.go | 24 |
2 files changed, 19 insertions, 16 deletions
diff --git a/libpod/container_api.go b/libpod/container_api.go index 38c3faeef..253428256 100644 --- a/libpod/container_api.go +++ b/libpod/container_api.go @@ -9,6 +9,7 @@ import ( "strconv" "time" + "github.com/containers/storage" "github.com/docker/docker/daemon/caps" "github.com/docker/docker/pkg/signal" "github.com/docker/docker/pkg/stringid" @@ -588,19 +589,19 @@ func (c *Container) Inspect(size bool) (*inspect.ContainerInspectData, error) { // Commit commits the changes between a container and its image, creating a new // image -func (c *Container) Commit(pause bool, options CopyOptions) error { +func (c *Container) Commit(pause bool, options CopyOptions) (*storage.Image, error) { if !c.locked { c.lock.Lock() defer c.lock.Unlock() if err := c.syncContainer(); err != nil { - return err + return nil, err } } if c.state.State == ContainerStateRunning && pause { if err := c.runtime.ociRuntime.pauseContainer(c); err != nil { - return errors.Wrapf(err, "error pausing container %q", c.ID()) + return nil, errors.Wrapf(err, "error pausing container %q", c.ID()) } defer func() { if err := c.runtime.ociRuntime.unpauseContainer(c); err != nil { @@ -611,13 +612,13 @@ func (c *Container) Commit(pause bool, options CopyOptions) error { tempFile, err := ioutil.TempFile(c.runtime.config.TmpDir, "podman-commit") if err != nil { - return errors.Wrapf(err, "error creating temp file") + return nil, errors.Wrapf(err, "error creating temp file") } defer os.Remove(tempFile.Name()) defer tempFile.Close() if err := c.export(tempFile.Name()); err != nil { - return err + return nil, err } return c.runtime.ImportImage(tempFile.Name(), options) } diff --git a/libpod/runtime_img.go b/libpod/runtime_img.go index 8a21785bf..bc328d5b9 100644 --- a/libpod/runtime_img.go +++ b/libpod/runtime_img.go @@ -1032,30 +1032,30 @@ func (r *Runtime) GetHistory(image string) ([]ociv1.History, []types.BlobInfo, s } // ImportImage imports an OCI format image archive into storage as an image -func (r *Runtime) ImportImage(path string, options CopyOptions) error { +func (r *Runtime) ImportImage(path string, options CopyOptions) (*storage.Image, error) { r.lock.RLock() defer r.lock.RUnlock() if !r.valid { - return ErrRuntimeStopped + return nil, ErrRuntimeStopped } file := TarballTransport + ":" + path src, err := alltransports.ParseImageName(file) if err != nil { - return errors.Wrapf(err, "error parsing image name %q", path) + return nil, errors.Wrapf(err, "error parsing image name %q", path) } updater, ok := src.(tarball.ConfigUpdater) if !ok { - return errors.Wrapf(err, "unexpected type, a tarball reference should implement tarball.ConfigUpdater") + return nil, errors.Wrapf(err, "unexpected type, a tarball reference should implement tarball.ConfigUpdater") } annotations := make(map[string]string) err = updater.ConfigUpdate(options.ImageConfig, annotations) if err != nil { - return errors.Wrapf(err, "error updating image config") + return nil, errors.Wrapf(err, "error updating image config") } var reference = options.Reference @@ -1065,24 +1065,26 @@ func (r *Runtime) ImportImage(path string, options CopyOptions) error { if reference == "" { reference, err = getImageDigest(src, sc) if err != nil { - return err + return nil, err } } policyContext, err := getPolicyContext(sc) if err != nil { - return err + return nil, err } defer policyContext.Destroy() - - copyOptions := common.GetCopyOptions(os.Stdout, "", nil, nil, common.SigningOptions{}, "", "", false) + copyOptions := common.GetCopyOptions(options.Writer, "", nil, nil, common.SigningOptions{}, "", "", false) dest, err := is.Transport.ParseStoreReference(r.store, reference) if err != nil { errors.Wrapf(err, "error getting image reference for %q", options.Reference) } - - return cp.Image(policyContext, dest, src, copyOptions) + if err = cp.Image(policyContext, dest, src, copyOptions); err != nil { + return nil, err + } + // Use no lock version of GetImage + return r.getImage(reference) } // GetImageInspectInfo returns the inspect information of an image |