%PDF- %PDF-
| Direktori : /opt/webdir/bin/menu/08_web/ |
| Current File : //opt/webdir/bin/menu/08_web/01_create_web_instance.sh |
PROGNAME=$(basename $0)
PROGPATH=$(dirname $0)
[[ -z $DEBUG ]] && DEBUG=0
. $PROGPATH/functions.sh || exit 1
logo=$(get_logo)
one_step_web(){
local srv="${1}"
# WEB_CLUSTER_TYPE =< fstype
local task_exec="$bx_web_script -a create_web -H $srv --fstype $WEB_CLUSTER_TYPE"
[[ $DEBUG -gt 0 ]] && \
echo "task_exec=$task_exec"
exec_pool_task "$task_exec" \
"$(get_text "$WEB0013" "$srv")"
}
two_step_web(){
local srv="${1}"
local sync_type="${2:-1}"
# WEB_SYNC_TM - last timestamp for site synchronization process
# WEB_CLUSTER_WEB_SERVER - server name with configured lsyncd
local task_exec=
if [[ $sync_type -eq 1 ]]; then
task_exec="$bx_web_script -a web1 -H $srv --fstype $WEB_CLUSTER_TYPE"
task_desc="$(get_text "$WEB0014" "$srv")"
else
task_exec="$bx_web_script -a web2 -H $srv --fstype $WEB_CLUSTER_TYPE"
task_desc="$(get_text "$WEB0015" "$srv")"
fi
[[ $DEBUG -gt 0 ]] && \
echo "task_exec=$task_exec"
exec_pool_task "$task_exec" "$task_desc"
}
web_instance(){
local web_server="${1}"
[[ $DEBUG -gt 0 ]] && echo " web_server=$web_server"
cache_web_servers_status
local web_data=$(echo "$WEB_SERVERS" | egrep -v ":(spare|main):" | \
grep "^$web_server:")
if [[ -z $web_data ]]; then
print_message "$WEB0200" \
"$(get_text "$WEB0206" "$web_server")" "" any_key
exit
fi
# test pool configuration
check_web_options
if [[ $? -gt 0 ]]; then
print_message "$WEB0200" "" "" any_key
exit
fi
# we can split configuration into two stages:
# 1. Preliminary site's data synchronization
# 2. Cluster configuration
# or complete two stages in one step
print_color_text "$WEB0016" blue
echo -e "$WEB0017"
echo -e "$WEB0018"
echo -e "$WEB0019"
echo -e "$WEB0020"
echo -e "$WEB0021"
echo
echo -e "$WEB0022"
echo
if [[ -z $WEB_CLUSTER_WEB_SERVER ]]; then
print_message "$WEB0023" '' '' conf_type 1
if [[ $conf_type -eq 1 ]]; then
one_step_web $web_server
elif [[ $conf_type -eq 2 ]]; then
print_color_text \
"$WEB0024"
two_step_web $web_server 1
else
print_message "$WEB0200" \
"$WEB0025 $conf_type" "" any_key
exit
fi
else
if [[ $WEB_CLUSTER_WEB_SERVER == "$web_server" ]]; then
print_color_text \
"$(get_text "$WEB0026" "$WEB_CLUSTER_WEB_SERVER")"
print_color_text \
"$WEB0027"
two_step_web $web_server 2
else
print_color_text \
"$(get_text "$WEB0028" "$WEB_CLUSTER_WEB_SERVER" "$web_server")"
print_message "$WEB0029" \
"$(get_text "$WEB0030" "$WEB_CLUSTER_WEB_SERVER")" \
"" any_key "n"
if [[ $(echo "$any_key" | grep -wci "y") -gt 0 ]]; then
two_step_web $web_server 1
else
exit
fi
fi
fi
}
sub_menu(){
menu_00="$WEB0201"
menu_01=" $WEB0031"
MENU_SELECT=
until [[ -n "$MENU_SELECT" ]]; do
menu_logo="$WEB0031"
print_menu_header
# print all
print_web_servers_status "(main|spare)" "0"
print_web_servers_status_rtn=$?
# task info
get_task_by_type '(web_cluster|mysql|monitor)' POOL_SUBMENU_TASK_LOCK POOL_SUBMENU_TASK_INFO
print_task_by_type '(web_cluster|mysql|monitor)' "$POOL_SUBMENU_TASK_LOCK" "$POOL_SUBMENU_TASK_INFO"
if [[ ( $POOL_SUBMENU_TASK_LOCK -eq 1 ) || \
( $print_web_servers_status_rtn -gt 0 ) ]]; then
menu_list="\n$menu_00"
else
menu_list="\n$menu_01\n$menu_00"
fi
print_menu
if [[ ( $POOL_SUBMENU_TASK_LOCK -gt 0 ) || \
( $print_web_servers_status_rtn -gt 0 ) ]]; then
print_message "$WEB0202" '' '' MENU_SELECT 0
else
print_message "$WEB0204" '' '' MENU_SELECT
fi
case "$MENU_SELECT" in
0) exit ;;
*) web_instance "$MENU_SELECT" ;;
esac
MENU_SELECT=
done
}
sub_menu