提交 7ff7cd32 编写于 作者: H HuangWei 提交者: Wu Tao

*: improve the method of modify the config in test (#352)

上级 547f647a
Subproject commit 83959dacc288040f756d269790e2a0e2b85d4224
Subproject commit e726a817ed2ae74056a3f3038c71d2a2ea9414c8
......@@ -516,8 +516,11 @@ function usage_start_onebox()
echo " wait cluster to become healthy, default not wait"
echo " -s|--server_path <str>"
echo " server binary path, default is ${DSN_ROOT}/bin/pegasus_server"
echo " --config_path"
echo " specify the config template path, default is ./src/server/config-server.ini in non-production env"
echo " ./src/server/config.ini in production env"
echo " --use_product_config"
echo " use the product config template: ./src/server/config.ini"
echo " use the product config template"
}
function run_start_onebox()
......@@ -529,7 +532,9 @@ function run_start_onebox()
PARTITION_COUNT=8
WAIT_HEALHY=false
SERVER_PATH=${DSN_ROOT}/bin/pegasus_server
CONFIG_FILE=""
USE_PRODUCT_CONFIG=false
while [[ $# > 0 ]]; do
key="$1"
case $key in
......@@ -563,6 +568,10 @@ function run_start_onebox()
SERVER_PATH="$2"
shift
;;
--config_path)
CONFIG_FILE="$2"
shift
;;
--use_product_config)
USE_PRODUCT_CONFIG=true
;;
......@@ -575,6 +584,7 @@ function run_start_onebox()
esac
shift
done
if [ ! -f ${SERVER_PATH}/pegasus_server ]; then
echo "ERROR: file ${SERVER_PATH}/pegasus_server not exist"
exit 1
......@@ -588,32 +598,36 @@ function run_start_onebox()
run_start_zk
if [ $USE_PRODUCT_CONFIG == "true" ]; then
cp -f ${ROOT}/src/server/config.ini ${ROOT}/config-server.ini
sed -i 's/\<34601\>/@META_PORT@/' ${ROOT}/config-server.ini
sed -i 's/\<34801\>/@REPLICA_PORT@/' ${ROOT}/config-server.ini
sed -i 's/%{cluster.name}/onebox/g' ${ROOT}/config-server.ini
sed -i 's/%{network.interface}/eth0/g' ${ROOT}/config-server.ini
sed -i 's/%{email.address}//g' ${ROOT}/config-server.ini
sed -i 's/%{app.dir}/.\/data/g' ${ROOT}/config-server.ini
sed -i 's/%{slog.dir}//g' ${ROOT}/config-server.ini
sed -i 's/%{data.dirs}//g' ${ROOT}/config-server.ini
sed -i 's@%{home.dir}@'"$HOME"'@g' ${ROOT}/config-server.ini
for i in $(seq ${META_COUNT})
do
meta_port=$((34600+i))
if [ $i -eq 1 ]; then
meta_list="${LOCAL_IP}:$meta_port"
else
meta_list="$meta_list,${LOCAL_IP}:$meta_port"
fi
done
sed -i 's/%{meta.server.list}/'"$meta_list"'/g' ${ROOT}/config-server.ini
sed -i 's/%{zk.server.list}/'"${LOCAL_IP}"':22181/g' ${ROOT}/config-server.ini
sed -i 's/app_name = .*$/app_name = '"$APP_NAME"'/' ${ROOT}/config-server.ini
sed -i 's/partition_count = .*$/partition_count = '"$PARTITION_COUNT"'/' ${ROOT}/config-server.ini
[ -z "${CONFIG_FILE}" ] && CONFIG_FILE=${ROOT}/src/server/config.ini
[ ! -f "${CONFIG_FILE}" ] && { echo "${CONFIG_FILE} is not exist"; exit 1; }
cp -f ${CONFIG_FILE} ${ROOT}/config-server.ini
sed -i 's/\<34601\>/@META_PORT@/' ${ROOT}/config-server.ini
sed -i 's/\<34801\>/@REPLICA_PORT@/' ${ROOT}/config-server.ini
sed -i 's/%{cluster.name}/onebox/g' ${ROOT}/config-server.ini
sed -i 's/%{network.interface}/eth0/g' ${ROOT}/config-server.ini
sed -i 's/%{email.address}//g' ${ROOT}/config-server.ini
sed -i 's/%{app.dir}/.\/data/g' ${ROOT}/config-server.ini
sed -i 's/%{slog.dir}//g' ${ROOT}/config-server.ini
sed -i 's/%{data.dirs}//g' ${ROOT}/config-server.ini
sed -i 's@%{home.dir}@'"$HOME"'@g' ${ROOT}/config-server.ini
for i in $(seq ${META_COUNT})
do
meta_port=$((34600+i))
if [ $i -eq 1 ]; then
meta_list="${LOCAL_IP}:$meta_port"
else
meta_list="$meta_list,${LOCAL_IP}:$meta_port"
fi
done
sed -i 's/%{meta.server.list}/'"$meta_list"'/g' ${ROOT}/config-server.ini
sed -i 's/%{zk.server.list}/'"${LOCAL_IP}"':22181/g' ${ROOT}/config-server.ini
sed -i 's/app_name = .*$/app_name = '"$APP_NAME"'/' ${ROOT}/config-server.ini
sed -i 's/partition_count = .*$/partition_count = '"$PARTITION_COUNT"'/' ${ROOT}/config-server.ini
else
sed "s/@LOCAL_IP@/${LOCAL_IP}/g;s/@APP_NAME@/${APP_NAME}/g;s/@PARTITION_COUNT@/${PARTITION_COUNT}/g" \
${ROOT}/src/server/config-server.ini >${ROOT}/config-server.ini
[ -z "${CONFIG_FILE}" ] && CONFIG_FILE=${ROOT}/src/server/config-server.ini
[ ! -f "${CONFIG_FILE}" ] && { echo "${CONFIG_FILE} is not exist"; exit 1; }
sed "s/@LOCAL_IP@/${LOCAL_IP}/g;s/@APP_NAME@/${APP_NAME}/g;s/@PARTITION_COUNT@/${PARTITION_COUNT}/g" \
${CONFIG_FILE} >${ROOT}/config-server.ini
fi
echo "starting server"
......
......@@ -196,6 +196,8 @@ delay_for_fd_timeout_on_start = false
empty_write_disabled = false
allow_non_idempotent_write = true
duplication_disabled = true
prepare_timeout_ms_for_secondaries = 1000
prepare_timeout_ms_for_potential_secondaries = 3000
prepare_decree_gap_for_debug_logging = 10000
......
......@@ -32,16 +32,18 @@ protected:
chdir(global_env::instance()._pegasus_root.c_str());
system("./run.sh clear_onebox");
system("cp src/server/config-server.ini config-server-test-recovery.ini");
system("sed -i \"/^meta_state_service_type/c meta_state_service_type = "
"meta_state_service_simple\" src/server/config-server.ini");
"meta_state_service_simple\" config-server-test-recovery.ini");
system("sed -i \"/^distributed_lock_service_type/c distributed_lock_service_type = "
"distributed_lock_service_simple\" src/server/config-server.ini");
"distributed_lock_service_simple\" config-server-test-recovery.ini");
system("sed -i \"/^server_list/c server_list = @LOCAL_IP@:34601\" "
"src/server/config-server.ini");
"config-server-test-recovery.ini");
system("sed -i \"/^perf_counter_enable_logging/c perf_counter_enable_logging = false\" "
"src/server/config-server.ini");
"config-server-test-recovery.ini");
system("./run.sh start_onebox -m 1 -r 3");
system(
"./run.sh start_onebox -m 1 -r 3 --config_path config-server-test-recovery.ini");
std::cout << "sleep for a while to wait the new onebox start" << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(3));
......@@ -80,7 +82,6 @@ protected:
{
chdir(global_env::instance()._pegasus_root.c_str());
system("./run.sh clear_onebox");
system("git checkout -- src/server/config-server.ini");
system("./run.sh start_onebox -w");
chdir(global_env::instance()._working_dir.c_str());
}
......
......@@ -24,14 +24,16 @@ public:
chdir(pegasus_root_dir.c_str());
cluster_name = dsn::utils::filesystem::path_combine(pegasus_root_dir, backup_data_dir);
system("pwd");
// modify the config to enable backup, and restart onebox
system("./run.sh clear_onebox");
system("cp src/server/config-server.ini config-server-test-restore.ini");
system("sed -i \"/^cold_backup_disabled/c cold_backup_disabled = false\" "
"src/server/config-server.ini");
"config-server-test-restore.ini");
std::string cmd = "sed -i \"/^cold_backup_root/c cold_backup_root = " + cluster_name;
cmd = cmd + std::string("\" src/server/config-server.ini");
cmd = cmd + std::string("\" config-server-test-restore.ini");
system(cmd.c_str());
system("./run.sh clear_onebox");
system("./run.sh start_onebox");
system("./run.sh start_onebox --config_path config-server-test-restore.ini");
std::this_thread::sleep_for(std::chrono::seconds(3));
std::vector<dsn::rpc_address> meta_list;
......@@ -72,7 +74,6 @@ public:
{
chdir(global_env::instance()._pegasus_root.c_str());
system("./run.sh clear_onebox");
system("git checkout -- src/server/config-server.ini");
system("./run.sh start_onebox -w");
std::string cmd = "rm -rf " + backup_data_dir;
system(cmd.c_str());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册