diff --git a/api/nodes.go b/api/nodes.go index 18cc68cfe..8ae8cd6dc 100644 --- a/api/nodes.go +++ b/api/nodes.go @@ -169,6 +169,7 @@ type NodeListStub struct { Datacenter string Name string NodeClass string + Version string Drain bool Status string StatusDescription string diff --git a/command/node_status.go b/command/node_status.go index a549bd065..fb4ec4b4b 100644 --- a/command/node_status.go +++ b/command/node_status.go @@ -59,7 +59,7 @@ Node Status Options: -self Query the status of the local node. - -stats + -stats Display detailed resource usage statistics. -allocs @@ -150,35 +150,40 @@ func (c *NodeStatusCommand) Run(args []string) int { // Format the nodes list out := make([]string, len(nodes)+1) + + out[0] = "ID|DC|Name|Class|" + + if c.verbose { + out[0] += "Version|" + } + + out[0] += "Drain|Status" + if c.list_allocs { - out[0] = "ID|DC|Name|Class|Drain|Status|Running Allocs" - } else { - out[0] = "ID|DC|Name|Class|Drain|Status" + out[0] += "|Running Allocs" } for i, node := range nodes { + out[i+1] = fmt.Sprintf("%s|%s|%s|%s", + limit(node.ID, c.length), + node.Datacenter, + node.Name, + node.NodeClass) + if c.verbose { + out[i+1] += fmt.Sprintf("|%s", + node.Version) + } + out[i+1] += fmt.Sprintf("|%v|%s", + node.Drain, + node.Status) if c.list_allocs { numAllocs, err := getRunningAllocs(client, node.ID) if err != nil { c.Ui.Error(fmt.Sprintf("Error querying node allocations: %s", err)) return 1 } - out[i+1] = fmt.Sprintf("%s|%s|%s|%s|%v|%s|%v", - limit(node.ID, c.length), - node.Datacenter, - node.Name, - node.NodeClass, - node.Drain, - node.Status, + out[i+1] += fmt.Sprintf("|%v", len(numAllocs)) - } else { - out[i+1] = fmt.Sprintf("%s|%s|%s|%s|%v|%s", - limit(node.ID, c.length), - node.Datacenter, - node.Name, - node.NodeClass, - node.Drain, - node.Status) } } diff --git a/nomad/structs/structs.go b/nomad/structs/structs.go index 358c3b96d..18410ecc5 100644 --- a/nomad/structs/structs.go +++ b/nomad/structs/structs.go @@ -1070,6 +1070,7 @@ func (n *Node) Stub() *NodeListStub { Datacenter: n.Datacenter, Name: n.Name, NodeClass: n.NodeClass, + Version: n.Attributes["nomad.version"], Drain: n.Drain, Status: n.Status, StatusDescription: n.StatusDescription, @@ -1085,6 +1086,7 @@ type NodeListStub struct { Datacenter string Name string NodeClass string + Version string Drain bool Status string StatusDescription string