Skip to content

Commit

Permalink
PMM-13132 Logger and logs.
Browse files Browse the repository at this point in the history
  • Loading branch information
JiriCtvrtka committed Sep 18, 2024
1 parent 3474974 commit 7e58301
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions encryption-rotation/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package main
import (
"database/sql"
"fmt"
"log"
"os"
"os/exec"
"os/signal"
Expand All @@ -27,16 +26,20 @@ import (

"github.com/Percona-Lab/kingpin"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"gopkg.in/reform.v1"
"gopkg.in/reform.v1/dialects/postgresql"

"github.com/percona/pmm/managed/models"
"github.com/percona/pmm/managed/utils/encryption"
"github.com/percona/pmm/utils/logger"
)

func main() {
signal.Ignore(syscall.SIGINT, syscall.SIGTERM) // to prevent any interuptions during process

logger.SetupGlobalLogger()

sqlDB, dbName := openDB()
statusCode := rotate(sqlDB, dbName)
sqlDB.Close() //nolint:errcheck
Expand All @@ -49,20 +52,20 @@ func rotate(sqlDB *sql.DB, dbName string) int {

err := stopPMMServer()
if err != nil {
log.Printf("Failed to stop PMM Server: %+v", err)
return 1
logrus.Errorf("Failed to stop PMM Server: %+v", err)
return 2
}

err = rotateEncryptionKey(db, dbName)
if err != nil {
log.Printf("Failed to rotate encryption key: %+v", err)
return 2
logrus.Errorf("Failed to rotate encryption key: %+v", err)
return 3
}

err = startPMMServer()
if err != nil {
log.Printf("Failed to start PMM Server: %+v", err)
return 3
logrus.Errorf("Failed to start PMM Server: %+v", err)
return 4
}

return 0
Expand Down Expand Up @@ -113,23 +116,29 @@ func isPMMServerStatus(status string) bool {

func rotateEncryptionKey(db *reform.DB, dbName string) error {
return db.InTransaction(func(tx *reform.TX) error {
logrus.Infof("DB is being decrypted")
err := models.DecryptDB(tx, dbName, models.DefaultAgentEncryptionColumns)
if err != nil {
return err
}
logrus.Infof("DB is successfully decrypted")

logrus.Infof("Rotating encryption key")
err = encryption.RotateEncryptionKey()
if err != nil {
return err
}
logrus.Infof("New encryption key generated")

logrus.Infof("DB is being encrypted")
err = models.EncryptDB(tx, dbName, models.DefaultAgentEncryptionColumns)
if err != nil {
if e := encryption.RestoreOldEncryptionKey(); e != nil {
return errors.Wrap(e, e.Error())
}
return err
}
logrus.Infof("DB is successfully encrypted")

return nil
})
Expand Down Expand Up @@ -181,7 +190,8 @@ func openDB() (*sql.DB, string) {

sqlDB, err := models.OpenDB(setupParams)
if err != nil {
log.Panicf("Failed to connect to database: %+v", err)
logrus.Errorf("Failed to connect to database: %+v", err)
os.Exit(1)
}

return sqlDB, *postgresDBNameF
Expand Down

0 comments on commit 7e58301

Please sign in to comment.