fix: some errorhandling corrections

This commit is contained in:
Marcel S. Henselin 2026-05-13 09:30:55 +02:00
parent aa77ad77e2
commit fdbef9d95e
3 changed files with 16 additions and 15 deletions

View file

@ -18,8 +18,11 @@ func main() {
} }
cfg = config.ValidateConfig(cfg) cfg = config.ValidateConfig(cfg)
s := secretsmanager.InitializeClient(cfg) s, err := secretsmanager.New(cfg)
data, err := secretsmanager.GetSecrets(&s, cfg) if err != nil {
log.Fatalf("Error initializing secrets manager client: %s", err)
}
data, err := s.GetSecrets(cfg)
if err != nil { if err != nil {
log.Fatalf("Error retrieving secrets: %s", err) log.Fatalf("Error retrieving secrets: %s", err)
} }

View file

@ -2,6 +2,7 @@ package secretsmanager
import ( import (
"context" "context"
"fmt"
"time" "time"
"secretsmanager/config" "secretsmanager/config"
@ -15,30 +16,31 @@ type SecretsManager struct {
Client *vault.Client Client *vault.Client
} }
func InitializeClient( func New(cfg config.Config) (*SecretsManager, error) {
cfg config.Config,
) SecretsManager {
s := SecretsManager{} s := SecretsManager{}
s.Ctx = context.Background() s.Ctx = context.Background()
s.Client, _ = vault.New( client, err := vault.New(
vault.WithAddress(cfg.VaultAddr), vault.WithAddress(cfg.VaultAddr),
vault.WithRequestTimeout(30*time.Second), vault.WithRequestTimeout(30*time.Second),
vault.WithTLS(vault.TLSConfiguration{ vault.WithTLS(vault.TLSConfiguration{
InsecureSkipVerify: false, InsecureSkipVerify: false,
}), }),
) )
if err != nil {
return nil, err
}
s.Client = client
config.InfoLog("Attempting to login with user %s", cfg.VaultUsername) config.InfoLog("Attempting to login with user %s", cfg.VaultUsername)
loginResp, err := s.Client.Auth.UserpassLogin(s.Ctx, cfg.VaultUsername, schema.UserpassLoginRequest{Password: cfg.VaultPassword}) loginResp, err := s.Client.Auth.UserpassLogin(s.Ctx, cfg.VaultUsername, schema.UserpassLoginRequest{Password: cfg.VaultPassword})
if err != nil { if err != nil {
config.FatalLog("Vault login request failed: %s", err) return nil, fmt.Errorf("vault login request failed: %w", err)
} }
config.InfoLog("Login successful. Token received.") config.InfoLog("Login successful. Token received.")
err = s.Client.SetToken(loginResp.Auth.ClientToken) err = s.Client.SetToken(loginResp.Auth.ClientToken)
if err != nil { if err != nil {
config.FatalLog("Vault login could not set token: %s", err) return nil, fmt.Errorf("vault login could not set token: %w", err)
} }
return s return &s, nil
} }

View file

@ -7,11 +7,7 @@ import (
"github.com/hashicorp/vault-client-go" "github.com/hashicorp/vault-client-go"
) )
func GetSecrets( func (s *SecretsManager) GetSecrets(cfg config.Config) ([]string, error) {
s *SecretsManager,
cfg config.Config,
) ([]string, error) {
config.InfoLog("Attempting to read secret from mount '%s' at path '%s'", cfg.VaultSecretsManagerID, cfg.VaultPath) config.InfoLog("Attempting to read secret from mount '%s' at path '%s'", cfg.VaultSecretsManagerID, cfg.VaultPath)
secret, err := s.Client.Secrets.KvV2Read(s.Ctx, cfg.VaultPath, vault.WithMountPath(cfg.VaultSecretsManagerID)) secret, err := s.Client.Secrets.KvV2Read(s.Ctx, cfg.VaultPath, vault.WithMountPath(cfg.VaultSecretsManagerID))
if err != nil { if err != nil {