This is an automated email from the ASF dual-hosted git repository.

tianxiaoliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-kie.git


The following commit(s) were added to refs/heads/master by this push:
     new 2a8362c   fix the issue #99 that the key parameters in path does not 
effect (#100)
2a8362c is described below

commit 2a8362c1739920fba1bb2cc6a54a041952647ce7
Author: zhulijian <[email protected]>
AuthorDate: Fri Feb 28 14:49:01 2020 +0800

     fix the issue #99 that the key parameters in path does not effect (#100)
    
    * update URLPatterns of KVResource about parameters of get kv api
    
    Signed-off-by: zhulijian <[email protected]>
    
    * fix the issue that the key parameters in path does not effect
    
    Signed-off-by: zhulijian <[email protected]>
    
    * ut
    
    Signed-off-by: zhulijian <[email protected]>
---
 scripts/travis/start_deps.sh           |  3 ++-
 scripts/travis/unit_test.sh            |  1 +
 server/resource/v1/kv_resource.go      | 18 +++++++++---------
 server/resource/v1/kv_resource_test.go | 33 +++++++++++++++++++++++++++++----
 4 files changed, 41 insertions(+), 14 deletions(-)

diff --git a/scripts/travis/start_deps.sh b/scripts/travis/start_deps.sh
index e1d7d3f..2d6b251 100755
--- a/scripts/travis/start_deps.sh
+++ b/scripts/travis/start_deps.sh
@@ -17,4 +17,5 @@
 
 cd build
 bash build_docker.sh
-sudo docker-compose -f 
$GOPATH/src/github.com/apache/servicecomb-kie/deployments/docker/docker-compose.yaml
 up -d
\ No newline at end of file
+sudo docker-compose -f 
$GOPATH/src/github.com/apache/servicecomb-kie/deployments/docker/docker-compose.yaml
 down
+sudo docker-compose -f 
$GOPATH/src/github.com/apache/servicecomb-kie/deployments/docker/docker-compose.yaml
 up -d
diff --git a/scripts/travis/unit_test.sh b/scripts/travis/unit_test.sh
index 7568afd..bad6b02 100755
--- a/scripts/travis/unit_test.sh
+++ b/scripts/travis/unit_test.sh
@@ -18,6 +18,7 @@ set -e
 # Make the Coverage File
 echo "mode: atomic" > coverage.txt
 
+go clean -testcache
 #Start the Test
 for d in $(go list ./... | grep -v vendor |  grep -v third_party | grep -v 
examples); do
     echo $d
diff --git a/server/resource/v1/kv_resource.go 
b/server/resource/v1/kv_resource.go
index 5db4912..765ca7e 100644
--- a/server/resource/v1/kv_resource.go
+++ b/server/resource/v1/kv_resource.go
@@ -118,7 +118,7 @@ func (r *KVResource) GetByKey(rctx *restful.Context) {
                WriteErrResponse(rctx, http.StatusBadRequest, err.Error(), 
common.ContentTypeText)
                return
        }
-       returnData(rctx, domain, project, labels, pageNum, pageSize, status, 
insID)
+       returnData(rctx, domain, project, key, labels, pageNum, pageSize, 
status, insID)
 }
 
 //List response kv list
@@ -149,10 +149,10 @@ func (r *KVResource) List(rctx *restful.Context) {
                WriteErrResponse(rctx, http.StatusBadRequest, err.Error(), 
common.ContentTypeText)
                return
        }
-       returnData(rctx, domain, project, labels, pageNum, pageSize, status, 
sessionID)
+       returnData(rctx, domain, project, "", labels, pageNum, pageSize, 
status, sessionID)
 }
 
