From 9e44368d297698f52b0ba0e7ba274a0076985b05 Mon Sep 17 00:00:00 2001 From: Ramon de Klein Date: Mon, 3 Feb 2025 12:43:32 +0100 Subject: [PATCH] Processed review comments --- Dockerfile.dev | 2 +- cmd/kes/server.go | 7 ++----- internal/keystore/vault/log.go | 12 ++++++++++++ internal/keystore/vault/vault.go | 4 +--- internal/sys/build.go | 2 +- kesconf/config.go | 6 ------ kesconf/file.go | 3 --- 7 files changed, 17 insertions(+), 19 deletions(-) diff --git a/Dockerfile.dev b/Dockerfile.dev index 1c63817a..dad49640 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM golang:1.22-alpine as build +FROM golang:1.23-alpine as build LABEL maintainer="MinIO Inc " diff --git a/cmd/kes/server.go b/cmd/kes/server.go index 765742a6..abe953c6 100644 --- a/cmd/kes/server.go +++ b/cmd/kes/server.go @@ -177,16 +177,13 @@ func startServer(addrFlag, configFlag string, verbose bool) error { defer cancel() srv := &kes.Server{} - logLevel := slog.LevelInfo if rawConfig.Log != nil { srv.ErrLevel.Set(rawConfig.Log.ErrLevel) srv.AuditLevel.Set(rawConfig.Log.AuditLevel) - logLevel = rawConfig.Log.LogLevel } - if verbose { - logLevel = slog.LevelDebug + if verbose || srv.ErrLevel.Level() == slog.LevelDebug { + slog.SetLogLoggerLevel(slog.LevelDebug) } - slog.SetLogLoggerLevel(logLevel) conf, err := rawConfig.Config(ctx) if err != nil { diff --git a/internal/keystore/vault/log.go b/internal/keystore/vault/log.go index f7a0e033..43fc0b5e 100644 --- a/internal/keystore/vault/log.go +++ b/internal/keystore/vault/log.go @@ -1,6 +1,7 @@ package vault import ( + "context" "crypto/sha256" "encoding/hex" "fmt" @@ -11,6 +12,17 @@ import ( vaultapi "github.com/hashicorp/vault/api" ) +// NewLoggerTransport returns a new http.RoundTripper that logs HTTP requests and responses +// (when debug logging is enabled). +func NewLoggerTransport(ctx context.Context, rt http.RoundTripper) http.RoundTripper { + if !slog.Default().Enabled(ctx, slog.LevelDebug) { + return rt + } + return &loggingTransport{ + RoundTripper: rt, + } +} + type loggingTransport struct { http.RoundTripper } diff --git a/internal/keystore/vault/vault.go b/internal/keystore/vault/vault.go index 4e9f7958..9f49d9f9 100644 --- a/internal/keystore/vault/vault.go +++ b/internal/keystore/vault/vault.go @@ -113,9 +113,7 @@ func Connect(ctx context.Context, c *Config) (*Store, error) { tr.DisableKeepAlives = true tr.MaxIdleConnsPerHost = -1 } - if slog.Default().Enabled(ctx, slog.LevelDebug) { - config.HttpClient.Transport = &loggingTransport{config.HttpClient.Transport} - } + config.HttpClient.Transport = NewLoggerTransport(ctx, config.HttpClient.Transport) vaultClient, err := vaultapi.NewClient(config) if err != nil { return nil, err diff --git a/internal/sys/build.go b/internal/sys/build.go index 5390e406..052ca6ea 100644 --- a/internal/sys/build.go +++ b/internal/sys/build.go @@ -16,7 +16,7 @@ import ( type BinaryInfo struct { Version string // The version of this binary CommitID string // The git commit hash - Runtime string // The Go runtime version, e.g. go1.22.0 + Runtime string // The Go runtime version, e.g. go1.23.5 Compiler string // The Go compiler used to build this binary } diff --git a/kesconf/config.go b/kesconf/config.go index fdc76d9e..67860da2 100644 --- a/kesconf/config.go +++ b/kesconf/config.go @@ -66,7 +66,6 @@ type ymlFile struct { Log struct { Error env[string] `yaml:"error"` Audit env[string] `yaml:"audit"` - Level env[string] `yaml:"level"` } `yaml:"log"` Keys []struct { @@ -300,10 +299,6 @@ func ymlToServerConfig(y *ymlFile) (*File, error) { if err != nil { return nil, err } - logLevel, err := parseLogLevel(y.Log.Level.Value) - if err != nil { - return nil, err - } for path, api := range y.API.Paths { if api.Timeout.Value < 0 { @@ -359,7 +354,6 @@ func ymlToServerConfig(y *ymlFile) (*File, error) { Log: &LogConfig{ ErrLevel: errLevel, AuditLevel: auditLevel, - LogLevel: logLevel, }, KeyStore: keystore, } diff --git a/kesconf/file.go b/kesconf/file.go index 5bd73dda..c60218d6 100644 --- a/kesconf/file.go +++ b/kesconf/file.go @@ -298,9 +298,6 @@ type LogConfig struct { // Audit determines whether the KES server logs audit events to STDOUT. // It does not en/disable audit logging in general. AuditLevel slog.Level - - // Log level for which to report KES diagnostic messages. - LogLevel slog.Level } // APIConfig is a structure that holds the API configuration