fix: migrate from github.com/rs/zerolog to golang-native log/slog (#3405)

* fix: migrate from github.com/rs/zerolog to golang-native log/slog

We have been using zerolog for a really long time.
golang now has structured logging using slog.
Best to move to this in interests of long-term support.

This is a tech debt item.

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: a few changes on top

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: address comments

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
This commit is contained in:
Ramkumar Chinchani
2025-10-03 12:34:03 -07:00
committed by GitHub
parent d5779cfec8
commit b1842ab9e0
65 changed files with 816 additions and 534 deletions
+1 -1
View File
@@ -50,7 +50,7 @@ func TestWrapperErrors(t *testing.T) {
boltDriver, err := boltdb.GetBoltDriver(boltDBParams)
So(err, ShouldBeNil)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
boltdbWrapper, err := boltdb.New(boltDriver, log)
So(boltdbWrapper, ShouldNotBeNil)
+2 -3
View File
@@ -9,7 +9,6 @@ import (
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/dynamodb"
guuid "github.com/gofrs/uuid"
"github.com/rs/zerolog"
. "github.com/smartystreets/goconvey/convey"
"zotregistry.dev/zot/pkg/log"
@@ -59,7 +58,7 @@ func TestWrapperErrors(t *testing.T) {
UserDataTablename: userDataTablename,
APIKeyTablename: apiKeyTablename,
Patches: version.GetDynamoDBPatches(),
Log: log.Logger{Logger: zerolog.New(os.Stdout)},
Log: log.NewTestLogger(),
}
// The table creation should fail as the endpoint is not configured correctly
@@ -94,7 +93,7 @@ func TestWrapperErrors(t *testing.T) {
VersionTablename: versionTablename,
UserDataTablename: userDataTablename,
Patches: version.GetDynamoDBPatches(),
Log: log.Logger{Logger: zerolog.New(os.Stdout)},
Log: log.NewTestLogger(),
}
// The tables were not created so delete calls fail, but dynamoWrapper should not error
+3 -4
View File
@@ -14,7 +14,6 @@ import (
guuid "github.com/gofrs/uuid"
godigest "github.com/opencontainers/go-digest"
ispec "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/rs/zerolog"
. "github.com/smartystreets/goconvey/convey"
"zotregistry.dev/zot/pkg/extensions/imagetrust"
@@ -47,7 +46,7 @@ func TestIterator(t *testing.T) {
userDataTablename := "UserDataTable" + uuid.String()
apiKeyTablename := "ApiKeyTable" + uuid.String()
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
Convey("TestIterator", t, func() {
params := mdynamodb.DBDriverParameters{
@@ -124,7 +123,7 @@ func TestIteratorErrors(t *testing.T) {
"RepoMetadataTable",
"RepoMeta",
1,
log.Logger{Logger: zerolog.New(os.Stdout)},
log.NewTestLogger(),
)
_, err = repoMetaAttributeIterator.First(context.Background())
@@ -152,7 +151,7 @@ func TestWrapperErrors(t *testing.T) {
imageMetaTablename := "ImageMeta" + uuid.String()
repoBlobsTablename := "RepoBlobs" + uuid.String()
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
testDigest := godigest.FromString("str")
image := CreateDefaultImage()
multi := CreateMultiarchWith().Images([]Image{image}).Build()
+2 -2
View File
@@ -24,7 +24,7 @@ func TestOnUpdateManifest(t *testing.T) {
Convey("On UpdateManifest", t, func() {
rootDir := t.TempDir()
storeController := storage.StoreController{}
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
metrics := monitoring.NewMetricsServer(false, log)
storeController.DefaultStore = local.NewImageStore(rootDir, true, true, log, metrics, nil, nil, nil, nil)
@@ -58,7 +58,7 @@ func TestUpdateErrors(t *testing.T) {
imageStore := mocks.MockedImageStore{}
storeController := storage.StoreController{DefaultStore: &imageStore}
metaDB := mocks.MetaDBMock{}
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
Convey("IsReferrersTag true update", func() {
err := meta.OnUpdateManifest(context.Background(), "repo", "sha256-123", "digest", "media", []byte("bad"),
+6 -6
View File
@@ -61,7 +61,7 @@ func TestBoltDB(t *testing.T) {
boltDriver, err := boltdb.GetBoltDriver(boltDBParams)
So(err, ShouldBeNil)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
metaDB, err := boltdb.New(boltDriver, log)
So(metaDB, ShouldNotBeNil)
@@ -82,7 +82,7 @@ func TestBoltDB(t *testing.T) {
boltDriver, err := boltdb.GetBoltDriver(boltDBParams)
So(err, ShouldBeNil)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
imgTrustStore, err := imagetrust.NewLocalImageTrustStore(boltDBParams.RootDir)
So(err, ShouldBeNil)
@@ -134,7 +134,7 @@ func TestDynamoDBWrapper(t *testing.T) {
dynamoClient, err := mdynamodb.GetDynamoClient(dynamoDBDriverParams)
So(err, ShouldBeNil)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
dynamoDriver, err := mdynamodb.New(dynamoClient, dynamoDBDriverParams, log)
So(dynamoDriver, ShouldNotBeNil)
@@ -175,7 +175,7 @@ func TestRedisDB(t *testing.T) {
Convey("RedisDB Wrapper", t, func() {
rootDir := t.TempDir()
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
params := redis.DBDriverParameters{KeyPrefix: "zot"}
driverConfig := map[string]interface{}{"url": "redis://" + miniRedis.Addr()}
@@ -2898,7 +2898,7 @@ func TestCreateBoltDB(t *testing.T) {
conf := config.New()
conf.Storage.RootDirectory = rootDir
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
So(log, ShouldNotBeNil)
Convey("Test New() with unspecified driver", func() {
@@ -2938,7 +2938,7 @@ func TestCreateRedisDB(t *testing.T) {
conf := config.New()
conf.Storage.RemoteCache = true
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
So(log, ShouldNotBeNil)
Convey("Succeeds with default key prefix", func() {
+15 -15
View File
@@ -54,7 +54,7 @@ func TestParseStorageErrors(t *testing.T) {
metaDB := mocks.MetaDBMock{}
// sync repo fail
err := meta.ParseStorage(metaDB, storeController, log.NewLogger("debug", ""))
err := meta.ParseStorage(metaDB, storeController, log.NewTestLogger())
So(err, ShouldBeNil)
Convey("getAllRepos errors", func() {
@@ -75,14 +75,14 @@ func TestParseStorageErrors(t *testing.T) {
},
}
err := meta.ParseStorage(metaDB, storeController, log.NewLogger("debug", ""))
err := meta.ParseStorage(metaDB, storeController, log.NewTestLogger())
So(err, ShouldNotBeNil)
})
Convey("metaDB.GetAllRepoNames errors", func() {
metaDB.GetAllRepoNamesFn = func() ([]string, error) { return nil, ErrTestError }
err := meta.ParseStorage(metaDB, storeController, log.NewLogger("debug", ""))
err := meta.ParseStorage(metaDB, storeController, log.NewTestLogger())
So(err, ShouldNotBeNil)
})
@@ -95,7 +95,7 @@ func TestParseStorageErrors(t *testing.T) {
metaDB.GetAllRepoNamesFn = func() ([]string, error) { return []string{"deleted"}, nil }
metaDB.DeleteRepoMetaFn = func(repo string) error { return ErrTestError }
err := meta.ParseStorage(metaDB, storeController, log.NewLogger("debug", ""))
err := meta.ParseStorage(metaDB, storeController, log.NewTestLogger())
So(err, ShouldNotBeNil)
})
@@ -109,7 +109,7 @@ func TestParseStorageErrors(t *testing.T) {
storeController := storage.StoreController{DefaultStore: imageStore1}
err := meta.ParseStorage(metaDB, storeController, log.NewLogger("debug", ""))
err := meta.ParseStorage(metaDB, storeController, log.NewTestLogger())
So(err, ShouldBeNil)
})
})
@@ -118,7 +118,7 @@ func TestParseStorageErrors(t *testing.T) {
imageStore := mocks.MockedImageStore{}
storeController := storage.StoreController{DefaultStore: &imageStore}
metaDB := mocks.MetaDBMock{}
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
Convey("imageStore.GetIndexContent errors", func() {
imageStore.GetIndexContentFn = func(repo string) ([]byte, error) {
@@ -221,7 +221,7 @@ func TestParseStorageErrors(t *testing.T) {
Convey("SetImageMetaFromInput errors", t, func() {
mockImageStore := mocks.MockedImageStore{}
mockedMetaDB := mocks.MetaDBMock{}
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
Convey("Image Manifest errors", func() {
Convey("Get Config blob error", func() {
@@ -310,7 +310,7 @@ func TestParseStorageWithRedisDB(t *testing.T) {
miniRedis := miniredis.RunT(t)
rootDir := t.TempDir()
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
params := redis.DBDriverParameters{KeyPrefix: "zot"}
driverConfig := map[string]interface{}{"url": "redis://" + miniRedis.Addr()}
@@ -660,7 +660,7 @@ func RunParseStorageTests(rootDir string, metaDB mTypes.MetaDB, log log.Logger)
func TestGetSignatureLayersInfo(t *testing.T) {
Convey("wrong signature type", t, func() {
layers, err := meta.GetSignatureLayersInfo("repo", "tag", "123", "wrong signature type", []byte{},
nil, log.NewLogger("debug", ""))
nil, log.NewTestLogger())
So(err, ShouldBeNil)
So(layers, ShouldBeEmpty)
})
@@ -673,7 +673,7 @@ func TestGetSignatureLayersInfo(t *testing.T) {
notationIndexBlob, err := json.Marshal(notationIndex)
So(err, ShouldBeNil)
layers, err := meta.GetSignatureLayersInfo("repo", "tag", "123", zcommon.NotationSignature, notationIndexBlob,
nil, log.NewLogger("debug", ""))
nil, log.NewTestLogger())
So(err, ShouldBeNil)
So(layers, ShouldBeEmpty)
})
@@ -686,7 +686,7 @@ func TestGetSignatureLayersInfo(t *testing.T) {
image := CreateRandomImage()
layers, err := meta.GetSignatureLayersInfo("repo", "tag", "123", zcommon.CosignSignature,
image.ManifestDescriptor.Data, mockImageStore, log.NewLogger("debug", ""))
image.ManifestDescriptor.Data, mockImageStore, log.NewTestLogger())
So(err, ShouldNotBeNil)
So(layers, ShouldBeEmpty)
})
@@ -696,7 +696,7 @@ func TestGetSignatureLayersInfo(t *testing.T) {
image := CreateImageWith().RandomLayers(3, 10).RandomConfig().Build()
layers, err := meta.GetSignatureLayersInfo("repo", "tag", "123", zcommon.NotationSignature,
image.ManifestDescriptor.Data, mockImageStore, log.NewLogger("debug", ""))
image.ManifestDescriptor.Data, mockImageStore, log.NewTestLogger())
So(err, ShouldNotBeNil)
So(layers, ShouldBeEmpty)
})
@@ -709,18 +709,18 @@ func TestGetSignatureLayersInfo(t *testing.T) {
image := CreateImageWith().RandomLayers(1, 10).RandomConfig().Build()
layers, err := meta.GetSignatureLayersInfo("repo", "tag", "123", zcommon.NotationSignature,
image.ManifestDescriptor.Data, mockImageStore, log.NewLogger("debug", ""))
image.ManifestDescriptor.Data, mockImageStore, log.NewTestLogger())
So(err, ShouldNotBeNil)
So(layers, ShouldBeEmpty)
})
Convey("error while unmarshaling manifest content", t, func() {
_, err := meta.GetSignatureLayersInfo("repo", "tag", "123", zcommon.CosignSignature, []byte("bad manifest"),
nil, log.NewLogger("debug", ""))
nil, log.NewTestLogger())
So(err, ShouldNotBeNil)
_, err = meta.GetSignatureLayersInfo("repo", "tag", "123", zcommon.NotationSignature, []byte("bad manifest"),
nil, log.NewLogger("debug", ""))
nil, log.NewTestLogger())
So(err, ShouldNotBeNil)
})
}
+1 -1
View File
@@ -14,7 +14,7 @@ func Test(t *testing.T) {
Convey("Test redis metadb key generation", t, func() {
miniRedis := miniredis.RunT(t)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
So(log, ShouldNotBeNil)
opts, err := redis.ParseURL("redis://" + miniRedis.Addr())
+4 -4
View File
@@ -40,7 +40,7 @@ func (its imgTrustStore) VerifySignature(
func TestRedisMocked(t *testing.T) {
Convey("Test redis metadb implementation", t, func() {
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
So(log, ShouldNotBeNil)
client, mock := redismock.NewClientMock()
@@ -228,7 +228,7 @@ func TestRedisRepoMeta(t *testing.T) {
miniRedis := miniredis.RunT(t)
Convey("Test repometa implementation", t, func() {
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
So(log, ShouldNotBeNil)
opts, err := goredis.ParseURL("redis://" + miniRedis.Addr())
@@ -397,7 +397,7 @@ func TestRedisUnreachable(t *testing.T) {
Convey("Redis unreachable", t, func() {
miniRedis := miniredis.RunT(t)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
So(log, ShouldNotBeNil)
connOpts, err := goredis.ParseURL("redis://" + miniRedis.Addr())
@@ -570,7 +570,7 @@ func TestWrapperErrors(t *testing.T) {
Convey("Errors", t, func() {
miniRedis := miniredis.RunT(t)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
So(log, ShouldNotBeNil)
opts, err := goredis.ParseURL("redis://" + miniRedis.Addr())
+3 -3
View File
@@ -35,7 +35,7 @@ func TestVersioningBoltDB(t *testing.T) {
boltDriver, err := boltdb.GetBoltDriver(boltDBParams)
So(err, ShouldBeNil)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
boltdbWrapper, err := boltdb.New(boltDriver, log)
@@ -142,7 +142,7 @@ func TestVersioningDynamoDB(t *testing.T) {
dynamoClient, err := mdynamodb.GetDynamoClient(params)
So(err, ShouldBeNil)
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
dynamoWrapper, err := mdynamodb.New(dynamoClient, params, log)
So(err, ShouldBeNil)
@@ -226,7 +226,7 @@ func TestVersioningRedisDB(t *testing.T) {
client := goredis.NewClient(opts)
defer dumpRedisKeys(t, client) // Troubleshoot test failures
log := log.NewLogger("debug", "")
log := log.NewTestLogger()
params := redis.DBDriverParameters{KeyPrefix: "zot"}