Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 06944d9

Browse files
committed
Use multierror
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent 7a4683d commit 06944d9

File tree

13 files changed

+1102
-4
lines changed

13 files changed

+1102
-4
lines changed

Gopkg.lock

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Gopkg.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@ required = ["github.com/wadey/gocovmerge"]
134134
name = "github.com/dustin/go-humanize"
135135
version = "1.0.0"
136136

137+
[[constraint]]
138+
name = "github.com/hashicorp/go-multierror"
139+
version = "1.0.0"
140+
137141
[prune]
138142
non-go = true
139143
unused-packages = true

e2e/images_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ func TestImageRmForce(t *testing.T) {
120120

121121
cmd.Command = dockerCli.Command("app", "image", "rm", "--force", imageID)
122122
icmd.RunCmd(cmd).Assert(t, icmd.Success)
123+
124+
expectedOutput := "REPOSITORY TAG APP IMAGE ID APP NAME CREATED \n"
125+
expectImageListOutput(t, cmd, expectedOutput)
123126
})
124127
}
125128

internal/store/bundle.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import (
99
"strings"
1010

1111
"github.com/docker/app/internal/relocated"
12-
1312
"github.com/docker/distribution/reference"
13+
multierror "github.com/hashicorp/go-multierror"
1414
digest "github.com/opencontainers/go-digest"
1515
"github.com/pkg/errors"
1616
)
@@ -118,15 +118,15 @@ func (b *bundleStore) Remove(ref reference.Reference, force bool) error {
118118
if len(refs) == 0 {
119119
return fmt.Errorf("no such image %q", reference.FamiliarString(ref))
120120
} else if len(refs) > 1 {
121-
var failure error
122121
if force {
122+
var failures *multierror.Error
123123
toDelete := append([]reference.Reference{}, refs...)
124124
for _, r := range toDelete {
125125
if err := b.doRemove(r); err != nil {
126-
failure = err
126+
failures = multierror.Append(failures, err)
127127
}
128128
}
129-
return failure
129+
return failures.ErrorOrNil()
130130
}
131131
return fmt.Errorf("unable to delete %q - App is referenced in multiple repositories", reference.FamiliarString(ref))
132132
}

0 commit comments

Comments
 (0)