Skip to content

Commit 410ae8e

Browse files
committed
add test case
1 parent dac7322 commit 410ae8e

File tree

1 file changed

+135
-0
lines changed

1 file changed

+135
-0
lines changed

t/discovery/consul.t

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -849,3 +849,138 @@ 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 eval: $::yaml_config
857+
--- apisix_yaml
858+
# 保持初始为空,由 /add 动态创建
859+
#END
860+
--- config
861+
location /v1/agent {
862+
proxy_pass http://127.0.0.1:8500;
863+
}
864+
location /add {
865+
content_by_lua_block {
866+
local t = require("lib.test_admin").test
867+
local code, body = t('/apisix/admin/routes/1001',
868+
ngx.HTTP_PUT,
869+
[[{
870+
"uri": "/*",
871+
"upstream": {
872+
"service_name": "service-b",
873+
"type": "roundrobin",
874+
"discovery_type": "consul",
875+
"discovery_args": {
876+
"metadata_match": {
877+
"version": ["v2", "v3"]
878+
}
879+
}
880+
}
881+
}]],
882+
nil
883+
)
884+
ngx.status = code
885+
ngx.say(body)
886+
}
887+
}
888+
location /update {
889+
content_by_lua_block {
890+
local t = require("lib.test_admin").test
891+
local code, body = t('/apisix/admin/routes/1001',
892+
ngx.HTTP_PUT,
893+
[[{
894+
"uri": "/*",
895+
"upstream": {
896+
"service_name": "service-b",
897+
"type": "roundrobin",
898+
"discovery_type": "consul",
899+
"discovery_args": {
900+
"metadata_match": {
901+
"version": ["v3"]
902+
}
903+
}
904+
}
905+
}]],
906+
nil
907+
)
908+
ngx.status = code
909+
ngx.say(body)
910+
}
911+
}
912+
location /delete {
913+
content_by_lua_block {
914+
local t = require("lib.test_admin").test
915+
local code, body = t('/apisix/admin/routes/1001', ngx.HTTP_DELETE)
916+
ngx.status = code
917+
ngx.say(body)
918+
}
919+
}
920+
location /sleep {
921+
content_by_lua_block {
922+
ngx.sleep(1)
923+
ngx.say("ok")
924+
}
925+
}
926+
--- timeout: 10
927+
--- pipelined_requests eval
928+
[
929+
# 1. 注册服务实例(四个版本)
930+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b1\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30611,\"Meta\":{\"version\":\"v1\"}}",
931+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b2\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30612,\"Meta\":{\"version\":\"v2\"}}",
932+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b3\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30613,\"Meta\":{\"version\":\"v3\"}}",
933+
"PUT /v1/agent/service/register\n" . "{\"ID\":\"service-b4\",\"Name\":\"service-b\",\"Address\":\"127.0.0.1\",\"Port\":30614,\"Meta\":{\"version\":\"v4\"}}",
934+
935+
"GET /sleep",
936+
937+
"GET /add",
938+
"GET /hello?first",
939+
"GET /hello?second",
940+
941+
"GET /update",
942+
"GET /hello?updated",
943+
944+
"GET /delete",
945+
"GET /hello?deleted",
946+
947+
"PUT /v1/agent/service/deregister/service-b1",
948+
"PUT /v1/agent/service/deregister/service-b2",
949+
"PUT /v1/agent/service/deregister/service-b3",
950+
"PUT /v1/agent/service/deregister/service-b4"
951+
]
952+
--- response_body_like eval
953+
[
954+
qr//,
955+
qr//,
956+
qr//,
957+
qr//,
958+
959+
qr/ok\n/,
960+
961+
qr/passed\n/,
962+
qr/[2-3]/,
963+
qr/[2-3]/,
964+
965+
qr/passed\n/,
966+
qr/3/,
967+
968+
qr/passed\n/,
969+
qr/404 Route Not Found/,
970+
971+
qr//,
972+
qr//,
973+
qr//,
974+
qr//
975+
]
976+
--- error_code eval
977+
[
978+
200,200,200,200,
979+
200,
980+
201,200,200,
981+
200,200,
982+
200,404,
983+
200,200,200,200
984+
]
985+
--- no_error_log
986+
[error]

0 commit comments

Comments
 (0)