diff --git a/nomad/operator_endpoint.go b/nomad/operator_endpoint.go index 10c84f536..0edfc4b71 100644 --- a/nomad/operator_endpoint.go +++ b/nomad/operator_endpoint.go @@ -54,15 +54,17 @@ func (op *Operator) RaftGetConfiguration(args *structs.GenericRequest, reply *st raftProtocolVersion := "unknown" if member, ok := serverMap[server.Address]; ok { node = member.Name - raftProtocolVersion = member.Tags["raft_vsn"] + if raftVsn, ok := member.Tags["raft_vsn"]; ok { + raftProtocolVersion = raftVsn + } } entry := &structs.RaftServer{ - ID: server.ID, - Node: node, - Address: server.Address, - Leader: server.Address == leader, - Voter: server.Suffrage == raft.Voter, + ID: server.ID, + Node: node, + Address: server.Address, + Leader: server.Address == leader, + Voter: server.Suffrage == raft.Voter, RaftProtocol: raftProtocolVersion, } reply.Servers = append(reply.Servers, entry) diff --git a/nomad/util.go b/nomad/util.go index b7a723bee..5cae76309 100644 --- a/nomad/util.go +++ b/nomad/util.go @@ -62,7 +62,10 @@ func isNomadServer(m serf.Member) (bool, *serverParts) { return false, nil } - id := m.Tags["id"] + id := "unknown" + if v, ok := m.Tags["id"]; ok { + id = v + } region := m.Tags["region"] datacenter := m.Tags["dc"] _, bootstrap := m.Tags["bootstrap"] diff --git a/website/source/api/operator.html.md b/website/source/api/operator.html.md index 22aed2584..5d71d3e1e 100644 --- a/website/source/api/operator.html.md +++ b/website/source/api/operator.html.md @@ -59,6 +59,7 @@ $ curl \ "ID": "127.0.0.1:4647", "Leader": true, "Node": "bacon-mac.global", + "RaftProtocol": 2, "Voter": true } ]