From 90d7a87914fd1325647432305478df3c1dee5eb3 Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Sat, 16 Nov 2019 18:48:24 +0000 Subject: [PATCH] Move wrapper internally since its not top level relevant --- go.sum | 2 ++ service.go | 13 ++++++------- wrapper.go => util/wrapper/wrapper.go | 16 +++++++++++++++- wrapper_test.go => util/wrapper/wrapper_test.go | 2 +- 4 files changed, 24 insertions(+), 9 deletions(-) rename wrapper.go => util/wrapper/wrapper.go (74%) rename wrapper_test.go => util/wrapper/wrapper_test.go (98%) diff --git a/go.sum b/go.sum index 245c8799..00550ff0 100644 --- a/go.sum +++ b/go.sum @@ -76,6 +76,7 @@ github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -522,6 +523,7 @@ google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a h1:Ob5/580gVHBJZgXnff1cZDbG+xLtMVE5mDRTe+nIsX4= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= diff --git a/service.go b/service.go index 2c94387e..95477231 100644 --- a/service.go +++ b/service.go @@ -12,9 +12,9 @@ import ( "github.com/micro/go-micro/debug/handler" "github.com/micro/go-micro/debug/profile" "github.com/micro/go-micro/debug/profile/pprof" - "github.com/micro/go-micro/metadata" "github.com/micro/go-micro/plugin" "github.com/micro/go-micro/server" + "github.com/micro/go-micro/util/wrapper" "github.com/micro/go-micro/util/log" ) @@ -27,12 +27,11 @@ type service struct { func newService(opts ...Option) Service { options := newOptions(opts...) - options.Client = &clientWrapper{ - options.Client, - metadata.Metadata{ - HeaderPrefix + "From-Service": options.Server.Options().Name, - }, - } + // service name + serviceName := options.Server.Options().Name + + // wrap client to inject From-Service header on any calls + options.Client = wrapper.FromService(serviceName, options.Client) return &service{ opts: options, diff --git a/wrapper.go b/util/wrapper/wrapper.go similarity index 74% rename from wrapper.go rename to util/wrapper/wrapper.go index e4977397..f80d34fb 100644 --- a/wrapper.go +++ b/util/wrapper/wrapper.go @@ -1,4 +1,4 @@ -package micro +package wrapper import ( "context" @@ -12,6 +12,10 @@ type clientWrapper struct { headers metadata.Metadata } +var ( + HeaderPrefix = "Micro-" +) + func (c *clientWrapper) setHeaders(ctx context.Context) context.Context { // copy metadata mda, _ := metadata.FromContext(ctx) @@ -41,3 +45,13 @@ func (c *clientWrapper) Publish(ctx context.Context, p client.Message, opts ...c ctx = c.setHeaders(ctx) return c.Client.Publish(ctx, p, opts...) } + +// FromService wraps a client to inject From-Service header into metadata +func FromService(name string, c client.Client) client.Client { + return &clientWrapper{ + c, + metadata.Metadata{ + HeaderPrefix + "From-Service": name, + }, + } +} diff --git a/wrapper_test.go b/util/wrapper/wrapper_test.go similarity index 98% rename from wrapper_test.go rename to util/wrapper/wrapper_test.go index 80abdc46..de777cee 100644 --- a/wrapper_test.go +++ b/util/wrapper/wrapper_test.go @@ -1,4 +1,4 @@ -package micro +package wrapper import ( "context"