github.com/djenriquez/nomad-1@v0.8.1/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  }