diff --git a/client/client.go b/client/client.go index 590aed7a7..e770f690b 100644 --- a/client/client.go +++ b/client/client.go @@ -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) diff --git a/client/client_test.go b/client/client_test.go index 5ac7b8f8e..23b4379f1 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -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 } diff --git a/command/agent/node_endpoint.go b/command/agent/node_endpoint.go index 2fdf3cfce..020637759 100644 --- a/command/agent/node_endpoint.go +++ b/command/agent/node_endpoint.go @@ -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 } diff --git a/command/agent/node_endpoint_test.go b/command/agent/node_endpoint_test.go index 6240ec375..6e5a260d0 100644 --- a/command/agent/node_endpoint_test.go +++ b/command/agent/node_endpoint_test.go @@ -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) } diff --git a/nomad/heartbeat.go b/nomad/heartbeat.go index 1fdf91f4d..71f337b61 100644 --- a/nomad/heartbeat.go +++ b/nomad/heartbeat.go @@ -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) } } diff --git a/nomad/heartbeat_test.go b/nomad/heartbeat_test.go index 44aea38b2..85fa2486e 100644 --- a/nomad/heartbeat_test.go +++ b/nomad/heartbeat_test.go @@ -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) } diff --git a/nomad/client_endpoint.go b/nomad/node_endpoint.go similarity index 71% rename from nomad/client_endpoint.go rename to nomad/node_endpoint.go index dd58d9d5d..c97cd8280 100644 --- a/nomad/client_endpoint.go +++ b/nomad/node_endpoint.go @@ -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 } diff --git a/nomad/client_endpoint_test.go b/nomad/node_endpoint_test.go similarity index 87% rename from nomad/client_endpoint_test.go rename to nomad/node_endpoint_test.go index 448fcaa6d..148c782bb 100644 --- a/nomad/client_endpoint_test.go +++ b/nomad/node_endpoint_test.go @@ -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 { diff --git a/nomad/plan_apply_test.go b/nomad/plan_apply_test.go index 32eaefdfc..43f116b3d 100644 --- a/nomad/plan_apply_test.go +++ b/nomad/plan_apply_test.go @@ -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 { diff --git a/nomad/server.go b/nomad/server.go index 5ea554b9d..b9d058e4f 100644 --- a/nomad/server.go +++ b/nomad/server.go @@ -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) diff --git a/nomad/structs/structs.go b/nomad/structs/structs.go index 8412b9037..b5dd7354a 100644 --- a/nomad/structs/structs.go +++ b/nomad/structs/structs.go @@ -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