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").
|
||||
|
||||
%% Enterprise edition
|
||||
-define(EMQX_RELEASE_EE, "5.1.0-rc.1").
|
||||
-define(EMQX_RELEASE_EE, "5.1.0-rc.2").
|
||||
|
||||
%% The HTTP API version
|
||||
-define(EMQX_API_VERSION, "5.0").
|
||||
|
|
|
@ -132,10 +132,13 @@ parse_vsn(Vsn) ->
|
|||
Suffix =
|
||||
case Suffix0 of
|
||||
"" ->
|
||||
%% For the case like "5.1.0"
|
||||
%% "5.1.0"
|
||||
"";
|
||||
[ReleaseStage, Number] ->
|
||||
%% For the case like "5.1.0-rc.1"
|
||||
["g" ++ _] ->
|
||||
%% "5.1.0-g53ab85b1"
|
||||
"";
|
||||
[ReleaseStage, Number | _] ->
|
||||
%% "5.1.0-rc.1" or "5.1.0-rc.1-g53ab85b1"
|
||||
{ReleaseStage, list_to_integer(Number)}
|
||||
end,
|
||||
{{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(newer, emqx_release:vsn_compare("1.1.1-rc.1", "1.1.1"))
|
||||
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() ->
|
||||
?assertError({invalid_version_string, "1.1.a"}, emqx_release:vsn_compare("v1.1.a")),
|
||||
?assertError(
|
||||
|
|
|
@ -223,7 +223,7 @@ sync_cluster_conf4(Ready) ->
|
|||
msg => "sync_cluster_conf_success",
|
||||
synced_from_node => Node,
|
||||
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"),
|
||||
data_dir => emqx:data_dir(),
|
||||
tnx_id => TnxId
|
||||
|
|
|
@ -12,10 +12,40 @@ set -euo pipefail
|
|||
# ensure dir
|
||||
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}"
|
||||
BOOT2="${2:-$BOOT1}"
|
||||
BOOT='./_build/emqx/rel/emqx/bin/emqx'
|
||||
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 IP2='127.0.0.2'
|
||||
|
@ -24,6 +54,22 @@ export IP2='127.0.0.2'
|
|||
NODE1="emqx1@$IP1"
|
||||
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() {
|
||||
local index="$1"
|
||||
local nodehome
|
||||
|
@ -33,11 +79,12 @@ start_cmd() {
|
|||
mkdir -p "${nodehome}/data" "${nodehome}/log"
|
||||
cat <<-EOF
|
||||
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_NODE__DB_ROLE="\$ROLE${index}" \
|
||||
EMQX_LOG__FILE_HANDLERS__DEFAULT__LEVEL="${EMQX_LOG__FILE_HANDLERS__DEFAULT__LEVEL:-debug}" \
|
||||
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_LOG_DIR="${nodehome}/log" \
|
||||
EMQX_NODE__DATA_DIR="${nodehome}/data" \
|
||||
|
|
Loading…
Reference in New Issue