github.com/emate/nomad@v0.8.2-wo-binpacking/api/status.go (about) 1 package api 2 3 // Status is used to query the status-related endpoints. 4 type Status struct { 5 client *Client 6 } 7 8 // Status returns a handle on the status endpoints. 9 func (c *Client) Status() *Status { 10 return &Status{client: c} 11 } 12 13 // Leader is used to query for the current cluster leader. 14 func (s *Status) Leader() (string, error) { 15 var resp string 16 _, err := s.client.query("/v1/status/leader", &resp, nil) 17 if err != nil { 18 return "", err 19 } 20 return resp, nil 21 } 22 23 // RegionLeader is used to query for the leader in the passed region. 24 func (s *Status) RegionLeader(region string) (string, error) { 25 var resp string 26 q := QueryOptions{Region: region} 27 _, err := s.client.query("/v1/status/leader", &resp, &q) 28 if err != nil { 29 return "", err 30 } 31 return resp, nil 32 } 33 34 // Peers is used to query the addresses of the server peers 35 // in the cluster. 36 func (s *Status) Peers() ([]string, error) { 37 var resp []string 38 _, err := s.client.query("/v1/status/peers", &resp, nil) 39 if err != nil { 40 return nil, err 41 } 42 return resp, nil 43 }