Repository: incubator-htrace
Updated Branches:
  refs/heads/master f425e63c3 -> a9eb2316c


htraced: put query parameters in the URL, not in the GET request body (abe via 
cmccabe)


Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/a9eb2316
Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/a9eb2316
Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/a9eb2316

Branch: refs/heads/master
Commit: a9eb2316c70e990e074ce47f85529a48b271e453
Parents: f425e63
Author: Colin P. Mccabe <[email protected]>
Authored: Mon Feb 2 11:25:34 2015 -0800
Committer: Colin P. Mccabe <[email protected]>
Committed: Mon Feb 2 11:25:34 2015 -0800

----------------------------------------------------------------------
 .../src/go/src/org/apache/htrace/client/client.go       |  3 ++-
 .../src/go/src/org/apache/htrace/common/log_test.go     |  6 +++---
 .../src/go/src/org/apache/htrace/htraced/client_test.go | 12 ++++++++++++
 .../src/go/src/org/apache/htrace/htraced/rest.go        | 12 ++++++++----
 4 files changed, 25 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/a9eb2316/htrace-core/src/go/src/org/apache/htrace/client/client.go
----------------------------------------------------------------------
diff --git a/htrace-core/src/go/src/org/apache/htrace/client/client.go 
b/htrace-core/src/go/src/org/apache/htrace/client/client.go
index 52fe78e..82400fe 100644
--- a/htrace-core/src/go/src/org/apache/htrace/client/client.go
+++ b/htrace-core/src/go/src/org/apache/htrace/client/client.go
@@ -113,7 +113,8 @@ func (hcl *Client) Query(query *common.Query) 
([]common.Span, error) {
                return nil, errors.New(fmt.Sprintf("Error marshalling query: 
%s", err.Error()))
        }
        var out []byte
-       out, _, err = hcl.makeRestRequest("GET", "query", bytes.NewReader(in))
+       var url = fmt.Sprintf("query?query=%s", in)
+       out, _, err = hcl.makeGetRequest(url)
        if err != nil {
                return nil, err
        }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/a9eb2316/htrace-core/src/go/src/org/apache/htrace/common/log_test.go
----------------------------------------------------------------------
diff --git a/htrace-core/src/go/src/org/apache/htrace/common/log_test.go 
b/htrace-core/src/go/src/org/apache/htrace/common/log_test.go
index 64d6a3f..b415ce2 100644
--- a/htrace-core/src/go/src/org/apache/htrace/common/log_test.go
+++ b/htrace-core/src/go/src/org/apache/htrace/common/log_test.go
@@ -53,7 +53,7 @@ func verifyLines(t *testing.T, rdr io.Reader, lines []string) 
{
                line := scanner.Text()
                if !strings.Contains(line, lines[lineIdx]) {
                        t.Fatalf("Error on line %d: didn't find substring '%s' 
in line '%s'\n",
-                                       (lineIdx + 1), lines[lineIdx], line)
+                               (lineIdx + 1), lines[lineIdx], line)
                }
                lineIdx++
        }
@@ -80,7 +80,7 @@ func TestFileLogs(t *testing.T) {
        if err != nil {
                t.Fatalf("failed to open file %s: %s\n", logPath, err.Error())
        }
-       verifyLines(t, logFile, []string {
+       verifyLines(t, logFile, []string{
                "problem with the foobar",
                "and another problem with the foobar",
        })
@@ -110,7 +110,7 @@ func TestMultipleFileLogs(t *testing.T) {
        }
        fooLg.Tracef("Fizz buzz2\n")
        barLg.Tracef("Fizz buzz3\n")
-       verifyLines(t, logFile, []string {
+       verifyLines(t, logFile, []string{
                "The foo needs maintenance.",
                "The bar is open",
                "Fizz buzz",

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/a9eb2316/htrace-core/src/go/src/org/apache/htrace/htraced/client_test.go
----------------------------------------------------------------------
diff --git a/htrace-core/src/go/src/org/apache/htrace/htraced/client_test.go 
b/htrace-core/src/go/src/org/apache/htrace/htraced/client_test.go
index 15fbe89..044c7ba 100644
--- a/htrace-core/src/go/src/org/apache/htrace/htraced/client_test.go
+++ b/htrace-core/src/go/src/org/apache/htrace/htraced/client_test.go
@@ -124,4 +124,16 @@ func TestClientOperations(t *testing.T) {
                t.Fatalf("FindChildren(%d) returned an invalid number of "+
                        "children: expected %d, got %d\n", childlessSpan.Id, 0, 
len(children))
        }
+
+       // Test Query
+       var query common.Query
+       query = common.Query{Lim: 10}
+       spans, err := hcl.Query(&query)
+       if err != nil {
+               t.Fatalf("Query({lim: %d}) failed: %s\n", 10, err.Error())
+       }
+       if len(spans) != 10 {
+               t.Fatalf("Query({lim: %d}) returned an invalid number of "+
+                       "children: expected %d, got %d\n", 10, 10, len(spans))
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/a9eb2316/htrace-core/src/go/src/org/apache/htrace/htraced/rest.go
----------------------------------------------------------------------
diff --git a/htrace-core/src/go/src/org/apache/htrace/htraced/rest.go 
b/htrace-core/src/go/src/org/apache/htrace/htraced/rest.go
index 3ecb14b..9cdab20 100644
--- a/htrace-core/src/go/src/org/apache/htrace/htraced/rest.go
+++ b/htrace-core/src/go/src/org/apache/htrace/htraced/rest.go
@@ -20,6 +20,7 @@
 package main
 
 import (
+       "bytes"
        "encoding/json"
        "fmt"
        "github.com/gorilla/mux"
@@ -176,17 +177,20 @@ func (hand *writeSpansHandler) ServeHTTP(w 
http.ResponseWriter, req *http.Reques
 }
 
 type queryHandler struct {
+       lg *common.Logger
        dataStoreHandler
 }
 
 func (hand *queryHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
        setResponseHeaders(w.Header())
-       _, ok := hand.getReqField32("lim", w, req)
-       if !ok {
+       queryString := req.FormValue("query")
+       if queryString == "" {
+               writeError(hand.lg, w, http.StatusBadRequest, "No query 
provided.\n")
                return
        }
        var query common.Query
-       dec := json.NewDecoder(req.Body)
+       reader := bytes.NewBufferString(queryString)
+       dec := json.NewDecoder(reader)
        err := dec.Decode(&query)
        if err != nil {
                writeError(hand.lg, w, http.StatusBadRequest,
@@ -262,7 +266,7 @@ func CreateRestServer(cnf *conf.Config, store *dataStore) 
(*RestServer, error) {
                store: store, lg: rsv.lg}}
        r.Handle("/writeSpans", writeSpansH).Methods("POST")
 
-       queryH := &queryHandler{dataStoreHandler: dataStoreHandler{store: 
store}}
+       queryH := &queryHandler{lg: rsv.lg, dataStoreHandler: 
dataStoreHandler{store: store}}
        r.Handle("/query", queryH).Methods("GET")
 
        span := r.PathPrefix("/span").Subrouter()

Reply via email to