1
0
mirror of https://github.com/golang/go synced 2024-11-25 19:07:57 -07:00

dashboard: fix log recording and output

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5503054
This commit is contained in:
Andrew Gerrand 2011-12-21 12:13:27 +11:00
parent 9f0e39b992
commit 15782bbfaf
2 changed files with 7 additions and 6 deletions

View File

@ -176,7 +176,7 @@ type Result struct {
GoHash string GoHash string
OK bool OK bool
Log []byte `datastore:"-"` // for JSON unmarshaling Log string `datastore:"-"` // for JSON unmarshaling only
LogHash string `datastore:",noindex"` // Key to the Log record. LogHash string `datastore:",noindex"` // Key to the Log record.
} }
@ -208,12 +208,12 @@ type Log struct {
CompressedLog []byte CompressedLog []byte
} }
func PutLog(c appengine.Context, text []byte) (hash string, err os.Error) { func PutLog(c appengine.Context, text string) (hash string, err os.Error) {
h := sha1.New() h := sha1.New()
h.Write(text) io.WriteString(h, text)
b := new(bytes.Buffer) b := new(bytes.Buffer)
z, _ := gzip.NewWriterLevel(b, gzip.BestCompression) z, _ := gzip.NewWriterLevel(b, gzip.BestCompression)
z.Write(text) io.WriteString(z, text)
z.Close() z.Close()
hash = fmt.Sprintf("%x", h.Sum()) hash = fmt.Sprintf("%x", h.Sum())
key := datastore.NewKey(c, "Log", hash, 0, nil) key := datastore.NewKey(c, "Log", hash, 0, nil)
@ -511,6 +511,7 @@ func resultHandler(r *http.Request) (interface{}, os.Error) {
// logHandler displays log text for a given hash. // logHandler displays log text for a given hash.
// It handles paths like "/log/hash". // It handles paths like "/log/hash".
func logHandler(w http.ResponseWriter, r *http.Request) { func logHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-type", "text/plain")
c := appengine.NewContext(r) c := appengine.NewContext(r)
h := r.URL.Path[len("/log/"):] h := r.URL.Path[len("/log/"):]
k := datastore.NewKey(c, "Log", h, 0, nil) k := datastore.NewKey(c, "Log", h, 0, nil)

View File

@ -90,7 +90,7 @@ var testRequests = []struct {
{"/todo", url.Values{"kind": {"build-go-commit"}, "builder": {"linux-386"}}, nil, &Todo{Kind: "build-go-commit", Data: &Commit{Hash: "0003"}}}, {"/todo", url.Values{"kind": {"build-go-commit"}, "builder": {"linux-386"}}, nil, &Todo{Kind: "build-go-commit", Data: &Commit{Hash: "0003"}}},
// logs // logs
{"/result", nil, &Result{Builder: "linux-386", Hash: "0003", OK: false, Log: []byte("test")}, nil}, {"/result", nil, &Result{Builder: "linux-386", Hash: "0003", OK: false, Log: "test"}, nil},
{"/log/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", nil, nil, "test"}, {"/log/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", nil, nil, "test"},
{"/todo", url.Values{"kind": {"build-go-commit"}, "builder": {"linux-386"}}, nil, nil}, {"/todo", url.Values{"kind": {"build-go-commit"}, "builder": {"linux-386"}}, nil, nil},
@ -106,7 +106,7 @@ var testRequests = []struct {
{"/result", nil, &Result{PackagePath: testPkg, Builder: "linux-386", Hash: "1001", GoHash: "0001", OK: true}, nil}, {"/result", nil, &Result{PackagePath: testPkg, Builder: "linux-386", Hash: "1001", GoHash: "0001", OK: true}, nil},
{"/todo", url.Values{"kind": {"build-package"}, "builder": {"linux-386"}, "packagePath": {testPkg}, "goHash": {"0001"}}, nil, nil}, {"/todo", url.Values{"kind": {"build-package"}, "builder": {"linux-386"}, "packagePath": {testPkg}, "goHash": {"0001"}}, nil, nil},
{"/todo", url.Values{"kind": {"build-package"}, "builder": {"linux-386"}, "packagePath": {testPkg}, "goHash": {"0002"}}, nil, &Todo{Kind: "build-package", Data: &Commit{Hash: "1003"}}}, {"/todo", url.Values{"kind": {"build-package"}, "builder": {"linux-386"}, "packagePath": {testPkg}, "goHash": {"0002"}}, nil, &Todo{Kind: "build-package", Data: &Commit{Hash: "1003"}}},
{"/result", nil, &Result{PackagePath: testPkg, Builder: "linux-386", Hash: "1001", GoHash: "0005", OK: false, Log: []byte("boo")}, nil}, {"/result", nil, &Result{PackagePath: testPkg, Builder: "linux-386", Hash: "1001", GoHash: "0005", OK: false, Log: "boo"}, nil},
} }
func testHandler(w http.ResponseWriter, r *http.Request) { func testHandler(w http.ResponseWriter, r *http.Request) {