51 lines
1.3 KiB
Bash
51 lines
1.3 KiB
Bash
|
|
function error_exit() {
|
|
echo "Error: $1"
|
|
exit 1
|
|
}
|
|
|
|
function assert_defined() {
|
|
local variable_name=$1
|
|
if [[ ! ${!variable_name} ]]; then
|
|
error_exit "$variable_name is not defined"
|
|
fi
|
|
}
|
|
|
|
network_config_file=./network.cfg
|
|
|
|
if [[ ! -f ${network_config_file} ]]; then
|
|
error_exit "$network_config_file does not exist"
|
|
fi
|
|
source ${network_config_file}
|
|
|
|
assert_defined "machine_domain"
|
|
assert_defined "node_count"
|
|
assert_defined "ssh_user"
|
|
assert_defined "node_network_dir"
|
|
assert_defined "chain_id"
|
|
assert_defined "p2p_port"
|
|
|
|
# Hack until we fix PATH for remote sessions
|
|
so_command=/home/laconic/bin/laconic-so
|
|
|
|
# run_on_all_nodes(machine_name_prefix, command_to_run)
|
|
function run_on_all_nodes() {
|
|
local machine_name_prefix=$1
|
|
local command_to_run=$2
|
|
for (( i=1 ; i<=$node_count ; i++ ));
|
|
do
|
|
local machine_name=${machine_name_prefix}-${i}.${machine_domain}
|
|
echo "${machine_name}:"
|
|
echo "Running: ${command_to_run}"
|
|
ssh ${ssh_user}@${machine_name} ${command_to_run}
|
|
done
|
|
}
|
|
|
|
function change_dir_ownership() {
|
|
local machine_name=$1
|
|
local directory_path=$2
|
|
local command_to_run="sudo chown \$USER: -R ${directory_path}"
|
|
echo "Running: ${command_to_run} on ${machine_name}"
|
|
ssh ${ssh_user}@${machine_name} ${command_to_run}
|
|
}
|