This is an automated email from the ASF dual-hosted git repository.
tokers pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/master by this push:
new 560fca3 fix: fix on setting server info to etcd (#3075)
560fca3 is described below
commit 560fca3e0bb11c3de0e8d7489c8fa8ead4b23585
Author: Peter Zhu <[email protected]>
AuthorDate: Fri Dec 18 14:46:49 2020 +0800
fix: fix on setting server info to etcd (#3075)
* fix: fix on setting server info to etcd
---
apisix/plugins/server-info.lua | 14 +++++++-------
t/plugin/server-info.t | 14 ++++++--------
2 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/apisix/plugins/server-info.lua b/apisix/plugins/server-info.lua
index f5dccb8..4c90682 100644
--- a/apisix/plugins/server-info.lua
+++ b/apisix/plugins/server-info.lua
@@ -127,19 +127,19 @@ local function report(premature, report_ttl)
server_info.last_report_time = ngx_time()
- local data, err = core.json.encode(server_info)
- if not data then
- core.log.error("failed to encode server_info: ", err)
- return
- end
-
local key = "/data_plane/server_info/" .. server_info.id
- local ok, err = core.etcd.set(key, data, report_ttl)
+ local ok, err = core.etcd.set(key, server_info, report_ttl)
if not ok then
core.log.error("failed to report server info to etcd: ", err)
return
end
+ local data, err = core.json.encode(server_info)
+ if not data then
+ core.log.error("failed to encode server_info: ", err)
+ return
+ end
+
local ok, err = internal_status:set("server_info", data)
if not ok then
core.log.error("failed to encode and save server info: ", err)
diff --git a/t/plugin/server-info.t b/t/plugin/server-info.t
index c61a4eb..ae8306c 100644
--- a/t/plugin/server-info.t
+++ b/t/plugin/server-info.t
@@ -52,7 +52,6 @@ plugin_attr:
location /t {
content_by_lua_block {
ngx.sleep(2)
- local json_decode = require("cjson.safe").decode
local core = require("apisix.core")
local key = "/data_plane/server_info/" .. core.id.get()
local res, err = core.etcd.get(key)
@@ -63,14 +62,14 @@ location /t {
end
local keys = {}
- local body = json_decode(res.body.node.value)
- for k in pairs(body) do
+ local value = res.body.node.value
+ for k in pairs(value) do
keys[#keys + 1] = k
end
table.sort(keys)
for i = 1, #keys do
- ngx.say(keys[i], ": ", body[keys[i]])
+ ngx.say(keys[i], ": ", value[keys[i]])
end
}
}
@@ -104,7 +103,6 @@ plugin_attr:
--- config
location /t {
content_by_lua_block {
- local json_decode = require("cjson.safe").decode
local core = require("apisix.core")
local key = "/data_plane/server_info/" .. core.id.get()
local res, err = core.etcd.get(key)
@@ -115,12 +113,12 @@ location /t {
end
local keys = {}
- local body = json_decode(res.body.node.value)
- for k in pairs(body) do
+ local value = res.body.node.value
+ for k in pairs(value) do
keys[#keys + 1] = k
end
- if body.up_time >= 2 then
+ if value.up_time >= 2 then
ngx.say("integral")
else
ngx.say("reset")