diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-07-03 06:17:03 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-03 06:17:03 -0400 |
commit | 895b8151889422aac1f9b72eebe6d62e8e15095c (patch) | |
tree | 3694e61ecedcb8c8fb1b59dd12e1e882d7ce6ae0 /pkg/domain/infra | |
parent | 07716133c44c9c9593364029f4b98085d1be3bdd (diff) | |
parent | 8f6a0243f4b7f861a116c0dba5967b3cfe23d61f (diff) | |
download | podman-895b8151889422aac1f9b72eebe6d62e8e15095c.tar.gz podman-895b8151889422aac1f9b72eebe6d62e8e15095c.tar.bz2 podman-895b8151889422aac1f9b72eebe6d62e8e15095c.zip |
Merge pull request #10836 from Luap99/diff
podman diff accept two images or containers
Diffstat (limited to 'pkg/domain/infra')
-rw-r--r-- | pkg/domain/infra/abi/containers.go | 18 | ||||
-rw-r--r-- | pkg/domain/infra/abi/images.go | 8 | ||||
-rw-r--r-- | pkg/domain/infra/tunnel/containers.go | 14 | ||||
-rw-r--r-- | pkg/domain/infra/tunnel/images.go | 10 |
4 files changed, 26 insertions, 24 deletions
diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go index 47fa553ce..2c5300ccb 100644 --- a/pkg/domain/infra/abi/containers.go +++ b/pkg/domain/infra/abi/containers.go @@ -858,16 +858,26 @@ func (ic *ContainerEngine) ContainerListExternal(ctx context.Context) ([]entitie return ps.GetExternalContainerLists(ic.Libpod) } -// ContainerDiff provides changes to given container -func (ic *ContainerEngine) ContainerDiff(ctx context.Context, nameOrID string, opts entities.DiffOptions) (*entities.DiffReport, error) { +// Diff provides changes to given container +func (ic *ContainerEngine) Diff(ctx context.Context, namesOrIDs []string, opts entities.DiffOptions) (*entities.DiffReport, error) { + var ( + base string + parent string + ) if opts.Latest { ctnr, err := ic.Libpod.GetLatestContainer() if err != nil { return nil, errors.Wrap(err, "unable to get latest container") } - nameOrID = ctnr.ID() + base = ctnr.ID() + } + if len(namesOrIDs) > 0 { + base = namesOrIDs[0] + if len(namesOrIDs) > 1 { + parent = namesOrIDs[1] + } } - changes, err := ic.Libpod.GetDiff("", nameOrID) + changes, err := ic.Libpod.GetDiff(parent, base, opts.Type) return &entities.DiffReport{Changes: changes}, err } diff --git a/pkg/domain/infra/abi/images.go b/pkg/domain/infra/abi/images.go index 5992181d3..6d1acb590 100644 --- a/pkg/domain/infra/abi/images.go +++ b/pkg/domain/infra/abi/images.go @@ -403,14 +403,6 @@ func (ir *ImageEngine) Import(ctx context.Context, options entities.ImageImportO return &entities.ImageImportReport{Id: imageID}, nil } -func (ir *ImageEngine) Diff(_ context.Context, nameOrID string, _ entities.DiffOptions) (*entities.DiffReport, error) { - changes, err := ir.Libpod.GetDiff("", nameOrID) - if err != nil { - return nil, err - } - return &entities.DiffReport{Changes: changes}, nil -} - func (ir *ImageEngine) Search(ctx context.Context, term string, opts entities.ImageSearchOptions) ([]entities.ImageSearchReport, error) { filter, err := libimage.ParseSearchFilter(opts.Filters) if err != nil { diff --git a/pkg/domain/infra/tunnel/containers.go b/pkg/domain/infra/tunnel/containers.go index c02e36804..56315f46f 100644 --- a/pkg/domain/infra/tunnel/containers.go +++ b/pkg/domain/infra/tunnel/containers.go @@ -765,8 +765,18 @@ func (ic *ContainerEngine) ContainerRun(ctx context.Context, opts entities.Conta return &report, err } -func (ic *ContainerEngine) ContainerDiff(ctx context.Context, nameOrID string, _ entities.DiffOptions) (*entities.DiffReport, error) { - changes, err := containers.Diff(ic.ClientCtx, nameOrID, nil) +func (ic *ContainerEngine) Diff(ctx context.Context, namesOrIDs []string, opts entities.DiffOptions) (*entities.DiffReport, error) { + var base string + options := new(containers.DiffOptions).WithDiffType(opts.Type.String()) + if len(namesOrIDs) > 0 { + base = namesOrIDs[0] + if len(namesOrIDs) > 1 { + options.WithParent(namesOrIDs[1]) + } + } else { + return nil, errors.New("no arguments for diff") + } + changes, err := containers.Diff(ic.ClientCtx, base, options) return &entities.DiffReport{Changes: changes}, err } diff --git a/pkg/domain/infra/tunnel/images.go b/pkg/domain/infra/tunnel/images.go index 42027a2dc..db4e14aba 100644 --- a/pkg/domain/infra/tunnel/images.go +++ b/pkg/domain/infra/tunnel/images.go @@ -299,16 +299,6 @@ func (ir *ImageEngine) Save(ctx context.Context, nameOrID string, tags []string, return utils2.UntarToFileSystem(opts.Output, f, nil) } -// Diff reports the changes to the given image -func (ir *ImageEngine) Diff(ctx context.Context, nameOrID string, _ entities.DiffOptions) (*entities.DiffReport, error) { - options := new(images.DiffOptions) - changes, err := images.Diff(ir.ClientCtx, nameOrID, options) - if err != nil { - return nil, err - } - return &entities.DiffReport{Changes: changes}, nil -} - func (ir *ImageEngine) Search(ctx context.Context, term string, opts entities.ImageSearchOptions) ([]entities.ImageSearchReport, error) { mappedFilters := make(map[string][]string) filters, err := libimage.ParseSearchFilter(opts.Filters) |