Skip to content

Commit 272147b

Browse files
committed
podman secret create --replace nonexistant should not fail
Signed-off-by: Daniel J Walsh <[email protected]>
1 parent 98edaeb commit 272147b

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

pkg/secrets/secrets.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,13 @@ func (s *SecretsManager) Store(name string, data []byte, driverType string, opti
218218
}
219219

220220
if options.Replace {
221-
if err := driver.Delete(secr.ID); err != nil && !errors.Is(err, define.ErrNoSuchSecret) {
222-
return "", fmt.Errorf("deleting secret %s: %w", secr.ID, err)
223-
}
221+
err := driver.Delete(secr.ID)
222+
if err != nil {
224223

225-
if err == nil {
224+
if !errors.Is(err, define.ErrNoSuchSecret) {
225+
return "", fmt.Errorf("deleting driver secret %s: %w", secr.ID, err)
226+
}
227+
} else {
226228
if err := s.delete(secr.ID); err != nil && !errors.Is(err, define.ErrNoSuchSecret) {
227229
return "", fmt.Errorf("deleting secret %s: %w", secr.ID, err)
228230
}

pkg/secrets/secrets_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,20 @@ func TestAddReplaceSecretName(t *testing.T) {
166166

167167
_, err = manager.Store("mysecret", []byte("mydata.diff"), drivertype, storeOpts)
168168
require.NoError(t, err)
169+
170+
_, data, err := manager.LookupSecretData("mysecret")
171+
require.NoError(t, err)
172+
require.Equal(t, string(data), "mydata.diff")
173+
174+
_, err = manager.Store("nonexistingsecret", []byte("mydata"), drivertype, storeOpts)
175+
require.NoError(t, err)
176+
177+
storeOpts.Replace = false
178+
_, err = manager.Store("nonexistingsecret", []byte("newdata"), drivertype, storeOpts)
179+
require.Error(t, err)
180+
181+
_, err = manager.Delete("nonexistingsecret")
182+
require.NoError(t, err)
169183
}
170184

171185
func TestAddSecretPrefix(t *testing.T) {

0 commit comments

Comments
 (0)