Skip to content

Commit 2c0b4ea

Browse files
authored
Merge pull request #4996 from aduffeck/unifi-logs
Unifi logs
2 parents a67cc06 + e79aa05 commit 2c0b4ea

File tree

14 files changed

+44
-32
lines changed

14 files changed

+44
-32
lines changed
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Enhancement: Get rid of some cases of unstructured logging
2+
3+
https://github.com/cs3org/reva/pull/4996

pkg/logger/logger.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func parseLevel(v string) zerolog.Level {
9191

9292
func InitLoggerOrDie(v interface{}, logLevel string) *zerolog.Logger {
9393
conf := ParseLogConfOrDie(v, logLevel)
94-
log, err := FromConfig(conf)
94+
log, err := fromConfig(conf)
9595
if err != nil {
9696
fmt.Fprintf(os.Stderr, "error creating logger, exiting ...")
9797
os.Exit(1)
@@ -125,7 +125,7 @@ type LogConf struct {
125125
Level string `mapstructure:"level"`
126126
}
127127

128-
func FromConfig(conf *LogConf) (*zerolog.Logger, error) {
128+
func fromConfig(conf *LogConf) (*zerolog.Logger, error) {
129129
if conf.Level == "" {
130130
conf.Level = zerolog.DebugLevel.String()
131131
}

pkg/storage/fs/posix/tree/tree.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func New(lu node.PathLookup, bs Blobstore, um usermapper.Mapper, trashbin *trash
108108
trashbin: trashbin,
109109
options: o,
110110
idCache: cache,
111-
propagator: propagator.New(lu, &o.Options),
111+
propagator: propagator.New(lu, &o.Options, log),
112112
scanQueue: scanQueue,
113113
scanDebouncer: NewScanDebouncer(o.ScanDebounceDelay, func(item scanItem) {
114114
scanQueue <- item

pkg/storage/utils/decomposedfs/decomposedfs.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ type Decomposedfs struct {
132132

133133
// NewDefault returns an instance with default components
134134
func NewDefault(m map[string]interface{}, bs tree.Blobstore, es events.Stream, log *zerolog.Logger) (storage.FS, error) {
135+
if log == nil {
136+
log = &zerolog.Logger{}
137+
}
138+
135139
o, err := options.New(m)
136140
if err != nil {
137141
return nil, err
@@ -156,7 +160,7 @@ func NewDefault(m map[string]interface{}, bs tree.Blobstore, es events.Stream, l
156160
microstore.Table(o.IDCache.Table),
157161
store.DisablePersistence(o.IDCache.DisablePersistence),
158162
store.Authentication(o.IDCache.AuthUsername, o.IDCache.AuthPassword),
159-
))
163+
), log)
160164

161165
permissionsSelector, err := pool.PermissionsSelector(o.PermissionsSVC, pool.WithTLSMode(o.PermTLSMode))
162166
if err != nil {
@@ -178,6 +182,10 @@ func NewDefault(m map[string]interface{}, bs tree.Blobstore, es events.Stream, l
178182
// New returns an implementation of the storage.FS interface that talks to
179183
// a local filesystem.
180184
func New(o *options.Options, aspects aspects.Aspects, log *zerolog.Logger) (storage.FS, error) {
185+
if log == nil {
186+
log = &zerolog.Logger{}
187+
}
188+
181189
err := aspects.Tree.Setup()
182190
if err != nil {
183191
log.Error().Err(err).Msg("could not setup tree")
@@ -238,7 +246,7 @@ func New(o *options.Options, aspects aspects.Aspects, log *zerolog.Logger) (stor
238246
spaceTypeIndex: spaceTypeIndex,
239247
log: log,
240248
}
241-
fs.sessionStore = upload.NewSessionStore(fs, aspects, o.Root, o.AsyncFileUploads, o.Tokens)
249+
fs.sessionStore = upload.NewSessionStore(fs, aspects, o.Root, o.AsyncFileUploads, o.Tokens, log)
242250
if err = fs.trashbin.Setup(fs); err != nil {
243251
return nil, err
244252
}

pkg/storage/utils/decomposedfs/testhelpers/helpers.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,16 @@ func NewTestEnv(config map[string]interface{}) (*TestEnv, error) {
171171
},
172172
)
173173

174+
log := &zerolog.Logger{}
174175
bs := &treemocks.Blobstore{}
175-
tree := tree.New(lu, bs, o, store.Create())
176+
tree := tree.New(lu, bs, o, store.Create(), log)
176177
aspects := aspects.Aspects{
177178
Lookup: lu,
178179
Tree: tree,
179180
Permissions: permissions.NewPermissions(pmock, permissionsSelector),
180181
Trashbin: &decomposedfs.DecomposedfsTrashbin{},
181182
}
182-
fs, err := decomposedfs.New(o, aspects, &zerolog.Logger{})
183+
fs, err := decomposedfs.New(o, aspects, log)
183184
if err != nil {
184185
return nil, err
185186
}

pkg/storage/utils/decomposedfs/tree/propagator/async.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"time"
2828

2929
"github.com/cs3org/reva/v2/pkg/appctx"
30-
"github.com/cs3org/reva/v2/pkg/logger"
3130
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/lookup"
3231
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/metadata"
3332
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/metadata/prefixes"
@@ -49,6 +48,7 @@ type AsyncPropagator struct {
4948
treeTimeAccounting bool
5049
propagationDelay time.Duration
5150
lookup node.PathLookup
51+
log *zerolog.Logger
5252
}
5353

5454
// Change represents a change to the tree
@@ -58,16 +58,15 @@ type Change struct {
5858
}
5959

6060
// NewAsyncPropagator returns a new AsyncPropagator instance
61-
func NewAsyncPropagator(treeSizeAccounting, treeTimeAccounting bool, o options.AsyncPropagatorOptions, lookup node.PathLookup) AsyncPropagator {
61+
func NewAsyncPropagator(treeSizeAccounting, treeTimeAccounting bool, o options.AsyncPropagatorOptions, lookup node.PathLookup, log *zerolog.Logger) AsyncPropagator {
6262
p := AsyncPropagator{
6363
treeSizeAccounting: treeSizeAccounting,
6464
treeTimeAccounting: treeTimeAccounting,
6565
propagationDelay: o.PropagationDelay,
6666
lookup: lookup,
67+
log: log,
6768
}
6869

69-
log := logger.New()
70-
7170
log.Info().Msg("async propagator starting up...")
7271

7372
// spawn a goroutine that watches for stale .processing dirs and fixes them

pkg/storage/utils/decomposedfs/tree/propagator/propagator.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node"
3131
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/options"
3232
"github.com/pkg/errors"
33+
"github.com/rs/zerolog"
3334
"go.opentelemetry.io/otel"
3435
"go.opentelemetry.io/otel/trace"
3536
)
@@ -44,10 +45,10 @@ type Propagator interface {
4445
Propagate(ctx context.Context, node *node.Node, sizediff int64) error
4546
}
4647

47-
func New(lookup node.PathLookup, o *options.Options) Propagator {
48+
func New(lookup node.PathLookup, o *options.Options, log *zerolog.Logger) Propagator {
4849
switch o.Propagator {
4950
case "async":
50-
return NewAsyncPropagator(o.TreeSizeAccounting, o.TreeTimeAccounting, o.AsyncPropagatorOptions, lookup)
51+
return NewAsyncPropagator(o.TreeSizeAccounting, o.TreeTimeAccounting, o.AsyncPropagatorOptions, lookup, log)
5152
default:
5253
return NewSyncPropagator(o.TreeSizeAccounting, o.TreeTimeAccounting, lookup)
5354
}

pkg/storage/utils/decomposedfs/tree/tree.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import (
4242
"github.com/cs3org/reva/v2/pkg/utils"
4343
"github.com/google/uuid"
4444
"github.com/pkg/errors"
45+
"github.com/rs/zerolog"
4546
"go-micro.dev/v4/store"
4647
"go.opentelemetry.io/otel"
4748
"go.opentelemetry.io/otel/trace"
@@ -76,13 +77,13 @@ type Tree struct {
7677
type PermissionCheckFunc func(rp *provider.ResourcePermissions) bool
7778

7879
// New returns a new instance of Tree
79-
func New(lu node.PathLookup, bs Blobstore, o *options.Options, cache store.Store) *Tree {
80+
func New(lu node.PathLookup, bs Blobstore, o *options.Options, cache store.Store, log *zerolog.Logger) *Tree {
8081
return &Tree{
8182
lookup: lu,
8283
blobstore: bs,
8384
options: o,
8485
idCache: cache,
85-
propagator: propagator.New(lu, o),
86+
propagator: propagator.New(lu, o, log),
8687
}
8788
}
8889

pkg/storage/utils/decomposedfs/upload/session.go

+1-7
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import (
3535
typespb "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
3636
"github.com/cs3org/reva/v2/pkg/appctx"
3737
ctxpkg "github.com/cs3org/reva/v2/pkg/ctx"
38-
"github.com/cs3org/reva/v2/pkg/logger"
3938
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node"
4039
"github.com/cs3org/reva/v2/pkg/utils"
4140
)
@@ -49,12 +48,7 @@ type OcisSession struct {
4948

5049
// Context returns a context with the user, logger and lockid used when initiating the upload session
5150
func (s *OcisSession) Context(ctx context.Context) context.Context { // restore logger from file info
52-
log, _ := logger.FromConfig(&logger.LogConf{
53-
Output: "stderr", // TODO use config from decomposedfs
54-
Mode: "json", // TODO use config from decomposedfs
55-
Level: s.info.Storage["LogLevel"],
56-
})
57-
sub := log.With().Int("pid", os.Getpid()).Logger()
51+
sub := s.store.log.With().Int("pid", os.Getpid()).Logger()
5852
ctx = appctx.WithLogger(ctx, &sub)
5953
ctx = ctxpkg.ContextSetLockID(ctx, s.lockID())
6054
ctx = ctxpkg.ContextSetUser(ctx, s.executantUser())

pkg/storage/utils/decomposedfs/upload/store.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import (
4444
"github.com/google/uuid"
4545
"github.com/pkg/errors"
4646
"github.com/rogpeppe/go-internal/lockedfile"
47+
"github.com/rs/zerolog"
4748
tusd "github.com/tus/tusd/v2/pkg/handler"
4849
)
4950

@@ -65,10 +66,11 @@ type OcisStore struct {
6566
async bool
6667
tknopts options.TokenOptions
6768
disableVersioning bool
69+
log *zerolog.Logger
6870
}
6971

7072
// NewSessionStore returns a new OcisStore
71-
func NewSessionStore(fs storage.FS, aspects aspects.Aspects, root string, async bool, tknopts options.TokenOptions) *OcisStore {
73+
func NewSessionStore(fs storage.FS, aspects aspects.Aspects, root string, async bool, tknopts options.TokenOptions, log *zerolog.Logger) *OcisStore {
7274
return &OcisStore{
7375
fs: fs,
7476
lu: aspects.Lookup,
@@ -79,6 +81,7 @@ func NewSessionStore(fs storage.FS, aspects aspects.Aspects, root string, async
7981
tknopts: tknopts,
8082
disableVersioning: aspects.DisableVersioning,
8183
um: aspects.UserMapper,
84+
log: log,
8285
}
8386
}
8487

pkg/storage/utils/decomposedfs/upload/store_test.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,22 @@ import (
1616
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/options"
1717
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/timemanager"
1818
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/tree"
19+
"github.com/rs/zerolog"
1920
)
2021

2122
// TestInitNewNode calls greetings.initNewNode
2223
func TestInitNewNode(t *testing.T) {
23-
24+
log := &zerolog.Logger{}
2425
root := t.TempDir()
2526

2627
lookup := lookup.New(metadata.NewMessagePackBackend(root, cache.Config{}), &options.Options{Root: root}, &timemanager.Manager{})
27-
tp := tree.New(lookup, nil, &options.Options{}, nil)
28+
tp := tree.New(lookup, nil, &options.Options{}, nil, log)
2829

2930
aspects := aspects.Aspects{
3031
Lookup: lookup,
3132
Tree: tp,
3233
}
33-
store := NewSessionStore(nil, aspects, root, false, options.TokenOptions{})
34+
store := NewSessionStore(nil, aspects, root, false, options.TokenOptions{}, log)
3435

3536
rootNode := node.New("e48c4e7a-beac-4b82-b991-a5cff7b8c39c", "e48c4e7a-beac-4b82-b991-a5cff7b8c39c", "", "", 0, "", providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER, &userv1beta1.UserId{}, lookup)
3637
rootNode.Exists = true

pkg/storage/utils/decomposedfs/upload_async_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ var _ = Describe("Async file uploads", Ordered, func() {
172172

173173
// setup fs
174174
pub, con = make(chan interface{}), make(chan interface{})
175-
tree := tree.New(lu, bs, o, store.Create())
175+
tree := tree.New(lu, bs, o, store.Create(), &zerolog.Logger{})
176176

177177
aspects := aspects.Aspects{
178178
Lookup: lu,

pkg/storage/utils/decomposedfs/upload_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ var _ = Describe("File uploads", func() {
137137
AddGrant: true,
138138
}, nil).Times(1)
139139
var err error
140-
tree := tree.New(lu, bs, o, store.Create())
140+
tree := tree.New(lu, bs, o, store.Create(), &zerolog.Logger{})
141141

142142
aspects := aspects.Aspects{
143143
Lookup: lu,

tests/integration/grpc/gateway_storageprovider_test.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"time"
2626

2727
"github.com/cs3org/reva/v2/pkg/storagespace"
28+
"github.com/rs/zerolog"
2829
"google.golang.org/grpc/metadata"
2930

3031
gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
@@ -191,7 +192,7 @@ var _ = Describe("gateway", func() {
191192
"permissionssvc": revads["permissions"].GrpcAddress,
192193
"treesize_accounting": true,
193194
"treetime_accounting": true,
194-
}, nil, nil)
195+
}, nil, &zerolog.Logger{})
195196
Expect(err).ToNot(HaveOccurred())
196197
res, err := shard1Fs.CreateStorageSpace(ctx, &storagep.CreateStorageSpaceRequest{
197198
Type: "project",
@@ -217,7 +218,7 @@ var _ = Describe("gateway", func() {
217218
"permissionssvc": revads["permissions"].GrpcAddress,
218219
"treesize_accounting": true,
219220
"treetime_accounting": true,
220-
}, nil, nil)
221+
}, nil, &zerolog.Logger{})
221222
Expect(err).ToNot(HaveOccurred())
222223
res, err = shard2Fs.CreateStorageSpace(ctx, &storagep.CreateStorageSpaceRequest{
223224
Type: "project",
@@ -380,7 +381,7 @@ var _ = Describe("gateway", func() {
380381
"permissionssvc": revads["permissions"].GrpcAddress,
381382
"treesize_accounting": true,
382383
"treetime_accounting": true,
383-
}, nil, nil)
384+
}, nil, &zerolog.Logger{})
384385
Expect(err).ToNot(HaveOccurred())
385386

386387
r, err := serviceClient.CreateHome(ctx, &storagep.CreateHomeRequest{})
@@ -405,7 +406,7 @@ var _ = Describe("gateway", func() {
405406
"permissionssvc": revads["permissions"].GrpcAddress,
406407
"treesize_accounting": true,
407408
"treetime_accounting": true,
408-
}, nil, nil)
409+
}, nil, &zerolog.Logger{})
409410
Expect(err).ToNot(HaveOccurred())
410411
res, err := serviceClient.CreateStorageSpace(ctx, &storagep.CreateStorageSpaceRequest{
411412
Type: "project",

0 commit comments

Comments
 (0)