-func returnData(rctx *restful.Context, domain interface{}, project string, 
labels map[string]string, pageNum, pageSize int64, status, sessionID string) {
+func returnData(rctx *restful.Context, domain interface{}, project, key 
string, labels map[string]string, pageNum, pageSize int64, status, sessionID 
string) {
        revStr := rctx.ReadQueryParameter(common.QueryParamRev)
        wait := rctx.ReadQueryParameter(common.QueryParamWait)
        if sessionID != "" {
@@ -160,7 +160,7 @@ func returnData(rctx *restful.Context, domain interface{}, 
project string, label
        }
        if revStr == "" {
                if wait == "" {
-                       queryAndResponse(rctx, domain, project, "", labels, 
pageNum, pageSize, status)
+                       queryAndResponse(rctx, domain, project, key, labels, 
pageNum, pageSize, status)
                        return
                }
                changed, err := eventHappened(rctx, wait, &pubsub.Topic{
@@ -174,7 +174,7 @@ func returnData(rctx *restful.Context, domain interface{}, 
project string, label
                        return
                }
                if changed {
-                       queryAndResponse(rctx, domain, project, "", labels, 
pageNum, pageSize, status)
+                       queryAndResponse(rctx, domain, project, key, labels, 
pageNum, pageSize, status)
                        return
                }
                rctx.WriteHeader(http.StatusNotModified)
@@ -189,7 +189,7 @@ func returnData(rctx *restful.Context, domain interface{}, 
project string, label
                        return
                }
                if revised {
-                       queryAndResponse(rctx, domain, project, "", labels, 
pageNum, pageSize, status)
+                       queryAndResponse(rctx, domain, project, key, labels, 
pageNum, pageSize, status)
                        return
                } else if wait != "" {
                        changed, err := eventHappened(rctx, wait, &pubsub.Topic{
@@ -203,7 +203,7 @@ func returnData(rctx *restful.Context, domain interface{}, 
project string, label
                                return
                        }
                        if changed {
-                               queryAndResponse(rctx, domain, project, "", 
labels, pageNum, pageSize, status)
+                               queryAndResponse(rctx, domain, project, key, 
labels, pageNum, pageSize, status)
                                return
                        }
                        rctx.WriteHeader(http.StatusNotModified)
@@ -363,7 +363,7 @@ func (r *KVResource) URLPatterns() []restful.Route {
                        ResourceFunc: r.GetByKey,
                        FuncDesc:     "get key values by key and labels",
                        Parameters: []*restful.Parameters{
-                               DocPathProject, DocPathKey, 
DocQueryLabelParameters, DocQueryMatch, DocQueryRev,
+                               DocPathProject, DocPathKey, 
DocQueryLabelParameters, DocQueryWait, DocQueryMatch, DocQueryRev,
                        },
                        Returns: []*restful.Returns{
                                {
@@ -399,7 +399,7 @@ func (r *KVResource) URLPatterns() []restful.Route {
                        ResourceFunc: r.List,
                        FuncDesc:     "list key values by labels and key",
                        Parameters: []*restful.Parameters{
-                               DocPathProject, DocQueryLabelParameters, 
DocQueryWait, DocQueryMatch,
+                               DocPathProject, DocQueryLabelParameters, 
DocQueryWait, DocQueryMatch, DocQueryRev,
                        },
                        Returns: []*restful.Returns{
                                {
diff --git a/server/resource/v1/kv_resource_test.go 
b/server/resource/v1/kv_resource_test.go
index 93dea44..84315ce 100644
--- a/server/resource/v1/kv_resource_test.go
+++ b/server/resource/v1/kv_resource_test.go
@@ -91,6 +91,31 @@ func TestKVResource_Put(t *testing.T) {
                assert.Equal(t, kv.Value, data.Value)
                assert.Equal(t, kv.Labels, data.Labels)
        })
+       t.Run("put a different key, which label is same to timeout", func(t 
*testing.T) {
+               kv := &model.KVDoc{
+                       Value:  "1s",
+                       Labels: map[string]string{"service": "utService"},
+               }
+               j, _ := json.Marshal(kv)
+               r, _ := http.NewRequest("PUT", "/v1/test/kie/kv/interval", 
bytes.NewBuffer(j))
+               noopH := &handler2.NoopAuthHandler{}
+               chain, _ := handler.CreateChain(common.Provider, "testchain1", 
noopH.Name())
+               r.Header.Set("Content-Type", "application/json")
+               r.Header.Set("sessionID", "test")
+               kvr := &v1.KVResource{}
+               c, _ := restfultest.New(kvr, chain)
+               resp := httptest.NewRecorder()
+               c.ServeHTTP(resp, r)
+
+               body, err := ioutil.ReadAll(resp.Body)
+               assert.NoError(t, err)
+               data := &model.KVDoc{}
+               err = json.Unmarshal(body, data)
+               assert.NoError(t, err)
+               assert.NotEmpty(t, data.ID)
+               assert.Equal(t, kv.Value, data.Value)
+               assert.Equal(t, kv.Labels, data.Labels)
+       })
        t.Run("put kv,label is service and version", func(t *testing.T) {
                kv := &model.KVDoc{
                        Value: "1s",
@@ -117,7 +142,7 @@ func TestKVResource_Put(t *testing.T) {
        })
 }
 func TestKVResource_List(t *testing.T) {
-       t.Run("list kv by service label, should return 2 kvs", func(t 
*testing.T) {
+       t.Run("list kv by service label, should return 3 kvs", func(t 
*testing.T) {
                r, _ := http.NewRequest("GET", 
"/v1/test/kie/kv?label=service:utService", nil)
                noopH := &handler2.NoopAuthHandler{}
                chain, _ := handler.CreateChain(common.Provider, "testchain1", 
noopH.Name())
@@ -132,10 +157,10 @@ func TestKVResource_List(t *testing.T) {
                result := &model.KVResponse{}
                err = json.Unmarshal(body, result)
                assert.NoError(t, err)
-               assert.Equal(t, 2, len(result.Data))
+               assert.Equal(t, 3, len(result.Data))
        })
        var rev string
-       t.Run("list kv by service label, exact match,should return 1 kv", 
func(t *testing.T) {
+       t.Run("list kv by service label, exact match,should return 2 kv", 
func(t *testing.T) {
                r, _ := http.NewRequest("GET", 
"/v1/test/kie/kv?label=service:utService&match=exact", nil)
                noopH := &handler2.NoopAuthHandler{}
                chain, _ := handler.CreateChain(common.Provider, "testchain1", 
noopH.Name())
@@ -150,7 +175,7 @@ func TestKVResource_List(t *testing.T) {
                result := &model.KVResponse{}
                err = json.Unmarshal(body, result)
                assert.NoError(t, err)
-               assert.Equal(t, 1, len(result.Data))
+               assert.Equal(t, 2, len(result.Data))
                rev = resp.Header().Get(common2.HeaderRevision)
        })
        t.Run("list kv by service label, with current rev param,should return 
304 ", func(t *testing.T) {

Reply via email to