From 32a760d3f6c3c631dc7669385f507ac32fc7d699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20=C4=8Ctvrtka?= Date: Mon, 23 Sep 2024 16:34:26 +0200 Subject: [PATCH] PMM-13132 Move encryption rotation to services. --- managed/cmd/pmm-encryption-rotation/main.go | 3 ++- .../{models => services/encryption}/encryption_rotation.go | 7 ++++--- .../encryption}/encryption_rotation_test.go | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) rename managed/{models => services/encryption}/encryption_rotation.go (94%) rename managed/{models => services/encryption}/encryption_rotation_test.go (98%) diff --git a/managed/cmd/pmm-encryption-rotation/main.go b/managed/cmd/pmm-encryption-rotation/main.go index 2cd78bf0a4..1aa01325f0 100644 --- a/managed/cmd/pmm-encryption-rotation/main.go +++ b/managed/cmd/pmm-encryption-rotation/main.go @@ -25,6 +25,7 @@ import ( "github.com/sirupsen/logrus" "github.com/percona/pmm/managed/models" + encryptionService "github.com/percona/pmm/managed/services/encryption" "github.com/percona/pmm/utils/logger" "github.com/percona/pmm/version" ) @@ -44,7 +45,7 @@ func main() { os.Exit(codeDBConnectionFailed) } - statusCode := models.RotateEncryptionKey(sqlDB, "pmm-managed") + statusCode := encryptionService.RotateEncryptionKey(sqlDB, "pmm-managed") sqlDB.Close() //nolint:errcheck os.Exit(statusCode) diff --git a/managed/models/encryption_rotation.go b/managed/services/encryption/encryption_rotation.go similarity index 94% rename from managed/models/encryption_rotation.go rename to managed/services/encryption/encryption_rotation.go index d6f0ae4936..37872e545a 100644 --- a/managed/models/encryption_rotation.go +++ b/managed/services/encryption/encryption_rotation.go @@ -13,7 +13,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package models +package encryption import ( "database/sql" @@ -26,6 +26,7 @@ import ( "gopkg.in/reform.v1" "gopkg.in/reform.v1/dialects/postgresql" + "github.com/percona/pmm/managed/models" "github.com/percona/pmm/managed/utils/encryption" ) @@ -109,7 +110,7 @@ func isPMMServerStatus(status string) bool { func rotateEncryptionKey(db *reform.DB, dbName string) error { return db.InTransaction(func(tx *reform.TX) error { logrus.Infof("DB %s is being decrypted", dbName) - err := DecryptDB(tx, dbName, DefaultAgentEncryptionColumns) + err := models.DecryptDB(tx, dbName, models.DefaultAgentEncryptionColumns) if err != nil { return err } @@ -123,7 +124,7 @@ func rotateEncryptionKey(db *reform.DB, dbName string) error { logrus.Infof("New encryption key generated") logrus.Infof("DB %s is being encrypted", dbName) - err = EncryptDB(tx, dbName, DefaultAgentEncryptionColumns) + err = models.EncryptDB(tx, dbName, models.DefaultAgentEncryptionColumns) if err != nil { if e := encryption.RestoreOldEncryptionKey(); e != nil { return errors.Wrap(err, e.Error()) diff --git a/managed/models/encryption_rotation_test.go b/managed/services/encryption/encryption_rotation_test.go similarity index 98% rename from managed/models/encryption_rotation_test.go rename to managed/services/encryption/encryption_rotation_test.go index ae46912032..99a1579916 100644 --- a/managed/models/encryption_rotation_test.go +++ b/managed/services/encryption/encryption_rotation_test.go @@ -13,7 +13,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package models_test +package encryption import ( "database/sql" @@ -49,7 +49,7 @@ func TestEncryptionRotation(t *testing.T) { err = insertTestData(db) require.NoError(t, err) - statusCode := models.RotateEncryptionKey(db, "pmm-managed-dev") + statusCode := RotateEncryptionKey(db, "pmm-managed-dev") require.Equal(t, 0, statusCode) newEncryptionKey, err := os.ReadFile(encryptionKeyTestPath)