github.com/hhrutter/nomad@v0.6.0-rc2.0.20170723054333-80c4b03f0705/command/agent/status_endpoint.go (about)

     1  package agent
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/hashicorp/nomad/nomad/structs"
     7  )
     8  
     9  func (s *HTTPServer) StatusLeaderRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
    10  	if req.Method != "GET" {
    11  		return nil, CodedError(405, ErrInvalidMethod)
    12  	}
    13  
    14  	var args structs.GenericRequest
    15  	if s.parse(resp, req, &args.Region, &args.QueryOptions) {
    16  		return nil, nil
    17  	}
    18  
    19  	var leader string
    20  	if err := s.agent.RPC("Status.Leader", &args, &leader); err != nil {
    21  		return nil, err
    22  	}
    23  	return leader, nil
    24  }
    25  
    26  func (s *HTTPServer) StatusPeersRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
    27  	if req.Method != "GET" {
    28  		return nil, CodedError(405, ErrInvalidMethod)
    29  	}
    30  
    31  	var args structs.GenericRequest
    32  	if s.parse(resp, req, &args.Region, &args.QueryOptions) {
    33  		return nil, nil
    34  	}
    35  
    36  	var peers []string
    37  	if err := s.agent.RPC("Status.Peers", &args, &peers); err != nil {
    38  		return nil, err
    39  	}
    40  	if len(peers) == 0 {
    41  		peers = make([]string, 0)
    42  	}
    43  	return peers, nil
    44  }