%PDF- %PDF-
| Direktori : /opt/webdir/bin/menu/01_hosts/ |
| Current File : //opt/webdir/bin/menu/01_hosts/09_rename_host.sh |
#!/bin/bash
PROGNAME=$(basename $0)
PROGPATH=$(dirname $0)
. $PROGPATH/functions.sh || exit 1
change_hostname() {
local chhost="$1"
if [[ -z "$chhost" ]]; then
print_message "$HM0200" \
"$HM0044" "" any_key
return 1
fi
# test if defined host exist in server list (small check without name resolution)
[[ -z "$POOL_SERVER_LIST" ]] && cache_pool_info
local host_iden=$(echo "$POOL_SERVER_LIST" | \
grep "\(^$chhost:\|:$chhost:\|=$chhost\)" | \
awk -F':' '{print $1}')
[[ $DEBUG -gt 0 ]] && echo "$POOL_SERVER_LIST"
if [[ -z $host_iden ]]; then
print_message "$HM203" "$(get_text "$HM0012" "$chhost")" \
"" answer "n"
[[ $(echo "$answer" | grep -iwc "n") -gt 0 ]] && exit 1
return 1
fi
print_message "$(get_text "$HM0095" "$chhost")" \
"" "" newhost
test_hostname "$newhost"
test_hostname_rtn=$?
[[ $test_hostname_rtn -gt 0 ]] && return $test_hostname_rtn
if [[ $newhost == "$chhost" ]]; then
print_message "$HM0200" \
"$HM0097" \
"" any_key
return 1
fi
if_hostname_exists_in_the_pool "$newhost"
if [[ $? -gt 0 ]]; then
print_message "$HM0200" \
"$(get_text "$HM0096" "$newhost")" \
"" any_key
return 1
fi
print_message "$(get_text "$HM0092" "$host_iden")" \
"" "" _confirm 'n'
if [[ $( echo "$_confirm" | grep -wci 'y' ) -gt 0 ]]; then
cmd="$ansible_wrapper -a change_hostname -H $host_iden --hostname $newhost"
if [[ $DEBUG -gt 0 ]]; then
echo "cmd=$cmd"
fi
exec_pool_task "$cmd" "change hostname"
fi
return 0
}
# create host in the ansible config and copy ssh key on it
sub_menu() {
host_logo="$HM0093"
menu_00="$HM0042"
menu_01=" $HM0093"
HOST_MENU_SELECT=
until [[ -n "$HOST_MENU_SELECT" ]]; do
clear
echo -e "\t\t\t" $logo
echo -e "\t\t\t" $host_logo
echo
print_pool_info
# is there some task which can interrupted by adding new host (iptables and so on)
get_task_by_type '(common|monitor|mysql|update)' POOL_HOST_TASK_LOCK POOL_HOST_TASK_LIST
print_task_by_type '(common|monitor|mysql|update)' "$POOL_HOST_TASK_LOCK" "$POOL_HOST_TASK_LIST"
if [[ $POOL_HOST_TASK_LOCK -eq 1 ]]; then
menu_list="\n\t$menu_00"
else
menu_list="\n\t$menu_00\n\t$menu_01"
fi
print_menu
if [[ $POOL_HOST_TASK_LOCK -eq 1 ]]; then
print_message "$HM0202" '' '' HOST_MENU_SELECT 0
else
print_message "$HM0043" '' '' HOST_MENU_SELECT
fi
# process selection
case "$HOST_MENU_SELECT" in
"0") exit ;;
*) change_hostname "$HOST_MENU_SELECT" ;;
esac
[[ $? -eq 0 ]] && POOL_SERVER_LIST=
HOST_MENU_SELECT=
done
}
sub_menu