2021-02-19 19:38:07 +00:00
|
|
|
// +build !consulent
|
|
|
|
|
|
|
|
package state
|
|
|
|
|
|
|
|
import "github.com/hashicorp/consul/agent/structs"
|
|
|
|
|
|
|
|
func testIndexerTableChecks() map[string]indexerTestCase {
|
|
|
|
return map[string]indexerTestCase{
|
|
|
|
indexNodeService: {
|
|
|
|
read: indexValue{
|
|
|
|
source: NodeServiceQuery{
|
|
|
|
Node: "NoDe",
|
|
|
|
Service: "SeRvIcE",
|
|
|
|
},
|
|
|
|
expected: []byte("node\x00service\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: &structs.HealthCheck{
|
|
|
|
Node: "NoDe",
|
|
|
|
ServiceID: "SeRvIcE",
|
|
|
|
},
|
|
|
|
expected: []byte("node\x00service\x00"),
|
|
|
|
},
|
|
|
|
},
|
2021-02-12 22:31:02 +00:00
|
|
|
indexNode: {
|
|
|
|
read: indexValue{
|
|
|
|
source: Query{
|
|
|
|
Value: "NoDe",
|
|
|
|
},
|
|
|
|
expected: []byte("node\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: &structs.HealthCheck{
|
|
|
|
Node: "NoDe",
|
|
|
|
ServiceID: "SeRvIcE",
|
|
|
|
},
|
|
|
|
expected: []byte("node\x00"),
|
|
|
|
},
|
|
|
|
},
|
2021-02-19 19:38:07 +00:00
|
|
|
}
|
|
|
|
}
|
2021-02-19 23:18:25 +00:00
|
|
|
|
2021-03-16 17:30:07 +00:00
|
|
|
func testIndexerTableMeshTopology() map[string]indexerTestCase {
|
2021-03-16 17:37:44 +00:00
|
|
|
obj := upstreamDownstream{
|
2021-03-16 17:30:07 +00:00
|
|
|
Upstream: structs.ServiceName{Name: "UpStReAm"},
|
|
|
|
Downstream: structs.ServiceName{Name: "DownStream"},
|
|
|
|
}
|
|
|
|
|
|
|
|
return map[string]indexerTestCase{
|
|
|
|
indexID: {
|
|
|
|
read: indexValue{
|
|
|
|
source: []interface{}{
|
|
|
|
structs.ServiceName{Name: "UpStReAm"},
|
|
|
|
structs.ServiceName{Name: "DownStream"},
|
|
|
|
},
|
|
|
|
expected: []byte("upstream\x00downstream\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: obj,
|
|
|
|
expected: []byte("upstream\x00downstream\x00"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
indexUpstream: {
|
|
|
|
read: indexValue{
|
2021-03-16 18:20:11 +00:00
|
|
|
source: structs.ServiceName{Name: "UpStReAm"},
|
2021-03-16 17:30:07 +00:00
|
|
|
expected: []byte("upstream\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: obj,
|
|
|
|
expected: []byte("upstream\x00"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
indexDownstream: {
|
|
|
|
read: indexValue{
|
2021-03-16 18:20:11 +00:00
|
|
|
source: structs.ServiceName{Name: "DownStream"},
|
2021-03-16 17:30:07 +00:00
|
|
|
expected: []byte("downstream\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: obj,
|
|
|
|
expected: []byte("downstream\x00"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-03-16 18:20:11 +00:00
|
|
|
func testIndexerTableGatewayServices() map[string]indexerTestCase {
|
|
|
|
obj := &structs.GatewayService{
|
|
|
|
Gateway: structs.ServiceName{Name: "GateWay"},
|
|
|
|
Service: structs.ServiceName{Name: "SerVice"},
|
|
|
|
Port: 50123,
|
|
|
|
}
|
|
|
|
encodedPort := string([]byte{0x96, 0x8f, 0x06, 0, 0, 0, 0, 0, 0, 0})
|
|
|
|
return map[string]indexerTestCase{
|
|
|
|
indexID: {
|
|
|
|
read: indexValue{
|
|
|
|
source: []interface{}{
|
|
|
|
structs.ServiceName{Name: "GateWay"},
|
|
|
|
structs.ServiceName{Name: "SerVice"},
|
|
|
|
50123,
|
|
|
|
},
|
|
|
|
expected: []byte("gateway\x00service\x00" + encodedPort),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: obj,
|
|
|
|
expected: []byte("gateway\x00service\x00" + encodedPort),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
indexGateway: {
|
|
|
|
read: indexValue{
|
|
|
|
source: structs.ServiceName{Name: "GateWay"},
|
|
|
|
expected: []byte("gateway\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: obj,
|
|
|
|
expected: []byte("gateway\x00"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
indexService: {
|
|
|
|
read: indexValue{
|
|
|
|
source: structs.ServiceName{Name: "SerVice"},
|
|
|
|
expected: []byte("service\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: obj,
|
|
|
|
expected: []byte("service\x00"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-19 23:18:25 +00:00
|
|
|
func testIndexerTableNodes() map[string]indexerTestCase {
|
|
|
|
return map[string]indexerTestCase{
|
|
|
|
indexID: {
|
|
|
|
read: indexValue{
|
|
|
|
source: Query{Value: "NoDeId"},
|
|
|
|
expected: []byte("nodeid\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: &structs.Node{Node: "NoDeId"},
|
|
|
|
expected: []byte("nodeid\x00"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
2021-02-12 22:31:02 +00:00
|
|
|
|
|
|
|
func testIndexerTableServices() map[string]indexerTestCase {
|
|
|
|
return map[string]indexerTestCase{
|
|
|
|
indexNode: {
|
|
|
|
read: indexValue{
|
|
|
|
source: Query{
|
|
|
|
Value: "NoDe",
|
|
|
|
},
|
|
|
|
expected: []byte("node\x00"),
|
|
|
|
},
|
|
|
|
write: indexValue{
|
|
|
|
source: &structs.ServiceNode{
|
|
|
|
Node: "NoDe",
|
|
|
|
ServiceID: "SeRvIcE",
|
|
|
|
},
|
|
|
|
expected: []byte("node\x00"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|