mirror of https://github.com/status-im/consul.git
Adds query metadata to prepared query execute response.
This commit is contained in:
parent
c955799baf
commit
6634cd6567
|
@ -268,6 +268,7 @@ func (p *PreparedQuery) Execute(args *structs.PreparedQueryExecuteRequest,
|
||||||
defer metrics.MeasureSince([]string{"consul", "prepared-query", "execute"}, time.Now())
|
defer metrics.MeasureSince([]string{"consul", "prepared-query", "execute"}, time.Now())
|
||||||
|
|
||||||
// We have to do this ourselves since we are not doing a blocking RPC.
|
// We have to do this ourselves since we are not doing a blocking RPC.
|
||||||
|
p.srv.setQueryMeta(&reply.QueryMeta)
|
||||||
if args.RequireConsistent {
|
if args.RequireConsistent {
|
||||||
if err := p.srv.consistentRead(); err != nil {
|
if err := p.srv.consistentRead(); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -327,6 +328,7 @@ func (p *PreparedQuery) ExecuteRemote(args *structs.PreparedQueryExecuteRemoteRe
|
||||||
defer metrics.MeasureSince([]string{"consul", "prepared-query", "execute_remote"}, time.Now())
|
defer metrics.MeasureSince([]string{"consul", "prepared-query", "execute_remote"}, time.Now())
|
||||||
|
|
||||||
// We have to do this ourselves since we are not doing a blocking RPC.
|
// We have to do this ourselves since we are not doing a blocking RPC.
|
||||||
|
p.srv.setQueryMeta(&reply.QueryMeta)
|
||||||
if args.RequireConsistent {
|
if args.RequireConsistent {
|
||||||
if err := p.srv.consistentRead(); err != nil {
|
if err := p.srv.consistentRead(); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -1100,7 +1100,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 10 ||
|
if len(reply.Nodes) != 10 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1120,7 +1121,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 3 ||
|
if len(reply.Nodes) != 3 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1160,7 +1162,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 10 ||
|
if len(reply.Nodes) != 10 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
if reply.Nodes[0].Node.Node != "node3" {
|
if reply.Nodes[0].Node.Node != "node3" {
|
||||||
|
@ -1183,7 +1186,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 10 ||
|
if len(reply.Nodes) != 10 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
var names []string
|
var names []string
|
||||||
|
@ -1240,7 +1244,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 9 ||
|
if len(reply.Nodes) != 9 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
for _, node := range reply.Nodes {
|
for _, node := range reply.Nodes {
|
||||||
|
@ -1265,7 +1270,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 10 ||
|
if len(reply.Nodes) != 10 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1291,7 +1297,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 9 ||
|
if len(reply.Nodes) != 9 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
for _, node := range reply.Nodes {
|
for _, node := range reply.Nodes {
|
||||||
|
@ -1324,7 +1331,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 8 ||
|
if len(reply.Nodes) != 8 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
for _, node := range reply.Nodes {
|
for _, node := range reply.Nodes {
|
||||||
|
@ -1351,7 +1359,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 0 ||
|
if len(reply.Nodes) != 0 ||
|
||||||
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
reply.Datacenter != "dc1" || reply.Failovers != 0 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1376,7 +1385,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 9 ||
|
if len(reply.Nodes) != 9 ||
|
||||||
reply.Datacenter != "dc2" || reply.Failovers != 1 ||
|
reply.Datacenter != "dc2" || reply.Failovers != 1 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
for _, node := range reply.Nodes {
|
for _, node := range reply.Nodes {
|
||||||
|
@ -1402,7 +1412,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 3 ||
|
if len(reply.Nodes) != 3 ||
|
||||||
reply.Datacenter != "dc2" || reply.Failovers != 1 ||
|
reply.Datacenter != "dc2" || reply.Failovers != 1 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
for _, node := range reply.Nodes {
|
for _, node := range reply.Nodes {
|
||||||
|
@ -1427,7 +1438,8 @@ func TestPreparedQuery_Execute(t *testing.T) {
|
||||||
|
|
||||||
if len(reply.Nodes) != 9 ||
|
if len(reply.Nodes) != 9 ||
|
||||||
reply.Datacenter != "dc2" || reply.Failovers != 1 ||
|
reply.Datacenter != "dc2" || reply.Failovers != 1 ||
|
||||||
!reflect.DeepEqual(reply.DNS, query.Query.DNS) {
|
!reflect.DeepEqual(reply.DNS, query.Query.DNS) ||
|
||||||
|
!reply.QueryMeta.KnownLeader {
|
||||||
t.Fatalf("bad: %v", reply)
|
t.Fatalf("bad: %v", reply)
|
||||||
}
|
}
|
||||||
var names []string
|
var names []string
|
||||||
|
|
|
@ -198,4 +198,7 @@ type PreparedQueryExecuteResponse struct {
|
||||||
// Failovers is a count of how many times we had to query a remote
|
// Failovers is a count of how many times we had to query a remote
|
||||||
// datacenter.
|
// datacenter.
|
||||||
Failovers int
|
Failovers int
|
||||||
|
|
||||||
|
// QueryMeta has freshness information about the query.
|
||||||
|
QueryMeta
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue