コード例 #1
0
ファイル: apiserver.go プロジェクト: AlexisBruemmer/juju
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)
	}
}
コード例 #2
0
ファイル: apiserver.go プロジェクト: AlexisBruemmer/juju
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'"))
	}
}
コード例 #3
0
ファイル: codec_test.go プロジェクト: rogpeppe/juju
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)
	}
}
コード例 #4
0
ファイル: apiserver.go プロジェクト: jiasir/juju
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))
}
コード例 #5
0
ファイル: apiserver.go プロジェクト: jiasir/juju
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)
}
コード例 #6
0
ファイル: codec_test.go プロジェクト: bac/juju
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)
	}
}