Merge pull request #11101 from zmstone/0620-make-possible-to-test-core-replica-cluster-locally
test: make possible to test core/replica locally
This commit is contained in:
commit
e2cccf1bb0
|
@ -35,7 +35,7 @@
|
||||||
-define(EMQX_RELEASE_CE, "5.1.0-rc.1").
|
-define(EMQX_RELEASE_CE, "5.1.0-rc.1").
|
||||||
|
|
||||||
%% Enterprise edition
|
%% Enterprise edition
|
||||||
-define(EMQX_RELEASE_EE, "5.1.0-rc.1").
|
-define(EMQX_RELEASE_EE, "5.1.0-rc.2").
|
||||||
|
|
||||||
%% The HTTP API version
|
%% The HTTP API version
|
||||||
-define(EMQX_API_VERSION, "5.0").
|
-define(EMQX_API_VERSION, "5.0").
|
||||||
|
|
|
@ -132,10 +132,13 @@ parse_vsn(Vsn) ->
|
||||||
Suffix =
|
Suffix =
|
||||||
case Suffix0 of
|
case Suffix0 of
|
||||||
"" ->
|
"" ->
|
||||||
%% For the case like "5.1.0"
|
%% "5.1.0"
|
||||||
"";
|
"";
|
||||||
[ReleaseStage, Number] ->
|
["g" ++ _] ->
|
||||||
%% For the case like "5.1.0-rc.1"
|
%% "5.1.0-g53ab85b1"
|
||||||
|
"";
|
||||||
|
[ReleaseStage, Number | _] ->
|
||||||
|
%% "5.1.0-rc.1" or "5.1.0-rc.1-g53ab85b1"
|
||||||
{ReleaseStage, list_to_integer(Number)}
|
{ReleaseStage, list_to_integer(Number)}
|
||||||
end,
|
end,
|
||||||
{{list_to_integer(V1), list_to_integer(V2), list_to_integer(V3)}, Suffix}
|
{{list_to_integer(V1), list_to_integer(V2), list_to_integer(V3)}, Suffix}
|
||||||
|
|
|
@ -47,6 +47,10 @@ vsn_compre_test_() ->
|
||||||
?assertEqual(older, emqx_release:vsn_compare("1.1.1", "1.1.1-rc.1")),
|
?assertEqual(older, emqx_release:vsn_compare("1.1.1", "1.1.1-rc.1")),
|
||||||
?assertEqual(newer, emqx_release:vsn_compare("1.1.1-rc.1", "1.1.1"))
|
?assertEqual(newer, emqx_release:vsn_compare("1.1.1-rc.1", "1.1.1"))
|
||||||
end},
|
end},
|
||||||
|
{"git hash suffix is ignored", fun() ->
|
||||||
|
?assertEqual(older, emqx_release:vsn_compare("1.1.1-gabcd", "1.1.1-rc.1-g1234")),
|
||||||
|
?assertEqual(newer, emqx_release:vsn_compare("1.1.1-rc.1-gabcd", "1.1.1-g1234"))
|
||||||
|
end},
|
||||||
{"invalid version string will crash", fun() ->
|
{"invalid version string will crash", fun() ->
|
||||||
?assertError({invalid_version_string, "1.1.a"}, emqx_release:vsn_compare("v1.1.a")),
|
?assertError({invalid_version_string, "1.1.a"}, emqx_release:vsn_compare("v1.1.a")),
|
||||||
?assertError(
|
?assertError(
|
||||||
|
|
|
@ -223,7 +223,7 @@ sync_cluster_conf4(Ready) ->
|
||||||
msg => "sync_cluster_conf_success",
|
msg => "sync_cluster_conf_success",
|
||||||
synced_from_node => Node,
|
synced_from_node => Node,
|
||||||
has_deprecated_file => HasDeprecatedFile,
|
has_deprecated_file => HasDeprecatedFile,
|
||||||
local_release => emqx_app:get_release(),
|
local_release => emqx_release:version_with_prefix(),
|
||||||
remote_release => maps:get(release, Info, "before_v5.0.24|e5.0.3"),
|
remote_release => maps:get(release, Info, "before_v5.0.24|e5.0.3"),
|
||||||
data_dir => emqx:data_dir(),
|
data_dir => emqx:data_dir(),
|
||||||
tnx_id => TnxId
|
tnx_id => TnxId
|
||||||
|
|
|
@ -12,10 +12,40 @@ set -euo pipefail
|
||||||
# ensure dir
|
# ensure dir
|
||||||
cd -P -- "$(dirname -- "$0")/../../"
|
cd -P -- "$(dirname -- "$0")/../../"
|
||||||
|
|
||||||
DEFAULT_BOOT='./_build/emqx/rel/emqx/bin/emqx'
|
help() {
|
||||||
|
echo
|
||||||
|
echo "-h|--help: To display this usage info"
|
||||||
|
echo "-b|--boots: boot scripts, comma separate if more than one"
|
||||||
|
echo " default is ./_build/emqx/rel/emqx/bin/emqx"
|
||||||
|
echo "-r|--roles: node (db) roles, comma separate"
|
||||||
|
}
|
||||||
|
|
||||||
BOOT1="${1:-$DEFAULT_BOOT}"
|
BOOT='./_build/emqx/rel/emqx/bin/emqx'
|
||||||
BOOT2="${2:-$BOOT1}"
|
ROLES='core,core'
|
||||||
|
while [ "$#" -gt 0 ]; do
|
||||||
|
case $1 in
|
||||||
|
-h|--help)
|
||||||
|
help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-b|--boots)
|
||||||
|
BOOT="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-r|--roles)
|
||||||
|
ROLES="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unknown option $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
BOOT1="$(echo "$BOOT" | cut -d ',' -f1)"
|
||||||
|
BOOT2="$(echo "$BOOT" | cut -d ',' -f2)"
|
||||||
|
[ -z "$BOOT2" ] && BOOT2="$BOOT1"
|
||||||
|
|
||||||
export IP1='127.0.0.1'
|
export IP1='127.0.0.1'
|
||||||
export IP2='127.0.0.2'
|
export IP2='127.0.0.2'
|
||||||
|
@ -24,6 +54,22 @@ export IP2='127.0.0.2'
|
||||||
NODE1="emqx1@$IP1"
|
NODE1="emqx1@$IP1"
|
||||||
NODE2="emqx2@$IP2"
|
NODE2="emqx2@$IP2"
|
||||||
|
|
||||||
|
ROLE1="$(echo "$ROLES" | cut -d ',' -f1)"
|
||||||
|
ROLE2="$(echo "$ROLES" | cut -d ',' -f2)"
|
||||||
|
export ROLE1 ROLE2
|
||||||
|
|
||||||
|
if [ "$ROLE1" = 'core' ] && [ "$ROLE2" = 'core' ]; then
|
||||||
|
SEEDS="$NODE1,$NODE2"
|
||||||
|
elif [ "$ROLE1" = 'core' ]; then
|
||||||
|
SEEDS="$NODE1"
|
||||||
|
elif [ "$ROLE2" = 'core' ]; then
|
||||||
|
SEEDS="$NODE2"
|
||||||
|
else
|
||||||
|
echo "missing 'core' role in -r|--roles option"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
export SEEDS
|
||||||
|
|
||||||
start_cmd() {
|
start_cmd() {
|
||||||
local index="$1"
|
local index="$1"
|
||||||
local nodehome
|
local nodehome
|
||||||
|
@ -33,11 +79,12 @@ start_cmd() {
|
||||||
mkdir -p "${nodehome}/data" "${nodehome}/log"
|
mkdir -p "${nodehome}/data" "${nodehome}/log"
|
||||||
cat <<-EOF
|
cat <<-EOF
|
||||||
env DEBUG="${DEBUG:-0}" \
|
env DEBUG="${DEBUG:-0}" \
|
||||||
EMQX_CLUSTER__STATIC__SEEDS="[\"$NODE1\",\"$NODE2\"]" \
|
EMQX_NODE_NAME="emqx${index}@\$IP${index}" \
|
||||||
|
EMQX_CLUSTER__STATIC__SEEDS="$SEEDS" \
|
||||||
EMQX_CLUSTER__DISCOVERY_STRATEGY=static \
|
EMQX_CLUSTER__DISCOVERY_STRATEGY=static \
|
||||||
|
EMQX_NODE__DB_ROLE="\$ROLE${index}" \
|
||||||
EMQX_LOG__FILE_HANDLERS__DEFAULT__LEVEL="${EMQX_LOG__FILE_HANDLERS__DEFAULT__LEVEL:-debug}" \
|
EMQX_LOG__FILE_HANDLERS__DEFAULT__LEVEL="${EMQX_LOG__FILE_HANDLERS__DEFAULT__LEVEL:-debug}" \
|
||||||
EMQX_LOG__FILE_HANDLERS__DEFAULT__FILE="${nodehome}/log/emqx.log" \
|
EMQX_LOG__FILE_HANDLERS__DEFAULT__FILE="${nodehome}/log/emqx.log" \
|
||||||
EMQX_NODE_NAME="emqx${index}@\$IP${index}" \
|
|
||||||
EMQX_NODE__COOKIE="${EMQX_NODE__COOKIE:-cookie1}" \
|
EMQX_NODE__COOKIE="${EMQX_NODE__COOKIE:-cookie1}" \
|
||||||
EMQX_LOG_DIR="${nodehome}/log" \
|
EMQX_LOG_DIR="${nodehome}/log" \
|
||||||
EMQX_NODE__DATA_DIR="${nodehome}/data" \
|
EMQX_NODE__DATA_DIR="${nodehome}/data" \
|
||||||
|
|
Loading…
Reference in New Issue