Skip to content

Commit

Permalink
nodeevents -> events
Browse files Browse the repository at this point in the history
  • Loading branch information
dadgar committed Mar 14, 2018
1 parent 57ddd51 commit eceabb6
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 48 deletions.
15 changes: 6 additions & 9 deletions api/nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,25 +113,22 @@ type Node struct {
Status string
StatusDescription string
StatusUpdatedAt int64
NodeEvents []*NodeEvent
Events []*NodeEvent
CreateIndex uint64
ModifyIndex uint64
}

// Subsystem denotes the subsystem where a node event took place.
type Subsystem string

const (
Drain Subsystem = "Drain"
Driver Subsystem = "Driver"
Heartbeat Subsystem = "Heartbeat"
Cluster Subsystem = "Cluster"
NodeEventSubsystemDrain = "Drain"
NodeEventSubsystemDriver = "Driver"
NodeEventSubsystemHeartbeat = "Heartbeat"
NodeEventSubsystemCluster = "Cluster"
)

// NodeEvent is a single unit representing a node’s state change
type NodeEvent struct {
Message string
Subsystem Subsystem
Subsystem string
Details map[string]string
Timestamp int64

Expand Down
2 changes: 1 addition & 1 deletion api/nodes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ func TestNodes_Info(t *testing.T) {
t.Fatalf("start time: %v, status updated: %v", startTime, result.StatusUpdatedAt)
}

if len(result.NodeEvents) < 1 {
if len(result.Events) < 1 {
t.Fatalf("Expected at minimum the node register event to be populated: %+v", result)
}
}
Expand Down
4 changes: 2 additions & 2 deletions command/agent/node_endpoint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -396,10 +396,10 @@ func TestHTTP_NodeQuery(t *testing.T) {
if n.ID != node.ID {
t.Fatalf("bad: %#v", n)
}
if len(n.NodeEvents) < 1 {
if len(n.Events) < 1 {
t.Fatalf("Expected node registration event to be populated: %#v", n)
}
if n.NodeEvents[0].Message != "Node Registered" {
if n.Events[0].Message != "Node Registered" {
t.Fatalf("Expected node registration event to be first node event: %#v", n)
}
})
Expand Down
2 changes: 1 addition & 1 deletion command/node_status.go
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ func (c *NodeStatusCommand) formatNode(client *api.Client, node *api.Node) int {

func (c *NodeStatusCommand) outputNodeStatusEvents(node *api.Node) {
c.Ui.Output(c.Colorize().Color("\n[bold]Node Events "))
c.outputNodeEvent(node.NodeEvents)
c.outputNodeEvent(node.Events)
}

func (c *NodeStatusCommand) outputNodeEvent(events []*api.NodeEvent) {
Expand Down
4 changes: 2 additions & 2 deletions nomad/fsm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ func TestFSM_UpsertNodeEvents(t *testing.T) {
out, err := state.NodeByID(ws, node.ID)
require.Nil(err)

require.Equal(2, len(out.NodeEvents))
require.Equal(2, len(out.Events))

first := out.NodeEvents[1]
first := out.Events[1]
require.Equal(uint64(1), first.CreateIndex)
require.Equal("Heartbeating failed", first.Message)
}
Expand Down
8 changes: 4 additions & 4 deletions nomad/node_endpoint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ func TestClientEndpoint_EmitEvents(t *testing.T) {
ws := memdb.NewWatchSet()
out, err := state.NodeByID(ws, node.ID)
require.Nil(err)
require.False(len(out.NodeEvents) < 2)
require.False(len(out.Events) < 2)
}

func TestClientEndpoint_Register_SecretMismatch(t *testing.T) {
Expand Down Expand Up @@ -986,16 +986,16 @@ func TestClientEndpoint_GetNode(t *testing.T) {
// Update the status updated at value
node.StatusUpdatedAt = resp2.Node.StatusUpdatedAt
node.SecretID = ""
node.NodeEvents = resp2.Node.NodeEvents
node.Events = resp2.Node.Events
if !reflect.DeepEqual(node, resp2.Node) {
t.Fatalf("bad: %#v \n %#v", node, resp2.Node)
}

// assert that the node register event was set correctly
if len(resp2.Node.NodeEvents) != 1 {
if len(resp2.Node.Events) != 1 {
t.Fatalf("Did not set node events: %#v", resp2.Node)
}
if resp2.Node.NodeEvents[0].Message != "Node Registered" {
if resp2.Node.Events[0].Message != "Node Registered" {
t.Fatalf("Did not set node register event correctly: %#v", resp2.Node)
}

Expand Down
10 changes: 5 additions & 5 deletions nomad/state/state_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ func (s *StateStore) UpsertNode(index uint64, node *structs.Node) error {
node.Drain = exist.Drain // Retain the drain mode

// retain node events that have already been set on the node
node.NodeEvents = exist.NodeEvents
node.Events = exist.Events
} else {
// Because this is the first time the node is being registered, we should
// also create a node registration event
Expand All @@ -537,7 +537,7 @@ func (s *StateStore) UpsertNode(index uint64, node *structs.Node) error {
Subsystem: "Cluster",
Timestamp: node.StatusUpdatedAt,
}
node.NodeEvents = []*structs.NodeEvent{nodeEvent}
node.Events = []*structs.NodeEvent{nodeEvent}
node.CreateIndex = index
node.ModifyIndex = index
}
Expand Down Expand Up @@ -686,13 +686,13 @@ func (s *StateStore) upsertNodeEvents(index uint64, nodeID string, events []*str
for _, e := range events {
e.CreateIndex = index
e.ModifyIndex = index
copyNode.NodeEvents = append(copyNode.NodeEvents, e)
copyNode.Events = append(copyNode.Events, e)
}

// Keep node events pruned to not exceed the max allowed
if l := len(copyNode.NodeEvents); l > structs.MaxRetainedNodeEvents {
if l := len(copyNode.Events); l > structs.MaxRetainedNodeEvents {
delta := l - structs.MaxRetainedNodeEvents
copyNode.NodeEvents = copyNode.NodeEvents[delta:]
copyNode.Events = copyNode.Events[delta:]
}

// Insert the node
Expand Down
22 changes: 11 additions & 11 deletions nomad/state/state_store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -758,9 +758,9 @@ func TestStateStore_AddSingleNodeEvent(t *testing.T) {
err := state.UpsertNode(1000, node)
require.Nil(err)

require.Equal(1, len(node.NodeEvents))
require.Equal(structs.Subsystem("Cluster"), node.NodeEvents[0].Subsystem)
require.Equal("Node Registered", node.NodeEvents[0].Message)
require.Equal(1, len(node.Events))
require.Equal(structs.NodeEventSubsystemCluster, node.Events[0].Subsystem)
require.Equal("Node Registered", node.Events[0].Message)

// Create a watchset so we can test that AddNodeEvent fires the watch
ws := memdb.NewWatchSet()
Expand All @@ -784,8 +784,8 @@ func TestStateStore_AddSingleNodeEvent(t *testing.T) {
out, err := state.NodeByID(ws, node.ID)
require.Nil(err)

require.Equal(2, len(out.NodeEvents))
require.Equal(nodeEvent, out.NodeEvents[1])
require.Equal(2, len(out.Events))
require.Equal(nodeEvent, out.Events[1])
}

// To prevent stale node events from accumulating, we limit the number of
Expand All @@ -800,9 +800,9 @@ func TestStateStore_NodeEvents_RetentionWindow(t *testing.T) {
if err != nil {
t.Fatalf("err: %v", err)
}
require.Equal(1, len(node.NodeEvents))
require.Equal(structs.Subsystem("Cluster"), node.NodeEvents[0].Subsystem)
require.Equal("Node Registered", node.NodeEvents[0].Message)
require.Equal(1, len(node.Events))
require.Equal(structs.NodeEventSubsystemCluster, node.Events[0].Subsystem)
require.Equal("Node Registered", node.Events[0].Message)

var out *structs.Node
for i := 1; i <= 20; i++ {
Expand Down Expand Up @@ -832,9 +832,9 @@ func TestStateStore_NodeEvents_RetentionWindow(t *testing.T) {
out, err = state.NodeByID(ws, node.ID)
require.Nil(err)

require.Equal(10, len(out.NodeEvents))
require.Equal(uint64(11), out.NodeEvents[0].CreateIndex)
require.Equal(uint64(20), out.NodeEvents[len(out.NodeEvents)-1].CreateIndex)
require.Equal(10, len(out.Events))
require.Equal(uint64(11), out.Events[0].CreateIndex)
require.Equal(uint64(20), out.Events[len(out.Events)-1].CreateIndex)
}

func TestStateStore_Nodes(t *testing.T) {
Expand Down
22 changes: 9 additions & 13 deletions nomad/structs/structs.go
Original file line number Diff line number Diff line change
Expand Up @@ -1072,21 +1072,17 @@ type EmitNodeEventsResponse struct {
WriteMeta
}

// TODO needs to be a more specific name
// Subsystem denotes the subsystem where a node event took place.
type Subsystem string

const (
Drain Subsystem = "Drain"
Driver Subsystem = "Driver"
Heartbeat Subsystem = "Heartbeat"
Cluster Subsystem = "Cluster"
NodeEventSubsystemDrain = "Drain"
NodeEventSubsystemDriver = "Driver"
NodeEventSubsystemHeartbeat = "Heartbeat"
NodeEventSubsystemCluster = "Cluster"
)

// NodeEvent is a single unit representing a node’s state change
type NodeEvent struct {
Message string
Subsystem Subsystem
Subsystem string
Details map[string]string
Timestamp int64
CreateIndex uint64
Expand All @@ -1099,7 +1095,7 @@ func (ne *NodeEvent) String() string {
details = append(details, fmt.Sprintf("%s: %s", k, v))
}

return fmt.Sprintf("Message: %s, Subsystem: %s, Details: %s, Timestamp: %d", ne.Message, string(ne.Subsystem), strings.Join(details, ","), ne.Timestamp)
return fmt.Sprintf("Message: %s, Subsystem: %s, Details: %s, Timestamp: %d", ne.Message, ne.Subsystem, strings.Join(details, ","), ne.Timestamp)
}

func (ne *NodeEvent) Copy() *NodeEvent {
Expand Down Expand Up @@ -1212,9 +1208,9 @@ type Node struct {
// updated
StatusUpdatedAt int64

// NodeEvents is the most recent set of events generated for the node,
// Events is the most recent set of events generated for the node,
// retaining only MaxRetainedNodeEvents number at a time
NodeEvents []*NodeEvent
Events []*NodeEvent

// Raft Indexes
CreateIndex uint64
Expand All @@ -1237,7 +1233,7 @@ func (n *Node) Copy() *Node {
nn.Reserved = nn.Reserved.Copy()
nn.Links = helper.CopyMapStringString(nn.Links)
nn.Meta = helper.CopyMapStringString(nn.Meta)
nn.NodeEvents = copyNodeEvents(n.NodeEvents)
nn.Events = copyNodeEvents(n.Events)
return nn
}

Expand Down

0 comments on commit eceabb6

Please sign in to comment.