This is an automated email from the ASF dual-hosted git repository.
wenming pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-apisix.git
The following commit(s) were added to refs/heads/master by this push:
new f22f494 optimize: updated the error message after updated new
`jsonschema`. (#1011)
f22f494 is described below
commit f22f4943628cdcad0403986b2c546ba9eb880303
Author: YuanSheng Wang <[email protected]>
AuthorDate: Thu Jan 2 21:56:42 2020 +0800
optimize: updated the error message after updated new `jsonschema`. (#1011)
---
lua/apisix/schema_def.lua | 4 ++++
rockspec/apisix-master-0.rockspec | 2 +-
t/admin/health-check.t | 48 +++++++++++++++++++++++++++++++++++++++
t/admin/routes.t | 8 +++----
t/admin/services.t | 6 ++---
t/admin/upstream.t | 4 ++--
t/plugin/ip-restriction.t | 2 +-
7 files changed, 63 insertions(+), 11 deletions(-)
diff --git a/lua/apisix/schema_def.lua b/lua/apisix/schema_def.lua
index 1406c49..c4ab627 100644
--- a/lua/apisix/schema_def.lua
+++ b/lua/apisix/schema_def.lua
@@ -218,6 +218,10 @@ local health_checker = {
}
},
additionalProperties = false,
+ anyOf = {
+ {required = {"active"}},
+ {required = {"active", "passive"}},
+ },
}
diff --git a/rockspec/apisix-master-0.rockspec
b/rockspec/apisix-master-0.rockspec
index b7c2c25..f8cd330 100644
--- a/rockspec/apisix-master-0.rockspec
+++ b/rockspec/apisix-master-0.rockspec
@@ -46,7 +46,7 @@ dependencies = {
"luafilesystem = 1.7.0-2",
"lua-tinyyaml = 0.1",
"lua-resty-prometheus = 1.0",
- "jsonschema = 0.4",
+ "jsonschema = 0.5",
"lua-resty-ipmatcher = 0.3",
}
diff --git a/t/admin/health-check.t b/t/admin/health-check.t
index c056062..8680768 100644
--- a/t/admin/health-check.t
+++ b/t/admin/health-check.t
@@ -106,6 +106,14 @@ passed
local t = require("lib.test_admin").test
req_data.upstream.checks = json.decode([[{
+ "active": {
+ "http_path": "/status",
+ "host": "foo.com",
+ "healthy": {
+ "interval": 2,
+ "successes": 1
+ }
+ },
"passive": {
"healthy": {
"http_statuses": [200, 201],
@@ -428,3 +436,43 @@ GET /t
{"error_msg":"invalid configuration: property \"upstream\" validation failed:
property \"checks\" validation failed: property \"active\" validation failed:
property \"req_headers\" validation failed: failed to validate item 2: wrong
type: expected string, got number"}
--- no_error_log
[error]
+
+
+
+=== TEST 12: only passive
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+
+ req_data.upstream.checks = json.decode([[{
+ "passive": {
+ "healthy": {
+ "http_statuses": [200, 201],
+ "successes": 1
+ },
+ "unhealthy": {
+ "http_statuses": [500],
+ "http_failures": 2
+ }
+ }
+ }]])
+ exp_data.node.value.upstream.checks = req_data.upstream.checks
+
+ local code, body = t('/apisix/admin/routes/1',
+ ngx.HTTP_PUT,
+ req_data,
+ exp_data
+ )
+
+ ngx.status = code
+ ngx.print(body)
+ }
+ }
+--- request
+GET /t
+--- error_code: 400
+--- response_body
+{"error_msg":"invalid configuration: property \"upstream\" validation failed:
property \"checks\" validation failed: object matches none of the requireds:
[\"active\"] or [\"active\",\"passive\"]"}
+--- no_error_log
+[error]
diff --git a/t/admin/routes.t b/t/admin/routes.t
index 48051c2..57bf614 100644
--- a/t/admin/routes.t
+++ b/t/admin/routes.t
@@ -447,7 +447,7 @@ GET /t
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"service_id\" validation
failed: object matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"service_id\" validation
failed: object matches none of the requireds"}
--- no_error_log
[error]
@@ -555,7 +555,7 @@ passed
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the requireds"}
--- no_error_log
[error]
@@ -582,7 +582,7 @@ GET /t
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"upstream_id\" validation
failed: object matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"upstream_id\" validation
failed: object matches none of the requireds"}
--- no_error_log
[error]
@@ -949,7 +949,7 @@ passed
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"remote_addr\" validation
failed: object matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"remote_addr\" validation
failed: object matches none of the requireds"}
--- no_error_log
[error]
diff --git a/t/admin/services.t b/t/admin/services.t
index e562975..d9e2f9e 100644
--- a/t/admin/services.t
+++ b/t/admin/services.t
@@ -461,7 +461,7 @@ passed
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the requireds"}
--- no_error_log
[error]
@@ -488,7 +488,7 @@ GET /t
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the requireds"}
--- no_error_log
[error]
@@ -542,7 +542,7 @@ GET /t
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"upstream_id\" validation
failed: object matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"upstream_id\" validation
failed: object matches none of the requireds"}
--- no_error_log
[error]
diff --git a/t/admin/upstream.t b/t/admin/upstream.t
index 9b0d7f3..6ca7308 100644
--- a/t/admin/upstream.t
+++ b/t/admin/upstream.t
@@ -360,7 +360,7 @@ passed
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the requireds"}
--- no_error_log
[error]
@@ -390,7 +390,7 @@ GET /t
GET /t
--- error_code: 400
--- response_body
-{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the alternatives"}
+{"error_msg":"invalid configuration: property \"id\" validation failed: object
matches none of the requireds"}
--- no_error_log
[error]
diff --git a/t/plugin/ip-restriction.t b/t/plugin/ip-restriction.t
index ac2371c..9403819 100644
--- a/t/plugin/ip-restriction.t
+++ b/t/plugin/ip-restriction.t
@@ -565,6 +565,6 @@ GET /hello
GET /t
--- response_body
invalid ip address: ::1/129
-property "whitelist" validation failed: failed to validate item 1: object
matches none of the alternatives
+property "whitelist" validation failed: failed to validate item 1: object
matches none of the requireds
--- no_error_log
[error]