Adds a magic "self" node name to distance queries.
This commit is contained in:
parent
5609b2e889
commit
1724b9a6be
|
@ -491,7 +491,11 @@ func (s *HTTPServer) parseToken(req *http.Request, token *string) {
|
|||
func (s *HTTPServer) parseSource(req *http.Request, source *structs.QuerySource) {
|
||||
s.parseDC(req, &source.Datacenter)
|
||||
if node := req.URL.Query().Get("near"); node != "" {
|
||||
source.Node = node
|
||||
if node == "self" {
|
||||
source.Node = s.agent.config.NodeName
|
||||
} else {
|
||||
source.Node = node
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -380,6 +380,18 @@ func TestParseSource(t *testing.T) {
|
|||
if source.Datacenter != "foo" || source.Node != "bob" {
|
||||
t.Fatalf("bad: %v", source)
|
||||
}
|
||||
|
||||
// The magic "self" node name will use the agent's local node name.
|
||||
req, err = http.NewRequest("GET",
|
||||
"/v1/catalog/nodes?near=self", nil)
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
source = structs.QuerySource{}
|
||||
srv.parseSource(req, &source)
|
||||
if source.Datacenter != "dc1" || source.Node != srv.agent.config.NodeName {
|
||||
t.Fatalf("bad: %v", source)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseWait(t *testing.T) {
|
||||
|
|
|
@ -181,7 +181,8 @@ however, the dc can be provided using the "?dc=" query parameter.
|
|||
|
||||
Adding the optional "?near=" parameter with a node name will sort
|
||||
the node list in ascending order based on the estimated round trip
|
||||
time from that node.
|
||||
time from that node. Passing "?near=self" will use the agent's local
|
||||
node for the sort.
|
||||
|
||||
It returns a JSON body like this:
|
||||
|
||||
|
@ -236,7 +237,8 @@ by tag using the "?tag=" query parameter.
|
|||
|
||||
Adding the optional "?near=" parameter with a node name will sort
|
||||
the node list in ascending order based on the estimated round trip
|
||||
time from that node.
|
||||
time from that node. Passing "?near=self" will use the agent's local
|
||||
node for the sort.
|
||||
|
||||
It returns a JSON body like this:
|
||||
|
||||
|
|
Loading…
Reference in New Issue