Skip to content

Commit

Permalink
pass ctx to all New method
Browse files Browse the repository at this point in the history
  • Loading branch information
gmgigi96 committed Jul 3, 2023
1 parent e57f98e commit 5521a51
Show file tree
Hide file tree
Showing 153 changed files with 418 additions and 414 deletions.
26 changes: 18 additions & 8 deletions cmd/revad/runtime/runtime.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package runtime

import (
"context"
"fmt"
"net"
"runtime"
Expand All @@ -29,8 +30,10 @@ import (

"github.com/cs3org/reva/cmd/revad/pkg/config"
"github.com/cs3org/reva/cmd/revad/pkg/grace"
"github.com/cs3org/reva/pkg/appctx"
"github.com/cs3org/reva/pkg/rgrpc"
"github.com/cs3org/reva/pkg/rhttp"

"github.com/cs3org/reva/pkg/rhttp/global"
"github.com/cs3org/reva/pkg/rserverless"
"github.com/cs3org/reva/pkg/sharedconf"
Expand All @@ -57,6 +60,7 @@ type Reva struct {

// Server represents a reva server (grpc or http).
type Server struct {
ctx context.Context
server grace.Server
listener net.Listener

Expand All @@ -73,6 +77,9 @@ func New(config *config.Config, opt ...Option) (*Reva, error) {
opts := newOptions(opt...)
log := opts.Logger

ctx := context.Background()
ctx = appctx.WithLogger(ctx, log)

if err := initCPUCount(config.Core, log); err != nil {
return nil, err
}
Expand Down Expand Up @@ -103,7 +110,7 @@ func New(config *config.Config, opt ...Option) (*Reva, error) {

grpc := groupGRPCByAddress(config)
http := groupHTTPByAddress(config)
servers, err := newServers(grpc, http, listeners, log)
servers, err := newServers(ctx, grpc, http, listeners, log)
if err != nil {
watcher.Clean()
return nil, err
Expand Down Expand Up @@ -357,10 +364,12 @@ func listenerFromAddress(lns map[string]net.Listener, network string, address co
panic(fmt.Sprintf("listener not found for address %s:%s", network, address))
}

func newServers(grpc []*config.GRPC, http []*config.HTTP, lns map[string]net.Listener, log *zerolog.Logger) ([]*Server, error) {
func newServers(ctx context.Context, grpc []*config.GRPC, http []*config.HTTP, lns map[string]net.Listener, log *zerolog.Logger) ([]*Server, error) {
servers := make([]*Server, 0, len(grpc)+len(http))
for _, cfg := range grpc {
services, err := rgrpc.InitServices(cfg.Services)
logger := log.With().Str("pkg", "grpc").Logger()
ctx := appctx.WithLogger(ctx, &logger)
services, err := rgrpc.InitServices(ctx, cfg.Services)
if err != nil {
return nil, err
}
Expand All @@ -371,7 +380,7 @@ func newServers(grpc []*config.GRPC, http []*config.HTTP, lns map[string]net.Lis
s, err := rgrpc.NewServer(
rgrpc.EnableReflection(cfg.EnableReflection),
rgrpc.WithShutdownDeadline(cfg.ShutdownDeadline),
rgrpc.WithLogger(log.With().Str("pkg", "grpc").Logger()),
rgrpc.WithLogger(logger),
rgrpc.WithServices(services),
rgrpc.WithUnaryServerInterceptors(unaryChain),
rgrpc.WithStreamServerInterceptors(streamChain),
Expand All @@ -391,18 +400,19 @@ func newServers(grpc []*config.GRPC, http []*config.HTTP, lns map[string]net.Lis
servers = append(servers, server)
}
for _, cfg := range http {
log := log.With().Str("pkg", "http").Logger()
services, err := rhttp.InitServices(cfg.Services, &log)
logger := log.With().Str("pkg", "http").Logger()
ctx := appctx.WithLogger(ctx, &logger)
services, err := rhttp.InitServices(ctx, cfg.Services)
if err != nil {
return nil, err
}
middlewares, err := initHTTPMiddlewares(cfg.Middlewares, httpUnprotected(services), &log)
middlewares, err := initHTTPMiddlewares(cfg.Middlewares, httpUnprotected(services), &logger)
if err != nil {
return nil, err
}
s, err := rhttp.New(
rhttp.WithServices(services),
rhttp.WithLogger(log),
rhttp.WithLogger(logger),
rhttp.WithCertAndKeyFiles(cfg.CertFile, cfg.KeyFile),
rhttp.WithMiddlewares(middlewares),
)
Expand Down
8 changes: 4 additions & 4 deletions internal/grpc/services/applicationauth/applicationauth.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ func (s *service) Register(ss *grpc.Server) {
appauthpb.RegisterApplicationsAPIServer(ss, s)
}

func getAppAuthManager(c *config) (appauth.Manager, error) {
func getAppAuthManager(ctx context.Context, c *config) (appauth.Manager, error) {
if f, ok := registry.NewFuncs[c.Driver]; ok {
return f(c.Drivers[c.Driver])
return f(ctx, c.Drivers[c.Driver])
}
return nil, errtypes.NotFound("driver not found: " + c.Driver)
}
Expand All @@ -73,14 +73,14 @@ func parseConfig(m map[string]interface{}) (*config, error) {
}

// New creates a app auth provider svc.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
}
c.init()

am, err := getAppAuthManager(c)
am, err := getAppAuthManager(ctx, c)
if err != nil {
return nil, err
}
Expand Down
8 changes: 4 additions & 4 deletions internal/grpc/services/appprovider/appprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func parseConfig(m map[string]interface{}) (*config, error) {
}

// New creates a new AppProviderService.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
Expand All @@ -95,7 +95,7 @@ func New(m map[string]interface{}) (rgrpc.Service, error) {
return nil, err
}

provider, err := getProvider(c)
provider, err := getProvider(ctx, c)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -196,7 +196,7 @@ func (s *service) Register(ss *grpc.Server) {
providerpb.RegisterProviderAPIServer(ss, s)
}

func getProvider(c *config) (app.Provider, error) {
func getProvider(ctx context.Context, c *config) (app.Provider, error) {
if f, ok := registry.NewFuncs[c.Driver]; ok {
driverConf := c.Drivers[c.Driver]
if c.MimeTypes != nil {
Expand All @@ -206,7 +206,7 @@ func getProvider(c *config) (app.Provider, error) {
}
driverConf["mime_types"] = c.MimeTypes
}
return f(driverConf)
return f(ctx, driverConf)
}
return nil, errtypes.NotFound("driver not found: " + c.Driver)
}
Expand Down
8 changes: 4 additions & 4 deletions internal/grpc/services/appregistry/appregistry.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,13 @@ func (c *config) init() {
}

// New creates a new StorageRegistryService.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
}

reg, err := getRegistry(c)
reg, err := getRegistry(ctx, c)
if err != nil {
return nil, err
}
Expand All @@ -90,9 +90,9 @@ func parseConfig(m map[string]interface{}) (*config, error) {
return c, nil
}

func getRegistry(c *config) (app.Registry, error) {
func getRegistry(ctx context.Context, c *config) (app.Registry, error) {
if f, ok := registry.NewFuncs[c.Driver]; ok {
return f(c.Drivers[c.Driver])
return f(ctx, c.Drivers[c.Driver])
}
return nil, errtypes.NotFound("appregistrysvc: driver not found: " + c.Driver)
}
Expand Down
6 changes: 3 additions & 3 deletions internal/grpc/services/appregistry/appregistry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ func Test_ListAppProviders(t *testing.T) {

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
rr, err := static.New(map[string]interface{}{"providers": tt.providers, "mime_types": tt.mimeTypes})
rr, err := static.New(context.Background(), map[string]interface{}{"providers": tt.providers, "mime_types": tt.mimeTypes})
if err != nil {
t.Errorf("could not create registry error = %v", err)
return
Expand Down Expand Up @@ -296,7 +296,7 @@ func Test_GetAppProviders(t *testing.T) {
},
}

rr, err := static.New(map[string]interface{}{"providers": providers, "mime_types": mimeTypes})
rr, err := static.New(context.Background(), map[string]interface{}{"providers": providers, "mime_types": mimeTypes})
if err != nil {
t.Errorf("could not create registry error = %v", err)
return
Expand Down Expand Up @@ -355,7 +355,7 @@ func TestNew(t *testing.T) {

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := New(tt.m)
got, err := New(context.Background(), tt.m)
if err != nil {
assert.Equal(t, tt.wantErr, err.Error())
assert.Nil(t, got)
Expand Down
8 changes: 4 additions & 4 deletions internal/grpc/services/authprovider/authprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func parseConfig(m map[string]interface{}) (*config, error) {
return c, nil
}

func getAuthManager(manager string, m map[string]map[string]interface{}) (auth.Manager, *plugin.RevaPlugin, error) {
func getAuthManager(ctx context.Context, manager string, m map[string]map[string]interface{}) (auth.Manager, *plugin.RevaPlugin, error) {
if manager == "" {
return nil, nil, errtypes.InternalError("authsvc: driver not configured for auth manager")
}
Expand All @@ -90,7 +90,7 @@ func getAuthManager(manager string, m map[string]map[string]interface{}) (auth.M
return authManager, p, nil
} else if _, ok := err.(errtypes.NotFound); ok {
if f, ok := registry.NewFuncs[manager]; ok {
authmgr, err := f(m[manager])
authmgr, err := f(ctx, m[manager])
return authmgr, nil, err
}
} else {
Expand All @@ -100,13 +100,13 @@ func getAuthManager(manager string, m map[string]map[string]interface{}) (auth.M
}

// New returns a new AuthProviderServiceServer.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
}

authManager, plug, err := getAuthManager(c.AuthManager, c.AuthManagers)
authManager, plug, err := getAuthManager(ctx, c.AuthManager, c.AuthManagers)
if err != nil {
return nil, err
}
Expand Down
8 changes: 4 additions & 4 deletions internal/grpc/services/authregistry/authregistry.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ func (c *config) init() {
}

// New creates a new AuthRegistry.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
}

c.init()

reg, err := getRegistry(c)
reg, err := getRegistry(ctx, c)
if err != nil {
return nil, err
}
Expand All @@ -94,9 +94,9 @@ func parseConfig(m map[string]interface{}) (*config, error) {
return c, nil
}

func getRegistry(c *config) (auth.Registry, error) {
func getRegistry(ctx context.Context, c *config) (auth.Registry, error) {
if f, ok := registry.NewFuncs[c.Driver]; ok {
return f(c.Drivers[c.Driver])
return f(ctx, c.Drivers[c.Driver])
}
return nil, errtypes.NotFound("authregistrysvc: driver not found: " + c.Driver)
}
Expand Down
14 changes: 7 additions & 7 deletions internal/grpc/services/datatx/datatx.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,16 @@ func (s *service) Register(ss *grpc.Server) {
datatx.RegisterTxAPIServer(ss, s)
}

func getDatatxManager(c *config) (txdriver.Manager, error) {
func getDatatxManager(ctx context.Context, c *config) (txdriver.Manager, error) {
if f, ok := txregistry.NewFuncs[c.TxDriver]; ok {
return f(c.TxDrivers[c.TxDriver])
return f(ctx, c.TxDrivers[c.TxDriver])
}
return nil, errtypes.NotFound("datatx service: driver not found: " + c.TxDriver)
}

func getStorageManager(c *config) (txdriver.Repository, error) {
func getStorageManager(ctx context.Context, c *config) (txdriver.Repository, error) {
if f, ok := repoRegistry.NewFuncs[c.StorageDriver]; ok {
return f(c.StorageDrivers[c.StorageDriver])
return f(ctx, c.StorageDrivers[c.StorageDriver])
}
return nil, errtypes.NotFound("datatx service: driver not found: " + c.StorageDriver)
}
Expand All @@ -88,19 +88,19 @@ func parseConfig(m map[string]interface{}) (*config, error) {
}

// New creates a new datatx svc.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
}
c.init()

txManager, err := getDatatxManager(c)
txManager, err := getDatatxManager(ctx, c)
if err != nil {
return nil, err
}

storageDriver, err := getStorageManager(c)
storageDriver, err := getStorageManager(ctx, c)
if err != nil {
return nil, err
}
Expand Down
3 changes: 2 additions & 1 deletion internal/grpc/services/gateway/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package gateway

import (
"context"
"fmt"
"net/url"
"strings"
Expand Down Expand Up @@ -124,7 +125,7 @@ type svc struct {
// New creates a new gateway svc that acts as a proxy for any grpc operation.
// The gateway is responsible for high-level controls: rate-limiting, coordination between svcs
// like sharing and storage acls, asynchronous transactions, ...
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
Expand Down
8 changes: 4 additions & 4 deletions internal/grpc/services/groupprovider/groupprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,22 +59,22 @@ func parseConfig(m map[string]interface{}) (*config, error) {
return c, nil
}

func getDriver(c *config) (group.Manager, error) {
func getDriver(ctx context.Context, c *config) (group.Manager, error) {
if f, ok := registry.NewFuncs[c.Driver]; ok {
return f(c.Drivers[c.Driver])
return f(ctx, c.Drivers[c.Driver])
}

return nil, errtypes.NotFound(fmt.Sprintf("driver %s not found for group manager", c.Driver))
}

// New returns a new GroupProviderServiceServer.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c, err := parseConfig(m)
if err != nil {
return nil, err
}

groupManager, err := getDriver(c)
groupManager, err := getDriver(ctx, c)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion internal/grpc/services/helloworld/helloworld.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ type service struct {
// New returns a new PreferencesServiceServer
// It can be tested like this:
// prototool grpc --address 0.0.0.0:9999 --method 'revad.helloworld.HelloWorldService/Hello' --data '{"name": "Alice"}'.
func New(m map[string]interface{}) (rgrpc.Service, error) {
func New(ctx context.Context, m map[string]interface{}) (rgrpc.Service, error) {
c := &conf{}
if err := mapstructure.Decode(m, c); err != nil {
err = errors.Wrap(err, "helloworld: error decoding conf")
Expand Down
Loading

0 comments on commit 5521a51

Please sign in to comment.