summaryrefslogtreecommitdiff
path: root/pkg/domain/infra
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-07-03 06:17:03 -0400
committerGitHub <noreply@github.com>2021-07-03 06:17:03 -0400
commit895b8151889422aac1f9b72eebe6d62e8e15095c (patch)
tree3694e61ecedcb8c8fb1b59dd12e1e882d7ce6ae0 /pkg/domain/infra
parent07716133c44c9c9593364029f4b98085d1be3bdd (diff)
parent8f6a0243f4b7f861a116c0dba5967b3cfe23d61f (diff)
downloadpodman-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.go18
-rw-r--r--pkg/domain/infra/abi/images.go8
-rw-r--r--pkg/domain/infra/tunnel/containers.go14
-rw-r--r--pkg/domain/infra/tunnel/images.go10
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)