4849c7a521
Change-Id: I913dd23ee288fd52dd7d7e0bbd858d6e2e5e8ab0 Closes-Bug: #1627229
105 lines
3.2 KiB
Bash
105 lines
3.2 KiB
Bash
#!/bin/bash
|
|
#
|
|
#
|
|
# ``plugin.sh`` calls the following methods in the sourced driver:
|
|
#
|
|
# - nb_db_driver_install_server
|
|
# - nb_db_driver_install_client
|
|
# - nb_db_driver_start_server
|
|
# - nb_db_driver_stop_server
|
|
# - nb_db_driver_clean
|
|
# - nb_db_driver_configure
|
|
|
|
HOSTNAME=`hostname -f`
|
|
|
|
if is_ubuntu ; then
|
|
UBUNTU_RELEASE_BASE_NUM=`lsb_release -r | awk '{print $2}' | cut -d '.' -f 1`
|
|
fi
|
|
|
|
function _zookeeper_env {
|
|
export ZOOKEEPER_DATA_DIR="/var/lib/zookeeper"
|
|
export ZOOKEEPER_LOG_DIR="/var/log/zookeeper"
|
|
export ZOOKEEPER_DIR="/etc/zookeeper"
|
|
local SERVER_LIST=$(echo $REMOTE_DB_HOSTS | sed 's/,/ /g')
|
|
export ZOOKEEPER_SERVER_PORT=$(echo $SERVER_LIST | awk -F: 'BEGIN {RS=" "} { print $2 }' | sort | uniq | tail -1)
|
|
}
|
|
|
|
function update_key_in_file {
|
|
key=$1; shift
|
|
value=$1; shift
|
|
file=$1; shift
|
|
local result=`grep -c "^ *$key *=" $file 2> /dev/null`
|
|
if [ $result -gt 0 ]; then
|
|
sudo sed -i "/^ *$key *=/c $key=$value" $file
|
|
else
|
|
sudo sh -c "echo \"$key=$value\" >> $file"
|
|
fi
|
|
}
|
|
|
|
function nb_db_driver_install_server {
|
|
if is_service_enabled df-zookeeper-server ; then
|
|
_zookeeper_env
|
|
echo "Installing Zookeeper server"
|
|
sudo mkdir -p $ZOOKEEPER_DATA_DIR
|
|
sudo mkdir -p $ZOOKEEPER_LOG_DIR
|
|
if is_ubuntu; then
|
|
ZOOKEEPER_CONF_DIR="${ZOOKEEPER_DIR}/conf"
|
|
install_package zookeeperd
|
|
ZOOKEEPER_CONF_FILE="${ZOOKEEPER_CONF_DIR}/zoo.cfg"
|
|
elif is_fedora; then
|
|
ZOOKEEPER_CONF_DIR="${ZOOKEEPER_DIR}"
|
|
install_package zookeeper
|
|
ZOOKEEPER_CONF_SAMPLE_FILE="${ZOOKEEPER_CONF_DIR}/zoo_sample.cfg"
|
|
ZOOKEEPER_CONF_FILE="${ZOOKEEPER_CONF_DIR}/zoo.cfg"
|
|
sudo cp $ZOOKEEPER_CONF_SAMPLE_FILE $ZOOKEEPER_CONF_FILE
|
|
else
|
|
die $LINENO "Other distributions are not supported"
|
|
fi
|
|
|
|
echo "Configuring Zookeeper"
|
|
if [ -f $ZOOKEEPER_CONF_FILE ] ; then
|
|
update_key_in_file dataDir "${ZOOKEEPER_DATA_DIR}" $ZOOKEEPER_CONF_FILE
|
|
update_key_in_file dataLogDir "${ZOOKEEPER_LOG_DIR}" $ZOOKEEPER_CONF_FILE
|
|
update_key_in_file clientPort "${ZOOKEEPER_SERVER_PORT}" $ZOOKEEPER_CONF_FILE
|
|
update_key_in_file "server.1" "${HOSTNAME}:2888:3888" $ZOOKEEPER_CONF_FILE
|
|
fi
|
|
sudo systemctl restart zookeeper
|
|
sudo sh -c "echo 1 >$ZOOKEEPER_CONF_DIR/myid"
|
|
fi
|
|
}
|
|
|
|
function nb_db_driver_clean {
|
|
if is_ubuntu; then
|
|
uninstall_package -y zookeeperd
|
|
uninstall_package -y zookeeper
|
|
uninstall_package -y libzookeeper-java
|
|
elif is_fedora; then
|
|
uninstall_package -y zookeeper
|
|
fi
|
|
if [ -f "/etc/systemd/system/zookeeper.service" ] ; then
|
|
sudo systemctl daemon-reload
|
|
fi
|
|
}
|
|
|
|
function nb_db_driver_install_client {
|
|
echo 'Zookeeper client sdk is in the requirements file.'
|
|
}
|
|
|
|
function nb_db_driver_start_server {
|
|
if is_service_enabled df-zookeeper-server ; then
|
|
_zookeeper_env
|
|
start_service zookeeper
|
|
fi
|
|
}
|
|
|
|
function nb_db_driver_stop_server {
|
|
if is_service_enabled df-zookeeper-server ; then
|
|
_zookeeper_env
|
|
stop_service zookeeper
|
|
fi
|
|
}
|
|
|
|
function nb_db_driver_configure {
|
|
:
|
|
}
|