spacewander commented on a change in pull request #5158:
URL: https://github.com/apache/apisix/pull/5158#discussion_r720660409
##########
File path: apisix/cli/etcd.lua
##########
@@ -206,29 +208,38 @@ function _M.init(env, args)
version_url, err, retry_time))
end
- if not res then
- errmsg = str_format("request etcd endpoint \'%s\' error, %s\n",
version_url, err)
- util.die(errmsg)
- end
+ if res then
+ local body, _, err = dkjson.decode(res)
+ if err or (body and not body["etcdcluster"]) then
+ errmsg = str_format("got malformed version message: \"%s\"
from etcd \"%s\"\n", res,
+ version_url)
+ util.die(errmsg)
+ end
- local body, _, err = dkjson.decode(res)
- if err or (body and not body["etcdcluster"]) then
- errmsg = str_format("got malformed version message: \"%s\" from
etcd \"%s\"\n", res,
- version_url)
- util.die(errmsg)
- end
+ local cluster_version = body["etcdcluster"]
+ if compare_semantic_version(cluster_version, env.min_etcd_version)
then
+ util.die("etcd cluster version ", cluster_version,
+ " is less than the required version ",
+ env.min_etcd_version,
+ ", please upgrade your etcd cluster\n")
+ end
- local cluster_version = body["etcdcluster"]
- if compare_semantic_version(cluster_version, env.min_etcd_version) then
- util.die("etcd cluster version ", cluster_version,
- " is less than the required version ",
- env.min_etcd_version,
- ", please upgrade your etcd cluster\n")
+ table_insert(etcd_healthy_hosts, host)
+ else
+ print(str_format("request etcd endpoint \'%s\' error, %s\n",
version_url, err))
Review comment:
Should write to stderr
##########
File path: apisix/cli/etcd.lua
##########
@@ -206,29 +208,38 @@ function _M.init(env, args)
version_url, err, retry_time))
end
- if not res then
- errmsg = str_format("request etcd endpoint \'%s\' error, %s\n",
version_url, err)
- util.die(errmsg)
- end
+ if res then
+ local body, _, err = dkjson.decode(res)
+ if err or (body and not body["etcdcluster"]) then
+ errmsg = str_format("got malformed version message: \"%s\"
from etcd \"%s\"\n", res,
+ version_url)
+ util.die(errmsg)
+ end
- local body, _, err = dkjson.decode(res)
- if err or (body and not body["etcdcluster"]) then
- errmsg = str_format("got malformed version message: \"%s\" from
etcd \"%s\"\n", res,
- version_url)
- util.die(errmsg)
- end
+ local cluster_version = body["etcdcluster"]
+ if compare_semantic_version(cluster_version, env.min_etcd_version)
then
+ util.die("etcd cluster version ", cluster_version,
+ " is less than the required version ",
+ env.min_etcd_version,
+ ", please upgrade your etcd cluster\n")
+ end
- local cluster_version = body["etcdcluster"]
- if compare_semantic_version(cluster_version, env.min_etcd_version) then
- util.die("etcd cluster version ", cluster_version,
- " is less than the required version ",
- env.min_etcd_version,
- ", please upgrade your etcd cluster\n")
+ table_insert(etcd_healthy_hosts, host)
+ else
+ print(str_format("request etcd endpoint \'%s\' error, %s\n",
version_url, err))
end
end
+ if #etcd_healthy_hosts <= 0 then
+ util.die("all etcd nodes are unavailable\n")
+ end
+
+ if host_count >= 2 and #etcd_healthy_hosts < 2 then
Review comment:
Better to check if more than half of the nodes are healthy.
##########
File path: apisix/cli/etcd.lua
##########
@@ -206,29 +208,38 @@ function _M.init(env, args)
version_url, err, retry_time))
end
- if not res then
- errmsg = str_format("request etcd endpoint \'%s\' error, %s\n",
version_url, err)
- util.die(errmsg)
- end
+ if res then
+ local body, _, err = dkjson.decode(res)
+ if err or (body and not body["etcdcluster"]) then
+ errmsg = str_format("got malformed version message: \"%s\"
from etcd \"%s\"\n", res,
+ version_url)
+ util.die(errmsg)
+ end
- local body, _, err = dkjson.decode(res)
- if err or (body and not body["etcdcluster"]) then
- errmsg = str_format("got malformed version message: \"%s\" from
etcd \"%s\"\n", res,
- version_url)
- util.die(errmsg)
- end
+ local cluster_version = body["etcdcluster"]
+ if compare_semantic_version(cluster_version, env.min_etcd_version)
then
+ util.die("etcd cluster version ", cluster_version,
+ " is less than the required version ",
Review comment:
Bad indent
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]