Skip to content

Commit b61504b

Browse files
committed
add test case
(cherry picked from commit 410ae8e)
1 parent 4c8d86f commit b61504b

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed

t/discovery/consul.t

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -849,3 +849,149 @@ location /sleep {
849849
]
850850
--- no_error_log
851851
[error]
852+
853+
854+
855+
=== TEST 17: dynamic etcd update with consul discovery (metadata_match)
856+
--- yaml_config
857+
apisix:
858+
node_listen: 1984
859+
deployment:
860+
admin:
861+
admin_key: null
862+
discovery:
863+
consul:
864+
servers:
865+
- "http://127.0.0.1:8500"
866+
#END
867+
--- extra_init_by_lua
868+
local health_check = require("resty.etcd.health_check")
869+
health_check.get_target_status = function()
870+
return true
871+
end
872+
--- config
873+
location /v1/agent {
874+
proxy_pass http://127.0.0.1:8500;
875+
}
876+
location /add {
877+
content_by_lua_block {
878+
local t = require("lib.test_admin").test
879+
local code, body = t('/apisix/admin/routes/1001',
880+
ngx.HTTP_PUT,
881+
[[{
882+
"uri": "/*",
883+
"upstream": {
884+
"service_name": "service-b",
885+
"type": "roundrobin",
886+
"discovery_type": "consul",
887+
"discovery_args": {
888+
"metadata_match": {
889+
"version": ["v2", "v3"]
890+
}
891+
}
892+
}
893+
}]],
894+
nil
895+
)
896+
ngx.status = code
897+
ngx.say(body)
898+
}
899+
}
900+
location /update {
901+
content_by_lua_block {
902+
local t = require("lib.test_admin").test
903+
local code, body = t('/apisix/admin/routes/1001',
904+
ngx.HTTP_PUT,
905+
[[{
906+
"uri": "/*",
907+
"upstream": {
908+
"service_name": "service-b",
909+
"type": "roundrobin",
910+
"discovery_type": "consul",
911+
"discovery_args": {
912+
"metadata_match": {
913+
"version": ["v3"]
914+
}
915+
}
916+
}
917+
}]],
918+
nil
919+
)
920+
ngx.status = code
921+
ngx.say(body)
922+
}
923+
}
924+
location /delete {
925+
content_by_lua_block {
926+
local t = require("lib.test_admin").test
927+
local code, body = t('/apisix/admin/routes/1001', ngx.HTTP_DELETE)
928+
ngx.status = code
929+
ngx.say(body)
930+
}
931+
}
932+
location /sleep {
933+
content_by_lua_block {
934+
ngx.sleep(1)
935+
ngx.say("ok")
936+
}
937+
}
938+
--- timeout: 10
939+
--- pipelined_requests eval
940+
[
941+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b1\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30511,\"Meta\":{\"version\":\"v1\"}}",
942+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b2\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30512,\"Meta\":{\"version\":\"v2\"}}",
943+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b3\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30513,\"Meta\":{\"version\":\"v3\"}}",
944+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b4\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30514,\"Meta\":{\"version\":\"v4\"}}",
945+
946+
"GET /sleep",
947+
948+
"GET /add",
949+
"GET /hello?run1",
950+
"GET /hello?run2",
951+
952+
"GET /update",
953+
"GET /hello?updated",
954+
955+
"GET /delete",
956+
"GET /hello?deleted",
957+
958+
"PUT /v1/agent/service/deregister/service-b1",
959+
"PUT /v1/agent/service/deregister/service-b2",
960+
"PUT /v1/agent/service/deregister/service-b3",
961+
"PUT /v1/agent/service/deregister/service-b4"
962+
]
963+
--- response_body_like eval
964+
[
965+
qr//,
966+
qr//,
967+
qr//,
968+
qr//,
969+
970+
qr/ok\n/,
971+
972+
qr/passed\n/,
973+
qr/[2-3]/,
974+
qr/[2-3]/,
975+
976+
qr/passed\n/,
977+
qr/3/,
978+
979+
qr/passed\n/,
980+
qr/404 Route Not Found/,
981+
982+
qr//,
983+
qr//,
984+
qr//,
985+
qr//
986+
]
987+
--- error_code eval
988+
[
989+
200,200,200,200,
990+
200,
991+
201,200,200,
992+
200,200,
993+
200,404,
994+
200,200,200,200
995+
]
996+
--- no_error_log
997+
[error]

0 commit comments

Comments
 (0)