%PDF- %PDF-
| Direktori : /proc/self/root/proc/self/root/proc/10578/root/opt/webdir/bin/menu/07_sphinx/ |
| Current File : //proc/self/root/proc/self/root/proc/10578/root/opt/webdir/bin/menu/07_sphinx/functions.sh |
BASE_DIR=/opt/webdir
BIN_DIR=$BASE_DIR/bin
. $BIN_DIR/bitrix_utils.sh || exit 1
bx_process_script=$BIN_DIR/bx-process
bx_host_script=$BIN_DIR/wrapper_ansible_conf
bx_sphinx_script=$BIN_DIR/bx-sphinx
sphinx_menu_dir=$BIN_DIR/menu/07_sphinx
site_menu_dir=$BIN_DIR/menu/06_site
site_menu_fnc=$site_menu_dir/functions.sh
. $site_menu_fnc || exit 1
# get_text variables
[[ -f $sphinx_menu_dir/functions.txt ]] && \
. $sphinx_menu_dir/functions.txt
# get status for sphinx servers
# return
# SPHINX_SERVERS -list of sphinx servers
# SPHINX_SERVERS_CN
# NOSPHINX_SERVERS - list of servers whithout
# NOSPHINX_SERVERS_CN -
get_sphinx_servers_status(){
[[ -z "$POOL_SERVER_LIST" ]] && cache_pool_info
[[ $DEBUG -gt 0 ]] && \
echo "POOL_SERVER_LIST=$POOL_SERVER_LIST"
SPHINX_SERVERS=
SPHINX_SERVERS_CN=0
NOSPHINX_SERVERS=
NOSPHINX_SERVERS_CN=
IFS_BAK=$IFS
IFS=$'\n'
for line in $POOL_SERVER_LIST; do
host_ident=$(echo "$line" | awk -F':' '{print $1}' | sed -e "s/^\s\+//")
host_ip=$(echo "$line" | awk -F':' '{print $2}' | sed -e "s/^\s\+//")
host_hostname=$(echo "$line" | awk -F':' '{print $5}' | sed -e "s/^\s\+//")
sphinx_version=$(echo "$line" | awk -F':' '{print $14}' | sed -e "s/^\s\+//")
if [[ $sphinx_version == "not_installed" ]]; then
NOSPHINX_SERVERS_CN=$(( $NOSPHINX_SERVERS_CN + 1 ))
SPHINX_SERVERS=$SPHINX_SERVERS"$host_hostname:$host_ip:$sphinx_version
"
else
SPHINX_SERVERS_CN=$(( $SPHINX_SERVERS_CN + 1 ))
NOSPHINX_SERVERS=$NOSPHINX_SERVERS"$host_hostname:$host_ip:$sphinx_version
"
fi
done
IFS=$IFS_BAK
IFS_BAK=
}
cache_sphinx_servers_status(){
SPHINX_SERVERS=
SPHINX_SERVERS_CN=0
NOSPHINX_SERVERS=
NOSPHINX_SERVERS_CN=0
SPHINX_SERVERS_CACHE=$CACHE_DIR/sphinx_servers_status.cache
SPHINX_SERVERS_CACHE_LT=3600
test_cache_file $SPHINX_SERVERS_CACHE $SPHINX_SERVERS_CACHE_LT
if [[ $? -gt 0 ]]; then
get_sphinx_servers_status
echo "$SPHINX_SERVERS" > $SPHINX_SERVERS_CACHE
echo "$NOSPHINX_SERVERS" >> $SPHINX_SERVERS_CACHE
else
SPHINX_SERVERS=$(cat $SPHINX_SERVERS_CACHE | grep -v "not_installed")
NOSPHINX_SERVERS=$(cat $SPHINX_SERVERS_CACHE | grep "not_installed")
SPHINX_SERVERS_CN=$(echo "$SPHINX_SERVERS" | grep -vc "^$")
NOSPHINX_SERVERS_CN=$(echo "$NOSPHINX_SERVERS" | grep -vc "^$")
fi
if [[ $DEBUG -gt 0 ]]; then
echo " SPHINX_SERVERS=$SPHINX_SERVERS"
echo " SPHINX_SERVERS_CN=$SPHINX_SERVERS_CN"
echo " NOSPHINX_SERVERS=$NOSPHINX_SERVERS"
echo "NOSPHINX_SERVERS_CN=$NOSPHINX_SERVERS_CN"
fi
}
print_sphinx_servers_status(){
local type=${1:-all}
cache_sphinx_servers_status
if [[ $type == "sphinx" ]]; then
if [[ $SPHINX_SERVERS_CN -eq 0 ]]; then
echo "$SPH0208"
echo
return 1
fi
fi
if [[ $type == "nosphinx" ]]; then
if [[ $NOSPHINX_SERVERS_CN -eq 0 ]]; then
echo "$SPH0209"
echo
return 1
fi
fi
echo "$(get_text "$SPH0001" "$SPHINX_SERVERS_CN")"
echo $MENU_SPACER
printf "%-17s | %20s| %s\n" \
"$SPH0002" "$SPH0003" "$SPH0004"
echo $MENU_SPACER
IFS_BAK=$IFS
IFS=$'\n'
if [[ ( $type == "all" ) || ( $type == "sphinx" ) ]]; then
for line in $SPHINX_SERVERS; do
echo "$line" | \
awk -F':' '{printf "%-17s | %20s| %s\n", $1,$2,$3}'
done
fi
if [[ ( $type == "all" ) || ( $type == "nosphinx" ) ]]; then
for line in $NOSPHINX_SERVERS; do
echo "$line" | \
awk -F':' '{printf "%-17s | %20s| %s\n", $1,$2,$3}'
done
fi
IFS=$IFS_BAK
IFS_BAK=
echo $MENU_SPACER
}