rename to cluster search

comment updates
This commit is contained in:
Chelsea Holland Komlo
2017-08-10 14:13:35 +00:00
parent a45bf60c22
commit 787f7bc0c4
12 changed files with 162 additions and 161 deletions

View File

@@ -0,0 +1,31 @@
package agent
import (
"github.com/hashicorp/nomad/nomad/structs"
"net/http"
)
// ClusterSearchRequest accepts a prefix and context and returns a list of matching
// IDs for that context.
func (s *HTTPServer) ClusterSearchRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
if req.Method == "POST" || req.Method == "PUT" {
return s.newClusterSearchRequest(resp, req)
}
return nil, CodedError(405, ErrInvalidMethod)
}
func (s *HTTPServer) newClusterSearchRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
args := structs.ClusterSearchRequest{}
if err := decodeBody(req, &args); err != nil {
return nil, CodedError(400, err.Error())
}
var out structs.ClusterSearchResponse
if err := s.agent.RPC("ClusterSearch.List", &args, &out); err != nil {
return nil, err
}
setMeta(resp, &out.QueryMeta)
return out, nil
}

View File

@@ -10,7 +10,7 @@ import (
a "github.com/stretchr/testify/assert"
)
func TestHTTP_ResourcesWithIllegalMethod(t *testing.T) {
func TestHTTP_ClusterSearchWithIllegalMethod(t *testing.T) {
assert := a.New(t)
t.Parallel()
httpTest(t, nil, func(s *TestAgent) {
@@ -18,7 +18,7 @@ func TestHTTP_ResourcesWithIllegalMethod(t *testing.T) {
assert.Nil(err)
respW := httptest.NewRecorder()
_, err = s.Server.ResourceListRequest(respW, req)
_, err = s.Server.ClusterSearchRequest(respW, req)
assert.NotNil(err, "HTTP DELETE should not be accepted for this endpoint")
})
}
@@ -44,16 +44,16 @@ func TestHTTP_Resources_POST(t *testing.T) {
httpTest(t, nil, func(s *TestAgent) {
createJobForTest(testJob, s, t)
data := structs.ResourceListRequest{Prefix: testJobPrefix, Context: "jobs"}
data := structs.ClusterSearchRequest{Prefix: testJobPrefix, Context: "jobs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
assert.Equal(1, len(res.Matches))
@@ -76,16 +76,16 @@ func TestHTTP_Resources_PUT(t *testing.T) {
httpTest(t, nil, func(s *TestAgent) {
createJobForTest(testJob, s, t)
data := structs.ResourceListRequest{Prefix: testJobPrefix, Context: "jobs"}
data := structs.ClusterSearchRequest{Prefix: testJobPrefix, Context: "jobs"}
req, err := http.NewRequest("PUT", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
assert.Equal(1, len(res.Matches))
@@ -114,16 +114,16 @@ func TestHTTP_Resources_MultipleJobs(t *testing.T) {
createJobForTest(testJobB, s, t)
createJobForTest(testJobC, s, t)
data := structs.ResourceListRequest{Prefix: testJobPrefix, Context: "jobs"}
data := structs.ClusterSearchRequest{Prefix: testJobPrefix, Context: "jobs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
assert.Equal(1, len(res.Matches))
@@ -152,16 +152,16 @@ func TestHTTP_ResoucesList_Evaluation(t *testing.T) {
assert.Nil(err)
prefix := eval1.ID[:len(eval1.ID)-2]
data := structs.ResourceListRequest{Prefix: prefix, Context: "evals"}
data := structs.ClusterSearchRequest{Prefix: prefix, Context: "evals"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
assert.Equal(1, len(res.Matches))
@@ -186,16 +186,16 @@ func TestHTTP_ResoucesList_Allocations(t *testing.T) {
assert.Nil(err)
prefix := alloc.ID[:len(alloc.ID)-2]
data := structs.ResourceListRequest{Prefix: prefix, Context: "allocs"}
data := structs.ClusterSearchRequest{Prefix: prefix, Context: "allocs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
assert.Equal(1, len(res.Matches))
@@ -219,16 +219,16 @@ func TestHTTP_ResoucesList_Nodes(t *testing.T) {
assert.Nil(err)
prefix := node.ID[:len(node.ID)-2]
data := structs.ResourceListRequest{Prefix: prefix, Context: "nodes"}
data := structs.ClusterSearchRequest{Prefix: prefix, Context: "nodes"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
assert.Equal(1, len(res.Matches))
@@ -246,16 +246,16 @@ func TestHTTP_Resources_NoJob(t *testing.T) {
t.Parallel()
httpTest(t, nil, func(s *TestAgent) {
data := structs.ResourceListRequest{Prefix: "12345", Context: "jobs"}
data := structs.ClusterSearchRequest{Prefix: "12345", Context: "jobs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
assert.Equal(1, len(res.Matches))
assert.Equal(0, len(res.Matches["jobs"]))
@@ -279,16 +279,16 @@ func TestHTTP_Resources_NoContext(t *testing.T) {
err := state.UpsertEvals(8000, []*structs.Evaluation{eval1})
assert.Nil(err)
data := structs.ResourceListRequest{Prefix: testJobPrefix}
data := structs.ClusterSearchRequest{Prefix: testJobPrefix}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourceListRequest(respW, req)
resp, err := s.Server.ClusterSearchRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourceListResponse)
res := resp.(structs.ClusterSearchResponse)
matchedJobs := res.Matches["jobs"]
matchedEvals := res.Matches["evals"]

View File

@@ -145,7 +145,7 @@ func (s *HTTPServer) registerHandlers(enableDebug bool) {
s.mux.HandleFunc("/v1/evaluations", s.wrap(s.EvalsRequest))
s.mux.HandleFunc("/v1/evaluation/", s.wrap(s.EvalSpecificRequest))
s.mux.HandleFunc("/v1/resources/", s.wrap(s.ResourceListRequest))
s.mux.HandleFunc("/v1/cluster/search", s.wrap(s.ClusterSearchRequest))
s.mux.HandleFunc("/v1/deployments", s.wrap(s.DeploymentsRequest))
s.mux.HandleFunc("/v1/deployment/", s.wrap(s.DeploymentSpecificRequest))

View File

@@ -1,32 +0,0 @@
package agent
import (
"net/http"
"github.com/hashicorp/nomad/nomad/structs"
)
// ResourceListRequest accepts a prefix and context and returns a list of matching
// IDs for that context.
func (s *HTTPServer) ResourceListRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
if req.Method == "POST" || req.Method == "PUT" {
return s.resourcesRequest(resp, req)
}
return nil, CodedError(405, ErrInvalidMethod)
}
func (s *HTTPServer) resourcesRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
args := structs.ResourceListRequest{}
if err := decodeBody(req, &args); err != nil {
return nil, CodedError(400, err.Error())
}
var out structs.ResourceListResponse
if err := s.agent.RPC("Resources.List", &args, &out); err != nil {
return nil, err
}
setMeta(resp, &out.QueryMeta)
return out, nil
}

View File

@@ -200,7 +200,7 @@ func (c *AllocStatusCommand) AutocompleteFlags() complete.Flags {
func (c *AllocStatusCommand) AutocompleteArgs() complete.Predictor {
client, _ := c.Meta.Client()
return complete.PredictFunc(func(a complete.Args) []string {
resp, err := client.JobResources().List(a.Last, "allocs")
resp, err := client.ClusterSearch().List(a.Last, "allocs")
if err != nil {
return []string{}
}