further refactoring

This commit is contained in:
Chelsea Holland Komlo
2017-08-04 22:18:49 +00:00
parent 74f35dd1af
commit b2df34cf18
6 changed files with 81 additions and 68 deletions

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.ResourcesRequest))
s.mux.HandleFunc("/v1/resources/", s.wrap(s.ResourceListRequest))
s.mux.HandleFunc("/v1/deployments", s.wrap(s.DeploymentsRequest))
s.mux.HandleFunc("/v1/deployment/", s.wrap(s.DeploymentSpecificRequest))

View File

@@ -5,9 +5,9 @@ import (
"net/http"
)
// ResourcesRequest accepts a prefix and context and returns a list of matching
// ResourceListRequest accepts a prefix and context and returns a list of matching
// IDs for that context.
func (s *HTTPServer) ResourcesRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
func (s *HTTPServer) ResourceListRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
if req.Method == "POST" || req.Method == "PUT" {
return s.resourcesRequest(resp, req)
}
@@ -15,13 +15,13 @@ func (s *HTTPServer) ResourcesRequest(resp http.ResponseWriter, req *http.Reques
}
func (s *HTTPServer) resourcesRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
args := structs.ResourcesRequest{}
args := structs.ResourceListRequest{}
if err := decodeBody(req, &args); err != nil {
return nil, CodedError(400, err.Error())
}
var out structs.ResourcesResponse
var out structs.ResourceListResponse
if err := s.agent.RPC("Resources.List", &args, &out); err != nil {
return nil, err
}

View File

@@ -18,7 +18,7 @@ func TestHTTP_ResourcesWithIllegalMethod(t *testing.T) {
assert.Nil(err)
respW := httptest.NewRecorder()
_, err = s.Server.ResourcesRequest(respW, req)
_, err = s.Server.ResourceListRequest(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.ResourcesRequest{Prefix: testJobPrefix, Context: "jobs"}
data := structs.ResourceListRequest{Prefix: testJobPrefix, Context: "jobs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
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.ResourcesRequest{Prefix: testJobPrefix, Context: "jobs"}
data := structs.ResourceListRequest{Prefix: testJobPrefix, Context: "jobs"}
req, err := http.NewRequest("PUT", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
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.ResourcesRequest{Prefix: testJobPrefix, Context: "jobs"}
data := structs.ResourceListRequest{Prefix: testJobPrefix, Context: "jobs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
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.ResourcesRequest{Prefix: prefix, Context: "evals"}
data := structs.ResourceListRequest{Prefix: prefix, Context: "evals"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
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.ResourcesRequest{Prefix: prefix, Context: "allocs"}
data := structs.ResourceListRequest{Prefix: prefix, Context: "allocs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
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.ResourcesRequest{Prefix: prefix, Context: "nodes"}
data := structs.ResourceListRequest{Prefix: prefix, Context: "nodes"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
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.ResourcesRequest{Prefix: "12345", Context: "jobs"}
data := structs.ResourceListRequest{Prefix: "12345", Context: "jobs"}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
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.ResourcesRequest{Prefix: testJobPrefix}
data := structs.ResourceListRequest{Prefix: testJobPrefix}
req, err := http.NewRequest("POST", "/v1/resources", encodeReq(data))
assert.Nil(err)
respW := httptest.NewRecorder()
resp, err := s.Server.ResourcesRequest(respW, req)
resp, err := s.Server.ResourceListRequest(respW, req)
assert.Nil(err)
res := resp.(structs.ResourcesResponse)
res := resp.(structs.ResourceListResponse)
matchedJobs := res.Matches["jobs"]
matchedEvals := res.Matches["evals"]