wspr: Use the global logger in the vlog package for logging.
This simplifies the code but doesn't change behavior. I'm also
going to get rid of the code that attaches a logger to the runtime
which nobody is using effectively now.
Change-Id: Iff4c377b573ceeeec8f35056a9b55b5c12812ff8
diff --git a/services/wsprd/app/app.go b/services/wsprd/app/app.go
index 1bb959f..c3d1a93 100644
--- a/services/wsprd/app/app.go
+++ b/services/wsprd/app/app.go
@@ -254,11 +254,6 @@
}
}
-// GetLogger returns a Veyron logger to use.
-func (c *Controller) GetLogger() vlog.Logger {
- return veyron2.GetLogger(c.ctx)
-}
-
// RT returns the runtime of the app.
func (c *Controller) Context() *context.T {
return c.ctx
@@ -274,7 +269,7 @@
// Cleanup cleans up any outstanding rpcs.
func (c *Controller) Cleanup() {
- c.GetLogger().VI(0).Info("Cleaning up controller")
+ vlog.VI(0).Info("Cleaning up controller")
c.Lock()
defer c.Unlock()
@@ -412,7 +407,7 @@
request.stream.end()
return
}
- c.GetLogger().Errorf("close called on non-existent call: %v", id)
+ vlog.Errorf("close called on non-existent call: %v", id)
}
func (c *Controller) maybeCreateServer(serverId uint32) (*server.Server, error) {
@@ -449,7 +444,7 @@
w.Error(verror2.Convert(verror2.Internal, nil, err))
}
- c.GetLogger().VI(2).Infof("serving under name: %q", serveRequest.Name)
+ vlog.VI(2).Infof("serving under name: %q", serveRequest.Name)
if err := server.Serve(serveRequest.Name); err != nil {
w.Error(verror2.Convert(verror2.Internal, nil, err))
@@ -481,7 +476,7 @@
server := c.flowMap[id]
c.Unlock()
if server == nil {
- c.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+ vlog.Errorf("unexpected result from JavaScript. No channel "+
"for MessageId: %d exists. Ignoring the results.", id)
//Ignore unknown responses that don't belong to any channel
return
@@ -496,7 +491,7 @@
server := c.flowMap[id]
c.Unlock()
if server == nil {
- c.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+ vlog.Errorf("unexpected result from JavaScript. No channel "+
"for MessageId: %d exists. Ignoring the results.", id)
//Ignore unknown responses that don't belong to any channel
return
@@ -584,7 +579,7 @@
server := c.flowMap[id]
c.Unlock()
if server == nil {
- c.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+ vlog.Errorf("unexpected result from JavaScript. No channel "+
"for MessageId: %d exists. Ignoring the results.", id)
//Ignore unknown responses that don't belong to any channel
return
@@ -598,7 +593,7 @@
if err := lib.VomDecode(data, &msg); err != nil {
return nil, err
}
- c.GetLogger().VI(2).Infof("VeyronRPC: %s.%s(..., streaming=%v)", msg.Name, msg.Method, msg.IsStreaming)
+ vlog.VI(2).Infof("VeyronRPC: %s.%s(..., streaming=%v)", msg.Name, msg.Method, msg.IsStreaming)
return &msg, nil
}
@@ -620,7 +615,7 @@
return
}
- c.GetLogger().VI(2).Infof("requesting Signature for %q", request.Name)
+ vlog.VI(2).Infof("requesting Signature for %q", request.Name)
sig, err := c.getSignature(ctx, request.Name)
if err != nil {
w.Error(err)
diff --git a/services/wsprd/app/messaging.go b/services/wsprd/app/messaging.go
index 72bb89e..c23e0ef 100644
--- a/services/wsprd/app/messaging.go
+++ b/services/wsprd/app/messaging.go
@@ -159,8 +159,8 @@
}
// FormatAsVerror formats an error as a verror.
-// This also logs the error to the given logger.
-func FormatAsVerror(err error, logger vlog.Logger) error {
+// This also logs the error.
+func FormatAsVerror(err error) error {
verr := verror.Convert(verror.Unknown, nil, err)
// Also log the error but write internal errors at a more severe log level
@@ -186,7 +186,7 @@
if verror.Is(verr, verror.Internal.ID) {
logLevel = 2
}
- logger.VI(logLevel).Info(logErr)
+ vlog.VI(logLevel).Info(logErr)
return verr
}
diff --git a/services/wsprd/browspr/browspr.go b/services/wsprd/browspr/browspr.go
index 9be9fb5..08dc3c1 100644
--- a/services/wsprd/browspr/browspr.go
+++ b/services/wsprd/browspr/browspr.go
@@ -25,7 +25,6 @@
accountManager *account.AccountManager
postMessage func(instanceId int32, ty, msg string)
principalManager *principal.PrincipalManager
- logger vlog.Logger
// Locks activeInstances
mu sync.Mutex
@@ -50,7 +49,6 @@
namespaceRoots: wsNamespaceRoots,
postMessage: postMessage,
ctx: ctx,
- logger: veyron2.GetLogger(ctx),
activeInstances: make(map[int32]*pipe),
}
diff --git a/services/wsprd/browspr/pipe.go b/services/wsprd/browspr/pipe.go
index 3725333..8a10dd5 100644
--- a/services/wsprd/browspr/pipe.go
+++ b/services/wsprd/browspr/pipe.go
@@ -5,6 +5,7 @@
"fmt"
"v.io/core/veyron2/options"
+ "v.io/core/veyron2/vlog"
"v.io/wspr/veyron/services/wsprd/app"
"v.io/wspr/veyron/services/wsprd/lib"
)
@@ -30,16 +31,16 @@
// TODO(nlacasse, bjornick): This code should go away once we
// start requiring authentication. At that point, we should
// just return an error to the client.
- b.logger.Errorf("No principal associated with origin %v, creating a new principal with self-signed blessing from browspr: %v", origin, err)
+ vlog.Errorf("No principal associated with origin %v, creating a new principal with self-signed blessing from browspr: %v", origin, err)
dummyAccount, err := b.principalManager.DummyAccount()
if err != nil {
- b.logger.Errorf("principalManager.DummyAccount() failed: %v", err)
+ vlog.Errorf("principalManager.DummyAccount() failed: %v", err)
return nil
}
if err := b.accountManager.AssociateAccount(origin, dummyAccount, nil); err != nil {
- b.logger.Errorf("accountManager.AssociateAccount(%v, %v, %v) failed: %v", origin, dummyAccount, nil, err)
+ vlog.Errorf("accountManager.AssociateAccount(%v, %v, %v) failed: %v", origin, dummyAccount, nil, err)
return nil
}
p, err = b.accountManager.LookupPrincipal(origin)
@@ -50,7 +51,7 @@
pipe.controller, err = app.NewController(b.ctx, pipe.createWriter, b.listenSpec, b.namespaceRoots, options.RuntimePrincipal{p})
if err != nil {
- b.logger.Errorf("Could not create controller: %v", err)
+ vlog.Errorf("Could not create controller: %v", err)
return nil
}
@@ -65,7 +66,7 @@
}
func (p *pipe) cleanup() {
- p.browspr.logger.VI(0).Info("Cleaning up pipe")
+ vlog.VI(0).Info("Cleaning up pipe")
p.controller.Cleanup()
}
diff --git a/services/wsprd/browspr/writer.go b/services/wsprd/browspr/writer.go
index a037f16..b956ce6 100644
--- a/services/wsprd/browspr/writer.go
+++ b/services/wsprd/browspr/writer.go
@@ -22,5 +22,5 @@
}
func (w *postMessageWriter) Error(err error) {
- w.Send(lib.ResponseError, app.FormatAsVerror(err, w.p.browspr.logger))
+ w.Send(lib.ResponseError, app.FormatAsVerror(err))
}
diff --git a/services/wsprd/ipc/server/dispatcher.go b/services/wsprd/ipc/server/dispatcher.go
index 8410edd..8b96fa5 100644
--- a/services/wsprd/ipc/server/dispatcher.go
+++ b/services/wsprd/ipc/server/dispatcher.go
@@ -56,20 +56,18 @@
flowFactory flowFactory
invokerFactory invokerFactory
authFactory authFactory
- logger vlog.Logger
outstandingLookups map[int32]chan lookupReply
}
var _ ipc.Dispatcher = (*dispatcher)(nil)
// newDispatcher is a dispatcher factory.
-func newDispatcher(serverID uint32, flowFactory flowFactory, invokerFactory invokerFactory, authFactory authFactory, logger vlog.Logger) *dispatcher {
+func newDispatcher(serverID uint32, flowFactory flowFactory, invokerFactory invokerFactory, authFactory authFactory) *dispatcher {
return &dispatcher{
serverID: serverID,
flowFactory: flowFactory,
invokerFactory: invokerFactory,
authFactory: authFactory,
- logger: logger,
outstandingLookups: make(map[int32]chan lookupReply),
}
}
@@ -123,7 +121,7 @@
if ch == nil {
d.flowFactory.cleanupFlow(id)
- d.logger.Errorf("unknown invoke request for flow: %d", id)
+ vlog.Errorf("unknown invoke request for flow: %d", id)
return
}
@@ -132,7 +130,7 @@
if err := decoder.Decode(&intermediateReply); err != nil {
err2 := verror2.Convert(verror2.Internal, nil, err).(verror2.Standard)
intermediateReply = lookupIntermediateReply{Err: &err2}
- d.logger.Errorf("unmarshaling invoke request failed: %v, %s", err, data)
+ vlog.Errorf("unmarshaling invoke request failed: %v, %s", err, data)
}
reply := lookupReply{
diff --git a/services/wsprd/ipc/server/dispatcher_test.go b/services/wsprd/ipc/server/dispatcher_test.go
index 91a6cfa..41cef8a 100644
--- a/services/wsprd/ipc/server/dispatcher_test.go
+++ b/services/wsprd/ipc/server/dispatcher_test.go
@@ -5,8 +5,6 @@
"reflect"
"testing"
- _ "v.io/core/veyron/profiles"
- "v.io/core/veyron2"
"v.io/core/veyron2/ipc"
"v.io/core/veyron2/security"
"v.io/core/veyron2/vdl/vdlroot/src/signature"
@@ -74,12 +72,8 @@
}
func TestSuccessfulLookup(t *testing.T) {
- ctx, shutdown := veyron2.Init()
- defer shutdown()
-
flowFactory := &mockFlowFactory{}
- logger := veyron2.GetLogger(ctx)
- d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{}, logger)
+ d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{})
expectedSig := []signature.Interface{
{Name: "AName"},
}
@@ -123,12 +117,8 @@
}
func TestSuccessfulLookupWithAuthorizer(t *testing.T) {
- ctx, shutdown := veyron2.Init()
- defer shutdown()
-
flowFactory := &mockFlowFactory{}
- logger := veyron2.GetLogger(ctx)
- d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{}, logger)
+ d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{})
expectedSig := []signature.Interface{
{Name: "AName"},
}
@@ -172,12 +162,8 @@
}
func TestFailedLookup(t *testing.T) {
- ctx, shutdown := veyron2.Init()
- defer shutdown()
-
flowFactory := &mockFlowFactory{}
- logger := veyron2.GetLogger(ctx)
- d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{}, logger)
+ d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{})
go func() {
if err := flowFactory.writer.WaitForMessage(1); err != nil {
t.Errorf("failed to get dispatch request %v", err)
diff --git a/services/wsprd/ipc/server/server.go b/services/wsprd/ipc/server/server.go
index 1281db7..b478647 100644
--- a/services/wsprd/ipc/server/server.go
+++ b/services/wsprd/ipc/server/server.go
@@ -54,7 +54,6 @@
FlowHandler
HandleStore
- GetLogger() vlog.Logger
Context() *context.T
}
@@ -174,7 +173,7 @@
return errHandler(err)
}
- s.helper.GetLogger().VI(3).Infof("calling method %q with args %v, MessageID %d assigned\n", methodName, args, flow.ID)
+ vlog.VI(3).Infof("calling method %q with args %v, MessageID %d assigned\n", methodName, args, flow.ID)
// Watch for cancellation.
go func() {
@@ -192,16 +191,15 @@
ch <- &lib.ServerRPCReply{nil, &err}
}()
- go proxyStream(call, flow.Writer, s.helper.GetLogger())
+ go proxyStream(call, flow.Writer)
return replyChan
}
}
type globStream struct {
- ch chan naming.VDLMountEntry
- ctx *context.T
- logger vlog.Logger
+ ch chan naming.VDLMountEntry
+ ctx *context.T
}
func (g *globStream) Send(item interface{}) error {
@@ -229,9 +227,8 @@
return func(pattern string, call ipc.ServerContext) (<-chan naming.VDLMountEntry, error) {
globChan := make(chan naming.VDLMountEntry, 1)
flow := s.helper.CreateNewFlow(s, &globStream{
- ch: globChan,
- ctx: call.Context(),
- logger: s.helper.GetLogger(),
+ ch: globChan,
+ ctx: call.Context(),
})
replyChan := make(chan *lib.ServerRPCReply, 1)
s.mu.Lock()
@@ -271,7 +268,7 @@
return errHandler(err)
}
- s.helper.GetLogger().VI(3).Infof("calling method 'Glob__' with args %v, MessageID %d assigned\n", []interface{}{pattern}, flow.ID)
+ vlog.VI(3).Infof("calling method 'Glob__' with args %v, MessageID %d assigned\n", []interface{}{pattern}, flow.ID)
// Watch for cancellation.
go func() {
@@ -293,7 +290,7 @@
}
}
-func proxyStream(stream ipc.Stream, w lib.ClientWriter, logger vlog.Logger) {
+func proxyStream(stream ipc.Stream, w lib.ClientWriter) {
var item interface{}
for err := stream.Recv(&item); err == nil; err = stream.Recv(&item) {
vomItem, err := lib.VomEncode(item)
@@ -345,7 +342,7 @@
Handle: handle,
Context: s.convertSecurityContext(ctx),
}
- s.helper.GetLogger().VI(0).Infof("Sending out auth request for %v, %v", flow.ID, message)
+ vlog.VI(0).Infof("Sending out auth request for %v, %v", flow.ID, message)
vomMessage, err := lib.VomEncode(message)
if err != nil {
@@ -355,7 +352,7 @@
}
err = <-replyChan
- s.helper.GetLogger().VI(0).Infof("going to respond with %v", err)
+ vlog.VI(0).Infof("going to respond with %v", err)
s.mu.Lock()
delete(s.outstandingAuthRequests, flow.ID)
s.mu.Unlock()
@@ -369,7 +366,7 @@
defer s.mu.Unlock()
if s.dispatcher == nil {
- s.dispatcher = newDispatcher(s.id, s, s, s, s.helper.GetLogger())
+ s.dispatcher = newDispatcher(s.id, s, s, s)
}
if !s.isListening {
@@ -397,7 +394,7 @@
func (s *Server) HandleServerResponse(id int32, data string) {
ch := s.popServerRequest(id)
if ch == nil {
- s.helper.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+ vlog.Errorf("unexpected result from JavaScript. No channel "+
"for MessageId: %d exists. Ignoring the results.", id)
// Ignore unknown responses that don't belong to any channel
return
@@ -409,7 +406,7 @@
reply.Err = err
}
- s.helper.GetLogger().VI(0).Infof("response received from JavaScript server for "+
+ vlog.VI(0).Infof("response received from JavaScript server for "+
"MessageId %d with result %v", id, reply)
s.helper.CleanupFlow(id)
ch <- &reply
@@ -424,7 +421,7 @@
ch := s.outstandingAuthRequests[id]
s.mu.Unlock()
if ch == nil {
- s.helper.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+ vlog.Errorf("unexpected result from JavaScript. No channel "+
"for MessageId: %d exists. Ignoring the results(%s)", id, data)
//Ignore unknown responses that don't belong to any channel
return
@@ -436,7 +433,7 @@
reply = authReply{Err: &err}
}
- s.helper.GetLogger().VI(0).Infof("response received from JavaScript server for "+
+ vlog.VI(0).Infof("response received from JavaScript server for "+
"MessageId %d with result %v", id, reply)
s.helper.CleanupFlow(id)
// A nil verror.Standard does not result in an nil error. Instead, we have create
diff --git a/services/wsprd/wspr/pipe.go b/services/wsprd/wspr/pipe.go
index e4bd5bf..50516bf 100644
--- a/services/wsprd/wspr/pipe.go
+++ b/services/wsprd/wspr/pipe.go
@@ -29,8 +29,6 @@
ws *websocket.Conn
- logger vlog.Logger
-
wspr *WSPR
// Creates a client writer for a given flow. This is a member so that tests can override
@@ -47,17 +45,17 @@
}
func newPipe(w http.ResponseWriter, req *http.Request, wspr *WSPR, creator func(id int32) lib.ClientWriter) *pipe {
- pipe := &pipe{logger: wspr.logger, wspr: wspr, req: req}
+ pipe := &pipe{wspr: wspr, req: req}
if creator == nil {
creator = func(id int32) lib.ClientWriter {
- return &websocketWriter{p: pipe, id: id, logger: pipe.logger}
+ return &websocketWriter{p: pipe, id: id}
}
}
pipe.writerCreator = creator
origin := req.Header.Get("Origin")
if origin == "" {
- wspr.logger.Errorf("Could not read origin from the request")
+ vlog.Errorf("Could not read origin from the request")
http.Error(w, "Could not read origin from the request", http.StatusBadRequest)
return nil
}
@@ -65,13 +63,13 @@
p, err := wspr.principalManager.Principal(origin)
if err != nil {
p = veyron2.GetPrincipal(wspr.ctx)
- wspr.logger.Errorf("no principal associated with origin %s: %v", origin, err)
+ vlog.Errorf("no principal associated with origin %s: %v", origin, err)
// TODO(bjornick): Send an error to the client when all of the principal stuff is set up.
}
pipe.controller, err = app.NewController(wspr.ctx, creator, wspr.listenSpec, wspr.namespaceRoots, options.RuntimePrincipal{p})
if err != nil {
- wspr.logger.Errorf("Could not create controller: %v", err)
+ vlog.Errorf("Could not create controller: %v", err)
http.Error(w, fmt.Sprintf("Failed to create controller: %v", err), http.StatusInternalServerError)
return nil
}
@@ -82,7 +80,7 @@
// cleans up any outstanding rpcs.
func (p *pipe) cleanup() {
- p.logger.VI(0).Info("Cleaning up websocket")
+ vlog.VI(0).Info("Cleaning up websocket")
p.controller.Cleanup()
p.ws.Close()
p.wspr.CleanUpPipe(p.req)
@@ -97,15 +95,15 @@
for {
msg, ok := <-p.writeQueue
if !ok {
- p.logger.Errorf("write queue was closed")
+ vlog.Errorf("write queue was closed")
return
}
if msg.messageType == websocket.PingMessage {
- p.logger.Infof("sending ping")
+ vlog.Infof("sending ping")
}
if err := p.ws.WriteMessage(msg.messageType, msg.buf); err != nil {
- p.logger.Errorf("failed to write bytes: %s", err)
+ vlog.Errorf("failed to write bytes: %s", err)
}
}
}
@@ -117,7 +115,7 @@
return
} else if err != nil {
http.Error(w, "Internal Error", 500)
- p.logger.Errorf("websocket upgrade failed: %s", err)
+ vlog.Errorf("websocket upgrade failed: %s", err)
return
}
@@ -132,13 +130,13 @@
func (p *pipe) pingLoop() {
for {
time.Sleep(pingInterval)
- p.logger.VI(2).Info("ws: ping")
+ vlog.VI(2).Info("ws: ping")
p.writeQueue <- wsMessage{messageType: websocket.PingMessage, buf: []byte{}}
}
}
func (p *pipe) pongHandler(msg string) error {
- p.logger.VI(2).Infof("ws: pong")
+ vlog.VI(2).Infof("ws: pong")
p.ws.SetReadDeadline(time.Now().Add(pongTimeout))
return nil
}
@@ -151,19 +149,19 @@
break
}
if err != nil {
- p.logger.VI(1).Infof("websocket receive: %s", err)
+ vlog.VI(1).Infof("websocket receive: %s", err)
break
}
if op != websocket.TextMessage {
- p.logger.Errorf("unexpected websocket op: %v", op)
+ vlog.Errorf("unexpected websocket op: %v", op)
}
var msg app.Message
decoder := json.NewDecoder(r)
if err := decoder.Decode(&msg); err != nil {
errMsg := fmt.Sprintf("can't unmarshall JSONMessage: %v", err)
- p.logger.Error(errMsg)
+ vlog.Error(errMsg)
p.writeQueue <- wsMessage{messageType: websocket.TextMessage, buf: []byte(errMsg)}
continue
}
diff --git a/services/wsprd/wspr/writer.go b/services/wsprd/wspr/writer.go
index 17377ac..7ac4ef8 100644
--- a/services/wsprd/wspr/writer.go
+++ b/services/wsprd/wspr/writer.go
@@ -22,9 +22,8 @@
// Implements clientWriter interface for sending messages over websockets.
type websocketWriter struct {
- p *pipe
- logger vlog.Logger
- id int32
+ p *pipe
+ id int32
}
func (w *websocketWriter) Send(messageType lib.ResponseType, data interface{}) error {
@@ -64,7 +63,7 @@
if verror2.Is(verr, verror2.Internal.ID) {
logLevel = 2
}
- w.logger.VI(logLevel).Info(logErr)
+ vlog.VI(logLevel).Info(logErr)
w.Send(lib.ResponseError, verr)
}
diff --git a/services/wsprd/wspr/wspr.go b/services/wsprd/wspr/wspr.go
index 88acfed..a9dada3 100644
--- a/services/wsprd/wspr/wspr.go
+++ b/services/wsprd/wspr/wspr.go
@@ -42,7 +42,6 @@
type WSPR struct {
mu sync.Mutex
tlsCert *tls.Certificate
- logger vlog.Logger
ctx *context.T
// HTTP port for WSPR to serve on. Note, WSPR always serves on localhost.
httpPort int
@@ -72,7 +71,7 @@
vlog.Fatalf("Listen failed: %s", err)
}
wspr.ln = ln.(*net.TCPListener)
- wspr.logger.VI(1).Infof("Listening at %s", ln.Addr().String())
+ vlog.VI(1).Infof("Listening at %s", ln.Addr().String())
return ln.Addr()
}
@@ -131,7 +130,6 @@
httpPort: httpPort,
listenSpec: listenSpec,
namespaceRoots: namespaceRoots,
- logger: veyron2.GetLogger(ctx),
pipes: map[*http.Request]*pipe{},
}
@@ -148,7 +146,7 @@
}
func (wspr *WSPR) logAndSendBadReqErr(w http.ResponseWriter, msg string) {
- wspr.logger.Error(msg)
+ vlog.Error(msg)
http.Error(w, msg, http.StatusBadRequest)
return
}
@@ -178,7 +176,7 @@
http.Error(w, "Method not allowed.", http.StatusMethodNotAllowed)
return
}
- wspr.logger.VI(0).Info("Creating a new websocket")
+ vlog.VI(0).Info("Creating a new websocket")
p := newPipe(w, r, wspr, nil)
if p == nil {