From a7ea12eb8ef4c58f15de5aa2fbf622c48429fd89 Mon Sep 17 00:00:00 2001 From: Marcel Lauhoff Date: Thu, 4 Aug 2022 17:15:52 +0200 Subject: [PATCH] rbd: Handle encryption type default at a more meaningful place Different places have different meaningful fallback. When parsing from user we should default to block, when parsing stored config we should default to invalid and handle that as an error. Signed-off-by: Marcel Lauhoff --- internal/rbd/encryption.go | 7 ++++--- internal/rbd/rbd_journal.go | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/rbd/encryption.go b/internal/rbd/encryption.go index 83da96727..c72113288 100644 --- a/internal/rbd/encryption.go +++ b/internal/rbd/encryption.go @@ -109,7 +109,7 @@ func (ri *rbdImage) isFileEncrypted() bool { } func IsFileEncrypted(ctx context.Context, volOptions map[string]string) (bool, error) { - _, encType, err := ParseEncryptionOpts(ctx, volOptions) + _, encType, err := ParseEncryptionOpts(ctx, volOptions, util.EncryptionTypeInvalid) if err != nil { return false, err } @@ -306,7 +306,7 @@ func (rv *rbdVolume) openEncryptedDevice(ctx context.Context, devicePath string) } func (ri *rbdImage) initKMS(ctx context.Context, volOptions, credentials map[string]string) error { - kmsID, encType, err := ParseEncryptionOpts(ctx, volOptions) + kmsID, encType, err := ParseEncryptionOpts(ctx, volOptions, rbdDefaultEncryptionType) if err != nil { return err } else if kmsID == "" { @@ -333,6 +333,7 @@ func (ri *rbdImage) initKMS(ctx context.Context, volOptions, credentials map[str func ParseEncryptionOpts( ctx context.Context, volOptions map[string]string, + fallbackEncType util.EncryptionType, ) (string, util.EncryptionType, error) { var ( err error @@ -348,7 +349,7 @@ func ParseEncryptionOpts( return "", util.EncryptionTypeInvalid, err } - encType := util.FetchEncryptionType(volOptions, rbdDefaultEncryptionType) + encType := util.FetchEncryptionType(volOptions, fallbackEncType) return kmsID, encType, nil } diff --git a/internal/rbd/rbd_journal.go b/internal/rbd/rbd_journal.go index d47092994..f512cc340 100644 --- a/internal/rbd/rbd_journal.go +++ b/internal/rbd/rbd_journal.go @@ -568,7 +568,7 @@ func RegenerateJournal( rbdVol.Owner = owner - kmsID, _, err = ParseEncryptionOpts(ctx, volumeAttributes) + kmsID, encryptionType, err = ParseEncryptionOpts(ctx, volumeAttributes, util.EncryptionTypeInvalid) if err != nil { return "", err }