Skip to content

Commit

Permalink
podman secret create --replace nonexistant should not fail
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
  • Loading branch information
rhatdan committed May 14, 2024
1 parent 98edaeb commit 272147b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
10 changes: 6 additions & 4 deletions pkg/secrets/secrets.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,13 @@ func (s *SecretsManager) Store(name string, data []byte, driverType string, opti
}

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

Check failure on line 222 in pkg/secrets/secrets.go

View workflow job for this annotation

GitHub Actions / lint

unnecessary leading newline (whitespace)

Check failure on line 223 in pkg/secrets/secrets.go

View workflow job for this annotation

GitHub Actions / lint

File is not `gofumpt`-ed (gofumpt)
if err == nil {
if !errors.Is(err, define.ErrNoSuchSecret) {
return "", fmt.Errorf("deleting driver secret %s: %w", secr.ID, err)
}
} else {
if err := s.delete(secr.ID); err != nil && !errors.Is(err, define.ErrNoSuchSecret) {
return "", fmt.Errorf("deleting secret %s: %w", secr.ID, err)
}
Expand Down
14 changes: 14 additions & 0 deletions pkg/secrets/secrets_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,20 @@ func TestAddReplaceSecretName(t *testing.T) {

_, err = manager.Store("mysecret", []byte("mydata.diff"), drivertype, storeOpts)
require.NoError(t, err)

_, data, err := manager.LookupSecretData("mysecret")
require.NoError(t, err)
require.Equal(t, string(data), "mydata.diff")

_, err = manager.Store("nonexistingsecret", []byte("mydata"), drivertype, storeOpts)
require.NoError(t, err)

storeOpts.Replace = false
_, err = manager.Store("nonexistingsecret", []byte("newdata"), drivertype, storeOpts)
require.Error(t, err)

_, err = manager.Delete("nonexistingsecret")
require.NoError(t, err)
}

func TestAddSecretPrefix(t *testing.T) {
Expand Down

0 comments on commit 272147b

Please sign in to comment.