Rename client endpoint to node endpoint

This commit is contained in:
Armon Dadgar
2015-09-06 20:31:32 -07:00
parent e2674c2c40
commit 6ee7f111dc
11 changed files with 106 additions and 106 deletions

View File

@@ -424,7 +424,7 @@ func (c *Client) registerNode() error {
WriteRequest: structs.WriteRequest{Region: c.config.Region},
}
var resp structs.NodeUpdateResponse
err := c.RPC("Client.Register", &req, &resp)
err := c.RPC("Node.Register", &req, &resp)
if err != nil {
if time.Since(c.start) > registerErrGrace {
c.logger.Printf("[ERR] client: failed to register node: %v", err)
@@ -449,7 +449,7 @@ func (c *Client) updateNodeStatus() error {
WriteRequest: structs.WriteRequest{Region: c.config.Region},
}
var resp structs.NodeUpdateResponse
err := c.RPC("Client.UpdateStatus", &req, &resp)
err := c.RPC("Node.UpdateStatus", &req, &resp)
if err != nil {
c.logger.Printf("[ERR] client: failed to update status: %v", err)
return err
@@ -472,7 +472,7 @@ func (c *Client) updateAllocStatus(alloc *structs.Allocation) error {
WriteRequest: structs.WriteRequest{Region: c.config.Region},
}
var resp structs.GenericResponse
err := c.RPC("Client.UpdateAlloc", &args, &resp)
err := c.RPC("Node.UpdateAlloc", &args, &resp)
if err != nil {
c.logger.Printf("[ERR] client: failed to update allocation: %v", err)
return err
@@ -493,7 +493,7 @@ func (c *Client) watchAllocations(allocUpdates chan []*structs.Allocation) {
for {
// Get the allocations, blocking for updates
err := c.RPC("Client.GetAllocs", &req, &resp)
err := c.RPC("Node.GetAllocs", &req, &resp)
if err != nil {
c.logger.Printf("[ERR] client: failed to query for node allocations: %v", err)
retry := c.retryIntv(getAllocRetryIntv)

View File

@@ -159,7 +159,7 @@ func TestClient_Register(t *testing.T) {
// Register should succeed
testutil.WaitForResult(func() (bool, error) {
err := s1.RPC("Client.GetNode", &req, &out)
err := s1.RPC("Node.GetNode", &req, &out)
if err != nil {
return false, err
}
@@ -192,7 +192,7 @@ func TestClient_Heartbeat(t *testing.T) {
// Register should succeed
testutil.WaitForResult(func() (bool, error) {
err := s1.RPC("Client.GetNode", &req, &out)
err := s1.RPC("Node.GetNode", &req, &out)
if err != nil {
return false, err
}

View File

@@ -19,7 +19,7 @@ func (s *HTTPServer) NodesRequest(resp http.ResponseWriter, req *http.Request) (
}
var out structs.NodeListResponse
if err := s.agent.RPC("Client.List", &args, &out); err != nil {
if err := s.agent.RPC("Node.List", &args, &out); err != nil {
return nil, err
}
@@ -55,7 +55,7 @@ func (s *HTTPServer) nodeForceEvaluate(resp http.ResponseWriter, req *http.Reque
s.parseRegion(req, &args.Region)
var out structs.NodeUpdateResponse
if err := s.agent.RPC("Client.Evaluate", &args, &out); err != nil {
if err := s.agent.RPC("Node.Evaluate", &args, &out); err != nil {
return nil, err
}
setIndex(resp, out.Index)
@@ -75,7 +75,7 @@ func (s *HTTPServer) nodeAllocations(resp http.ResponseWriter, req *http.Request
}
var out structs.NodeAllocsResponse
if err := s.agent.RPC("Client.GetAllocs", &args, &out); err != nil {
if err := s.agent.RPC("Node.GetAllocs", &args, &out); err != nil {
return nil, err
}
@@ -106,7 +106,7 @@ func (s *HTTPServer) nodeToggleDrain(resp http.ResponseWriter, req *http.Request
s.parseRegion(req, &args.Region)
var out structs.NodeDrainUpdateResponse
if err := s.agent.RPC("Client.UpdateDrain", &args, &out); err != nil {
if err := s.agent.RPC("Node.UpdateDrain", &args, &out); err != nil {
return nil, err
}
setIndex(resp, out.Index)
@@ -126,7 +126,7 @@ func (s *HTTPServer) nodeQuery(resp http.ResponseWriter, req *http.Request,
}
var out structs.SingleNodeResponse
if err := s.agent.RPC("Client.GetNode", &args, &out); err != nil {
if err := s.agent.RPC("Node.GetNode", &args, &out); err != nil {
return nil, err
}

View File

@@ -19,7 +19,7 @@ func TestHTTP_NodesList(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp structs.NodeUpdateResponse
if err := s.Agent.RPC("Client.Register", &args, &resp); err != nil {
if err := s.Agent.RPC("Node.Register", &args, &resp); err != nil {
t.Fatalf("err: %v", err)
}
}
@@ -65,7 +65,7 @@ func TestHTTP_NodeForceEval(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp structs.NodeUpdateResponse
if err := s.Agent.RPC("Client.Register", &args, &resp); err != nil {
if err := s.Agent.RPC("Node.Register", &args, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -113,7 +113,7 @@ func TestHTTP_NodeAllocations(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp structs.NodeUpdateResponse
if err := s.Agent.RPC("Client.Register", &args, &resp); err != nil {
if err := s.Agent.RPC("Node.Register", &args, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -167,7 +167,7 @@ func TestHTTP_NodeDrain(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp structs.NodeUpdateResponse
if err := s.Agent.RPC("Client.Register", &args, &resp); err != nil {
if err := s.Agent.RPC("Node.Register", &args, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -215,7 +215,7 @@ func TestHTTP_NodeQuery(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp structs.NodeUpdateResponse
if err := s.Agent.RPC("Client.Register", &args, &resp); err != nil {
if err := s.Agent.RPC("Node.Register", &args, &resp); err != nil {
t.Fatalf("err: %v", err)
}

View File

@@ -98,7 +98,7 @@ func (s *Server) invalidateHeartbeat(id string) {
},
}
var resp structs.NodeUpdateResponse
if err := s.endpoints.Client.UpdateStatus(&req, &resp); err != nil {
if err := s.endpoints.Node.UpdateStatus(&req, &resp); err != nil {
s.logger.Printf("[ERR] nomad.heartbeat: update status failed: %v", err)
}
}

View File

@@ -230,7 +230,7 @@ func TestServer_HeartbeatTTL_Failover(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", req, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", req, &resp); err != nil {
t.Fatalf("err: %v", err)
}

View File

@@ -8,14 +8,14 @@ import (
"github.com/hashicorp/nomad/nomad/structs"
)
// ClientEndpoint endpoint is used for client interactions
type ClientEndpoint struct {
// Node endpoint is used for client interactions
type Node struct {
srv *Server
}
// Register is used to upsert a client that is available for scheduling
func (c *ClientEndpoint) Register(args *structs.NodeRegisterRequest, reply *structs.NodeUpdateResponse) error {
if done, err := c.srv.forward("Client.Register", args, args, reply); done {
func (n *Node) Register(args *structs.NodeRegisterRequest, reply *structs.NodeUpdateResponse) error {
if done, err := n.srv.forward("Node.Register", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "register"}, time.Now())
@@ -43,18 +43,18 @@ func (c *ClientEndpoint) Register(args *structs.NodeRegisterRequest, reply *stru
}
// Commit this update via Raft
_, index, err := c.srv.raftApply(structs.NodeRegisterRequestType, args)
_, index, err := n.srv.raftApply(structs.NodeRegisterRequestType, args)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: Register failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: Register failed: %v", err)
return err
}
reply.NodeModifyIndex = index
// Check if we should trigger evaluations
if structs.ShouldDrainNode(args.Node.Status) {
evalIDs, evalIndex, err := c.createNodeEvals(args.Node.ID, index)
evalIDs, evalIndex, err := n.createNodeEvals(args.Node.ID, index)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
return err
}
reply.EvalIDs = evalIDs
@@ -63,9 +63,9 @@ func (c *ClientEndpoint) Register(args *structs.NodeRegisterRequest, reply *stru
// Check if we need to setup a heartbeat
if !args.Node.TerminalStatus() {
ttl, err := c.srv.resetHeartbeatTimer(args.Node.ID)
ttl, err := n.srv.resetHeartbeatTimer(args.Node.ID)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: heartbeat reset failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: heartbeat reset failed: %v", err)
return err
}
reply.HeartbeatTTL = ttl
@@ -78,8 +78,8 @@ func (c *ClientEndpoint) Register(args *structs.NodeRegisterRequest, reply *stru
// Deregister is used to remove a client from the client. If a client should
// just be made unavailable for scheduling, a status update is prefered.
func (c *ClientEndpoint) Deregister(args *structs.NodeDeregisterRequest, reply *structs.NodeUpdateResponse) error {
if done, err := c.srv.forward("Client.Deregister", args, args, reply); done {
func (n *Node) Deregister(args *structs.NodeDeregisterRequest, reply *structs.NodeUpdateResponse) error {
if done, err := n.srv.forward("Node.Deregister", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "deregister"}, time.Now())
@@ -90,19 +90,19 @@ func (c *ClientEndpoint) Deregister(args *structs.NodeDeregisterRequest, reply *
}
// Commit this update via Raft
_, index, err := c.srv.raftApply(structs.NodeDeregisterRequestType, args)
_, index, err := n.srv.raftApply(structs.NodeDeregisterRequestType, args)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: Deregister failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: Deregister failed: %v", err)
return err
}
// Clear the heartbeat timer if any
c.srv.clearHeartbeatTimer(args.NodeID)
n.srv.clearHeartbeatTimer(args.NodeID)
// Create the evaluations for this node
evalIDs, evalIndex, err := c.createNodeEvals(args.NodeID, index)
evalIDs, evalIndex, err := n.createNodeEvals(args.NodeID, index)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
return err
}
@@ -115,8 +115,8 @@ func (c *ClientEndpoint) Deregister(args *structs.NodeDeregisterRequest, reply *
}
// UpdateStatus is used to update the status of a client node
func (c *ClientEndpoint) UpdateStatus(args *structs.NodeUpdateStatusRequest, reply *structs.NodeUpdateResponse) error {
if done, err := c.srv.forward("Client.UpdateStatus", args, args, reply); done {
func (n *Node) UpdateStatus(args *structs.NodeUpdateStatusRequest, reply *structs.NodeUpdateResponse) error {
if done, err := n.srv.forward("Node.UpdateStatus", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "update_status"}, time.Now())
@@ -130,7 +130,7 @@ func (c *ClientEndpoint) UpdateStatus(args *structs.NodeUpdateStatusRequest, rep
}
// Look for the node
snap, err := c.srv.fsm.State().Snapshot()
snap, err := n.srv.fsm.State().Snapshot()
if err != nil {
return err
}
@@ -145,9 +145,9 @@ func (c *ClientEndpoint) UpdateStatus(args *structs.NodeUpdateStatusRequest, rep
// Commit this update via Raft
var index uint64
if node.Status != args.Status {
_, index, err = c.srv.raftApply(structs.NodeUpdateStatusRequestType, args)
_, index, err = n.srv.raftApply(structs.NodeUpdateStatusRequestType, args)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: status update failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: status update failed: %v", err)
return err
}
reply.NodeModifyIndex = index
@@ -155,9 +155,9 @@ func (c *ClientEndpoint) UpdateStatus(args *structs.NodeUpdateStatusRequest, rep
// Check if we should trigger evaluations
if structs.ShouldDrainNode(args.Status) {
evalIDs, evalIndex, err := c.createNodeEvals(args.NodeID, index)
evalIDs, evalIndex, err := n.createNodeEvals(args.NodeID, index)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
return err
}
reply.EvalIDs = evalIDs
@@ -166,9 +166,9 @@ func (c *ClientEndpoint) UpdateStatus(args *structs.NodeUpdateStatusRequest, rep
// Check if we need to setup a heartbeat
if args.Status != structs.NodeStatusDown {
ttl, err := c.srv.resetHeartbeatTimer(args.NodeID)
ttl, err := n.srv.resetHeartbeatTimer(args.NodeID)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: heartbeat reset failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: heartbeat reset failed: %v", err)
return err
}
reply.HeartbeatTTL = ttl
@@ -180,9 +180,9 @@ func (c *ClientEndpoint) UpdateStatus(args *structs.NodeUpdateStatusRequest, rep
}
// UpdateDrain is used to update the drain mode of a client node
func (c *ClientEndpoint) UpdateDrain(args *structs.NodeUpdateDrainRequest,
func (n *Node) UpdateDrain(args *structs.NodeUpdateDrainRequest,
reply *structs.NodeDrainUpdateResponse) error {
if done, err := c.srv.forward("Client.UpdateDrain", args, args, reply); done {
if done, err := n.srv.forward("Node.UpdateDrain", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "update_drain"}, time.Now())
@@ -193,7 +193,7 @@ func (c *ClientEndpoint) UpdateDrain(args *structs.NodeUpdateDrainRequest,
}
// Look for the node
snap, err := c.srv.fsm.State().Snapshot()
snap, err := n.srv.fsm.State().Snapshot()
if err != nil {
return err
}
@@ -208,9 +208,9 @@ func (c *ClientEndpoint) UpdateDrain(args *structs.NodeUpdateDrainRequest,
// Commit this update via Raft
var index uint64
if node.Drain != args.Drain {
_, index, err = c.srv.raftApply(structs.NodeUpdateDrainRequestType, args)
_, index, err = n.srv.raftApply(structs.NodeUpdateDrainRequestType, args)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: drain update failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: drain update failed: %v", err)
return err
}
reply.NodeModifyIndex = index
@@ -218,9 +218,9 @@ func (c *ClientEndpoint) UpdateDrain(args *structs.NodeUpdateDrainRequest,
// Check if we should trigger evaluations
if args.Drain {
evalIDs, evalIndex, err := c.createNodeEvals(args.NodeID, index)
evalIDs, evalIndex, err := n.createNodeEvals(args.NodeID, index)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
return err
}
reply.EvalIDs = evalIDs
@@ -233,8 +233,8 @@ func (c *ClientEndpoint) UpdateDrain(args *structs.NodeUpdateDrainRequest,
}
// Evaluate is used to force a re-evaluation of the node
func (c *ClientEndpoint) Evaluate(args *structs.NodeEvaluateRequest, reply *structs.NodeUpdateResponse) error {
if done, err := c.srv.forward("Client.Evaluate", args, args, reply); done {
func (n *Node) Evaluate(args *structs.NodeEvaluateRequest, reply *structs.NodeUpdateResponse) error {
if done, err := n.srv.forward("Node.Evaluate", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "evaluate"}, time.Now())
@@ -245,7 +245,7 @@ func (c *ClientEndpoint) Evaluate(args *structs.NodeEvaluateRequest, reply *stru
}
// Look for the node
snap, err := c.srv.fsm.State().Snapshot()
snap, err := n.srv.fsm.State().Snapshot()
if err != nil {
return err
}
@@ -258,9 +258,9 @@ func (c *ClientEndpoint) Evaluate(args *structs.NodeEvaluateRequest, reply *stru
}
// Create the evaluation
evalIDs, evalIndex, err := c.createNodeEvals(args.NodeID, node.ModifyIndex)
evalIDs, evalIndex, err := n.createNodeEvals(args.NodeID, node.ModifyIndex)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: eval creation failed: %v", err)
return err
}
reply.EvalIDs = evalIDs
@@ -272,9 +272,9 @@ func (c *ClientEndpoint) Evaluate(args *structs.NodeEvaluateRequest, reply *stru
}
// GetNode is used to request information about a specific ndoe
func (c *ClientEndpoint) GetNode(args *structs.NodeSpecificRequest,
func (n *Node) GetNode(args *structs.NodeSpecificRequest,
reply *structs.SingleNodeResponse) error {
if done, err := c.srv.forward("Client.GetNode", args, args, reply); done {
if done, err := n.srv.forward("Node.GetNode", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "get_node"}, time.Now())
@@ -285,7 +285,7 @@ func (c *ClientEndpoint) GetNode(args *structs.NodeSpecificRequest,
}
// Look for the node
snap, err := c.srv.fsm.State().Snapshot()
snap, err := n.srv.fsm.State().Snapshot()
if err != nil {
return err
}
@@ -308,14 +308,14 @@ func (c *ClientEndpoint) GetNode(args *structs.NodeSpecificRequest,
}
// Set the query response
c.srv.setQueryMeta(&reply.QueryMeta)
n.srv.setQueryMeta(&reply.QueryMeta)
return nil
}
// GetAllocs is used to request allocations for a specific ndoe
func (c *ClientEndpoint) GetAllocs(args *structs.NodeSpecificRequest,
func (n *Node) GetAllocs(args *structs.NodeSpecificRequest,
reply *structs.NodeAllocsResponse) error {
if done, err := c.srv.forward("Client.GetAllocs", args, args, reply); done {
if done, err := n.srv.forward("Node.GetAllocs", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "get_allocs"}, time.Now())
@@ -332,7 +332,7 @@ func (c *ClientEndpoint) GetAllocs(args *structs.NodeSpecificRequest,
allocWatch: args.NodeID,
run: func() error {
// Look for the node
snap, err := c.srv.fsm.State().Snapshot()
snap, err := n.srv.fsm.State().Snapshot()
if err != nil {
return err
}
@@ -366,12 +366,12 @@ func (c *ClientEndpoint) GetAllocs(args *structs.NodeSpecificRequest,
}
return nil
}}
return c.srv.blockingRPC(&opts)
return n.srv.blockingRPC(&opts)
}
// UpdateAlloc is used to update the client status of an allocation
func (c *ClientEndpoint) UpdateAlloc(args *structs.AllocUpdateRequest, reply *structs.GenericResponse) error {
if done, err := c.srv.forward("Client.UpdateAlloc", args, args, reply); done {
func (n *Node) UpdateAlloc(args *structs.AllocUpdateRequest, reply *structs.GenericResponse) error {
if done, err := n.srv.forward("Node.UpdateAlloc", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "update_alloc"}, time.Now())
@@ -382,9 +382,9 @@ func (c *ClientEndpoint) UpdateAlloc(args *structs.AllocUpdateRequest, reply *st
}
// Commit this update via Raft
_, index, err := c.srv.raftApply(structs.AllocClientUpdateRequestType, args)
_, index, err := n.srv.raftApply(structs.AllocClientUpdateRequestType, args)
if err != nil {
c.srv.logger.Printf("[ERR] nomad.client: alloc update failed: %v", err)
n.srv.logger.Printf("[ERR] nomad.client: alloc update failed: %v", err)
return err
}
@@ -394,15 +394,15 @@ func (c *ClientEndpoint) UpdateAlloc(args *structs.AllocUpdateRequest, reply *st
}
// List is used to list the available nodes
func (c *ClientEndpoint) List(args *structs.NodeListRequest,
func (n *Node) List(args *structs.NodeListRequest,
reply *structs.NodeListResponse) error {
if done, err := c.srv.forward("Client.List", args, args, reply); done {
if done, err := n.srv.forward("Node.List", args, args, reply); done {
return err
}
defer metrics.MeasureSince([]string{"nomad", "client", "list"}, time.Now())
// Capture all the nodes
snap, err := c.srv.fsm.State().Snapshot()
snap, err := n.srv.fsm.State().Snapshot()
if err != nil {
return err
}
@@ -428,15 +428,15 @@ func (c *ClientEndpoint) List(args *structs.NodeListRequest,
reply.Index = index
// Set the query response
c.srv.setQueryMeta(&reply.QueryMeta)
n.srv.setQueryMeta(&reply.QueryMeta)
return nil
}
// createNodeEvals is used to create evaluations for each alloc on a node.
// Each Eval is scoped to a job, so we need to potentially trigger many evals.
func (c *ClientEndpoint) createNodeEvals(nodeID string, nodeIndex uint64) ([]string, uint64, error) {
func (n *Node) createNodeEvals(nodeID string, nodeIndex uint64) ([]string, uint64, error) {
// Snapshot the state
snap, err := c.srv.fsm.State().Snapshot()
snap, err := n.srv.fsm.State().Snapshot()
if err != nil {
return nil, 0, fmt.Errorf("failed to snapshot state: %v", err)
}
@@ -482,13 +482,13 @@ func (c *ClientEndpoint) createNodeEvals(nodeID string, nodeIndex uint64) ([]str
// Create the Raft transaction
update := &structs.EvalUpdateRequest{
Evals: evals,
WriteRequest: structs.WriteRequest{Region: c.srv.config.Region},
WriteRequest: structs.WriteRequest{Region: n.srv.config.Region},
}
// Commit this evaluation via Raft
// XXX: There is a risk of partial failure where the node update succeeds
// but that the EvalUpdate does not.
_, evalIndex, err := c.srv.raftApply(structs.EvalUpdateRequestType, update)
_, evalIndex, err := n.srv.raftApply(structs.EvalUpdateRequestType, update)
if err != nil {
return nil, 0, err
}

View File

@@ -26,7 +26,7 @@ func TestClientEndpoint_Register(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", req, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", req, &resp); err != nil {
t.Fatalf("err: %v", err)
}
if resp.Index == 0 {
@@ -62,7 +62,7 @@ func TestClientEndpoint_Deregister(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -72,7 +72,7 @@ func TestClientEndpoint_Deregister(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp2 structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Deregister", dereg, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Deregister", dereg, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index == 0 {
@@ -105,7 +105,7 @@ func TestClientEndpoint_UpdateStatus(t *testing.T) {
// Fetch the response
var resp structs.NodeUpdateResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -122,7 +122,7 @@ func TestClientEndpoint_UpdateStatus(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp2 structs.NodeUpdateResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.UpdateStatus", dereg, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.UpdateStatus", dereg, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index == 0 {
@@ -164,7 +164,7 @@ func TestClientEndpoint_UpdateStatus_HeartbeatOnly(t *testing.T) {
// Fetch the response
var resp structs.NodeUpdateResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -181,7 +181,7 @@ func TestClientEndpoint_UpdateStatus_HeartbeatOnly(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp2 structs.NodeUpdateResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.UpdateStatus", dereg, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.UpdateStatus", dereg, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index != 0 {
@@ -210,7 +210,7 @@ func TestClientEndpoint_UpdateDrain(t *testing.T) {
// Fetch the response
var resp structs.NodeUpdateResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -221,7 +221,7 @@ func TestClientEndpoint_UpdateDrain(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp2 structs.NodeDrainUpdateResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.UpdateDrain", dereg, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.UpdateDrain", dereg, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index == 0 {
@@ -254,7 +254,7 @@ func TestClientEndpoint_GetNode(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
node.CreateIndex = resp.Index
@@ -266,7 +266,7 @@ func TestClientEndpoint_GetNode(t *testing.T) {
QueryOptions: structs.QueryOptions{Region: "region1"},
}
var resp2 structs.SingleNodeResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.GetNode", get, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.GetNode", get, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index != resp.Index {
@@ -279,7 +279,7 @@ func TestClientEndpoint_GetNode(t *testing.T) {
// Lookup non-existing node
get.NodeID = "foobarbaz"
if err := msgpackrpc.CallWithCodec(codec, "Client.GetNode", get, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.GetNode", get, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index != resp.Index {
@@ -305,7 +305,7 @@ func TestClientEndpoint_GetAllocs(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
node.CreateIndex = resp.Index
@@ -326,7 +326,7 @@ func TestClientEndpoint_GetAllocs(t *testing.T) {
QueryOptions: structs.QueryOptions{Region: "region1"},
}
var resp2 structs.NodeAllocsResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.GetAllocs", get, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.GetAllocs", get, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index != 100 {
@@ -339,7 +339,7 @@ func TestClientEndpoint_GetAllocs(t *testing.T) {
// Lookup non-existing node
get.NodeID = "foobarbaz"
if err := msgpackrpc.CallWithCodec(codec, "Client.GetAllocs", get, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.GetAllocs", get, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index != 100 {
@@ -365,7 +365,7 @@ func TestClientEndpoint_GetAllocs_Blocking(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
node.CreateIndex = resp.Index
@@ -394,7 +394,7 @@ func TestClientEndpoint_GetAllocs_Blocking(t *testing.T) {
},
}
var resp2 structs.NodeAllocsResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.GetAllocs", get, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.GetAllocs", get, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
@@ -427,7 +427,7 @@ func TestClientEndpoint_UpdateAlloc(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
@@ -451,7 +451,7 @@ func TestClientEndpoint_UpdateAlloc(t *testing.T) {
WriteRequest: structs.WriteRequest{Region: "region1"},
}
var resp2 structs.NodeAllocsResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.UpdateAlloc", update, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.UpdateAlloc", update, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index == 0 {
@@ -482,7 +482,7 @@ func TestClientEndpoint_CreateNodeEvals(t *testing.T) {
}
// Create some evaluations
ids, index, err := s1.endpoints.Client.createNodeEvals(alloc.NodeID, 1)
ids, index, err := s1.endpoints.Node.createNodeEvals(alloc.NodeID, 1)
if err != nil {
t.Fatalf("err: %v", err)
}
@@ -556,7 +556,7 @@ func TestClientEndpoint_Evaluate(t *testing.T) {
// Fetch the response
var resp structs.NodeUpdateResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Evaluate", req, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Evaluate", req, &resp); err != nil {
t.Fatalf("err: %v", err)
}
if resp.Index == 0 {
@@ -619,7 +619,7 @@ func TestClientEndpoint_ListNodes(t *testing.T) {
// Fetch the response
var resp structs.GenericResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.Register", reg, &resp); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.Register", reg, &resp); err != nil {
t.Fatalf("err: %v", err)
}
node.CreateIndex = resp.Index
@@ -630,7 +630,7 @@ func TestClientEndpoint_ListNodes(t *testing.T) {
QueryOptions: structs.QueryOptions{Region: "region1"},
}
var resp2 structs.NodeListResponse
if err := msgpackrpc.CallWithCodec(codec, "Client.List", get, &resp2); err != nil {
if err := msgpackrpc.CallWithCodec(codec, "Node.List", get, &resp2); err != nil {
t.Fatalf("err: %v", err)
}
if resp2.Index != resp.Index {

View File

@@ -18,7 +18,7 @@ func testRegisterNode(t *testing.T, s *Server, n *structs.Node) {
// Fetch the response
var resp structs.NodeUpdateResponse
if err := s.RPC("Client.Register", req, &resp); err != nil {
if err := s.RPC("Node.Register", req, &resp); err != nil {
t.Fatalf("err: %v", err)
}
if resp.Index == 0 {

View File

@@ -128,7 +128,7 @@ type Server struct {
// Holds the RPC endpoints
type endpoints struct {
Status *Status
Client *ClientEndpoint
Node *Node
Job *Job
Eval *Eval
Plan *Plan
@@ -338,7 +338,7 @@ func (s *Server) Leave() error {
func (s *Server) setupRPC(tlsWrap tlsutil.DCWrapper) error {
// Create endpoints
s.endpoints.Status = &Status{s}
s.endpoints.Client = &ClientEndpoint{s}
s.endpoints.Node = &Node{s}
s.endpoints.Job = &Job{s}
s.endpoints.Eval = &Eval{s}
s.endpoints.Plan = &Plan{s}
@@ -346,7 +346,7 @@ func (s *Server) setupRPC(tlsWrap tlsutil.DCWrapper) error {
// Register the handlers
s.rpcServer.Register(s.endpoints.Status)
s.rpcServer.RegisterName("Client", s.endpoints.Client)
s.rpcServer.Register(s.endpoints.Node)
s.rpcServer.Register(s.endpoints.Job)
s.rpcServer.Register(s.endpoints.Eval)
s.rpcServer.Register(s.endpoints.Plan)

View File

@@ -115,21 +115,21 @@ type WriteMeta struct {
Index uint64
}
// NodeRegisterRequest is used for Client.Register endpoint
// NodeRegisterRequest is used for Node.Register endpoint
// to register a node as being a schedulable entity.
type NodeRegisterRequest struct {
Node *Node
WriteRequest
}
// NodeDeregisterRequest is used for Client.Deregister endpoint
// NodeDeregisterRequest is used for Node.Deregister endpoint
// to deregister a node as being a schedulable entity.
type NodeDeregisterRequest struct {
NodeID string
WriteRequest
}
// NodeUpdateStatusRequest is used for Client.UpdateStatus endpoint
// NodeUpdateStatusRequest is used for Node.UpdateStatus endpoint
// to update the status of a node.
type NodeUpdateStatusRequest struct {
NodeID string