func (n *requestNotifier) ServerReply(req rpc.Request, hdr *rpc.Header, body interface{}, timeSpent time.Duration) { if req.Type == "Pinger" && req.Action == "Ping" { return } // TODO(rog) 2013-10-11 remove secrets from some responses. // Until secrets are removed, we only log the body of the requests at trace level // which is below the default level of debug. if logger.IsTraceEnabled() { logger.Tracef("-> [%X] %s %s", n.id, n.tag(), jsoncodec.DumpRequest(hdr, body)) } else { logger.Debugf("-> [%X] %s %s %s %s[%q].%s", n.id, n.tag(), timeSpent, jsoncodec.DumpRequest(hdr, "'body redacted'"), req.Type, req.Id, req.Action) } }
func (n *requestNotifier) ServerRequest(hdr *rpc.Header, body interface{}) { if hdr.Request.Type == "Pinger" && hdr.Request.Action == "Ping" { return } // TODO(rog) 2013-10-11 remove secrets from some requests. // Until secrets are removed, we only log the body of the requests at trace level // which is below the default level of debug. if logger.IsTraceEnabled() { logger.Tracef("<- [%X] %s %s", n.id, n.tag(), jsoncodec.DumpRequest(hdr, body)) } else { logger.Debugf("<- [%X] %s %s", n.id, n.tag(), jsoncodec.DumpRequest(hdr, "'params redacted'")) } }
func (*suite) TestDumpRequest(c *gc.C) { for i, test := range dumpRequestTests { c.Logf("test %d; %#v", i, test.hdr) data := jsoncodec.DumpRequest(&test.hdr, test.body) c.Check(string(data), gc.Equals, test.expect) } }
func (n *requestNotifier) ServerRequest(hdr *rpc.Header, body interface{}) { if hdr.Request.Type == "Pinger" && hdr.Request.Action == "Ping" { return } // TODO(rog) 2013-10-11 remove secrets from some requests. logger.Debugf("<- [%X] %s %s", n.id, n.tag(), jsoncodec.DumpRequest(hdr, body)) }
func (n *requestNotifier) ServerReply(req rpc.Request, hdr *rpc.Header, body interface{}, timeSpent time.Duration) { if req.Type == "Pinger" && req.Action == "Ping" { return } logger.Debugf("-> [%X] %s %s %s %s[%q].%s", n.id, n.tag(), timeSpent, jsoncodec.DumpRequest(hdr, body), req.Type, req.Id, req.Action) }
func (*suite) TestDumpRequest(c *gc.C) { for i, test := range []struct { hdr rpc.Header body interface{} expect string }{{ hdr: rpc.Header{ RequestId: 1, Request: rpc.Request{ Type: "Foo", Id: "id", Action: "Something", }, }, body: struct{ Arg string }{Arg: "an arg"}, expect: `{"RequestId":1,"Type":"Foo","Id":"id","Request":"Something","Params":{"Arg":"an arg"}}`, }, { hdr: rpc.Header{ RequestId: 2, }, body: struct{ Ret string }{Ret: "return value"}, expect: `{"RequestId":2,"Response":{"Ret":"return value"}}`, }, { hdr: rpc.Header{ RequestId: 3, }, expect: `{"RequestId":3}`, }, { hdr: rpc.Header{ RequestId: 4, Error: "an error", ErrorCode: "an error code", }, expect: `{"RequestId":4,"Error":"an error","ErrorCode":"an error code"}`, }, { hdr: rpc.Header{ RequestId: 5, }, body: make(chan int), expect: `"marshal error: json: unsupported type: chan int"`, }, { hdr: rpc.Header{ RequestId: 1, Request: rpc.Request{ Type: "Foo", Version: 2, Id: "id", Action: "Something", }, }, body: struct{ Arg string }{Arg: "an arg"}, expect: `{"RequestId":1,"Type":"Foo","Version":2,"Id":"id","Request":"Something","Params":{"Arg":"an arg"}}`, }, { hdr: rpc.Header{ RequestId: 1, Request: rpc.Request{ Type: "Foo", Id: "id", Action: "Something", }, Version: 1, }, body: struct{ Arg string }{Arg: "an arg"}, expect: `{"request-id":1,"type":"Foo","id":"id","request":"Something","params":{"Arg":"an arg"}}`, }, { hdr: rpc.Header{ RequestId: 2, Version: 1, }, body: struct{ Ret string }{Ret: "return value"}, expect: `{"request-id":2,"response":{"Ret":"return value"}}`, }, { hdr: rpc.Header{ RequestId: 3, Version: 1, }, expect: `{"request-id":3}`, }, { hdr: rpc.Header{ RequestId: 4, Error: "an error", ErrorCode: "an error code", Version: 1, }, expect: `{"request-id":4,"error":"an error","error-code":"an error code"}`, }, { hdr: rpc.Header{ RequestId: 5, Version: 1, }, body: make(chan int), expect: `"marshal error: json: unsupported type: chan int"`, }, { hdr: rpc.Header{ RequestId: 1, Request: rpc.Request{ Type: "Foo", Version: 2, Id: "id", Action: "Something", }, Version: 1, }, body: struct{ Arg string }{Arg: "an arg"}, expect: `{"request-id":1,"type":"Foo","version":2,"id":"id","request":"Something","params":{"Arg":"an arg"}}`, }} { c.Logf("test %d; %#v", i, test.hdr) data := jsoncodec.DumpRequest(&test.hdr, test.body) c.Check(string(data), gc.Equals, test.expect) } }