| Index: appengine/cmd/dm/deps/service.go
|
| diff --git a/appengine/cmd/dm/deps/service.go b/appengine/cmd/dm/deps/service.go
|
| index d20981a6e39f739b6adf97cdfab87da9de6cc53d..99edd18b4f23a439eb807085a65828becc32f8aa 100644
|
| --- a/appengine/cmd/dm/deps/service.go
|
| +++ b/appengine/cmd/dm/deps/service.go
|
| @@ -6,6 +6,7 @@ package deps
|
|
|
| import (
|
| "github.com/golang/protobuf/proto"
|
| + "github.com/luci/luci-go/appengine/cmd/dm/distributor"
|
| "github.com/luci/luci-go/appengine/tumble"
|
| dm "github.com/luci/luci-go/common/api/dm/service/v1"
|
| "github.com/luci/luci-go/common/grpcutil"
|
| @@ -22,29 +23,35 @@ type deps struct{}
|
|
|
| var _ dm.DepsServer = (*deps)(nil)
|
|
|
| -func depsServerPrelude(c context.Context, methodName string, req proto.Message) (context.Context, error) {
|
| - // Many of the DM request messages can be Normalize'd. This checks them for
|
| - // basic validity and normalizes cases where multiple representations can mean
|
| - // the same thing so that the service handlers only need to check for the
|
| - // canonical representation.
|
| - if norm, ok := req.(interface {
|
| - Normalize() error
|
| - }); ok {
|
| - if err := norm.Normalize(); err != nil {
|
| - return nil, grpcutil.MaybeLogErr(c, err, codes.InvalidArgument, "invalid request")
|
| +func depsServerPrelude(reg distributor.Registry) func(context.Context, string, proto.Message) (context.Context, error) {
|
| + return func(c context.Context, methodName string, req proto.Message) (context.Context, error) {
|
| + // Many of the DM request messages can be Normalize'd. This checks them for
|
| + // basic validity and normalizes cases where multiple representations can mean
|
| + // the same thing so that the service handlers only need to check for the
|
| + // canonical representation.
|
| + if norm, ok := req.(interface {
|
| + Normalize() error
|
| + }); ok {
|
| + if err := norm.Normalize(); err != nil {
|
| + return nil, grpcutil.MaybeLogErr(c, err, codes.InvalidArgument, "invalid request")
|
| + }
|
| }
|
| + c = distributor.WithRegistry(c, reg)
|
| + return c, nil
|
| }
|
| - return c, nil
|
| }
|
|
|
| -func newDecoratedDeps() dm.DepsServer {
|
| - return &dm.DecoratedDeps{Service: &deps{}, Prelude: depsServerPrelude}
|
| +func newDecoratedDeps(reg distributor.Registry) dm.DepsServer {
|
| + return &dm.DecoratedDeps{
|
| + Service: &deps{},
|
| + Prelude: depsServerPrelude(reg),
|
| + }
|
| }
|
|
|
| // RegisterDepsServer registers an implementation of the dm.DepsServer with
|
| // the provided Registrar.
|
| -func RegisterDepsServer(svr prpc.Registrar) {
|
| - dm.RegisterDepsServer(svr, newDecoratedDeps())
|
| +func RegisterDepsServer(svr prpc.Registrar, reg distributor.Registry) {
|
| + dm.RegisterDepsServer(svr, newDecoratedDeps(reg))
|
| }
|
|
|
| // tumbleNow will run the mutation immediately, converting any non grpc errors
|
| @@ -55,5 +62,6 @@ func tumbleNow(c context.Context, m tumble.Mutation) error {
|
| logging.WithError(err).Errorf(c, "unknown error while applying mutation %v", m)
|
| err = grpcutil.Internal
|
| }
|
| + logging.Fields{"root": m.Root(c)}.Infof(c, "tumbleNow success")
|
| return err
|
| }
|
|
|