fix various issues
This commit is contained in:
parent
22c454c326
commit
0176e2c319
@ -1,5 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#If no argument is passed, kill the script.
|
#If no argument is passed, kill the script.
|
||||||
|
|
||||||
[[ -z "$*" ]] && echo "This script requires an arguent, use -h for help" && exit
|
[[ -z "$*" ]] && echo "This script requires an arguent, use -h for help" && exit
|
||||||
|
|
||||||
while getopts ":hsi:mrb:t:uUpSRv" opt
|
while getopts ":hsi:mrb:t:uUpSRv" opt
|
||||||
@ -35,7 +36,7 @@ do
|
|||||||
b)
|
b)
|
||||||
re='^[0-9]+$'
|
re='^[0-9]+$'
|
||||||
number_of_backups=$OPTARG
|
number_of_backups=$OPTARG
|
||||||
! [[ $OPTARG =~ $re ]] && echo -e "Error: -b needs to be assigned an interger\n"$number_of_backups" is not an interger" >&2 && exit
|
! [[ $OPTARG =~ $re ]] && echo -e "Error: -b needs to be assigned an interger\n\"""$number_of_backups""\" is not an interger" >&2 && exit
|
||||||
[[ "$number_of_backups" -le 0 ]] && echo "Error: Number of backups is required to be at least 1" && exit
|
[[ "$number_of_backups" -le 0 ]] && echo "Error: Number of backups is required to be at least 1" && exit
|
||||||
;;
|
;;
|
||||||
r)
|
r)
|
||||||
@ -47,8 +48,7 @@ do
|
|||||||
t)
|
t)
|
||||||
re='^[0-9]+$'
|
re='^[0-9]+$'
|
||||||
timeout=$OPTARG
|
timeout=$OPTARG
|
||||||
! [[ $timeout =~ $re ]] && echo -e "Error: -t needs to be assigned an interger\n"$timeout" is not an interger" >&2 && exit
|
! [[ $timeout =~ $re ]] && echo -e "Error: -t needs to be assigned an interger\n\"""$timeout""\" is not an interger" >&2 && exit
|
||||||
[[ "$timeout" -le 50 ]] && echo "Warning: Your timeout is set very low and may lead to premature rollbacks or skips"
|
|
||||||
;;
|
;;
|
||||||
m)
|
m)
|
||||||
mount="true"
|
mount="true"
|
||||||
@ -85,7 +85,7 @@ date=$(date '+%Y_%m_%d_%H_%M_%S')
|
|||||||
mapfile -t list_backups < <(cli -c 'app kubernetes list_backups' | grep "HeavyScript_" | sort -t '_' -Vr -k2,7 | awk -F '|' '{print $2}'| tr -d " \t\r")
|
mapfile -t list_backups < <(cli -c 'app kubernetes list_backups' | grep "HeavyScript_" | sort -t '_' -Vr -k2,7 | awk -F '|' '{print $2}'| tr -d " \t\r")
|
||||||
if [[ ${#list_backups[@]} -gt "number_of_backups" ]]; then
|
if [[ ${#list_backups[@]} -gt "number_of_backups" ]]; then
|
||||||
echo -e "\nDeleting the oldest backup(s) for exceeding limit:"
|
echo -e "\nDeleting the oldest backup(s) for exceeding limit:"
|
||||||
overflow=$(expr ${#list_backups[@]} - $number_of_backups)
|
overflow=$(( ${#list_backups[@]} - "$number_of_backups" ))
|
||||||
mapfile -t list_overflow < <(cli -c 'app kubernetes list_backups' | grep "HeavyScript_" | sort -t '_' -V -k2,7 | awk -F '|' '{print $2}'| tr -d " \t\r" | head -n "$overflow")
|
mapfile -t list_overflow < <(cli -c 'app kubernetes list_backups' | grep "HeavyScript_" | sort -t '_' -V -k2,7 | awk -F '|' '{print $2}'| tr -d " \t\r" | head -n "$overflow")
|
||||||
for i in "${list_overflow[@]}"
|
for i in "${list_overflow[@]}"
|
||||||
do
|
do
|
||||||
@ -97,9 +97,11 @@ fi
|
|||||||
export -f backup
|
export -f backup
|
||||||
|
|
||||||
restore(){
|
restore(){
|
||||||
clear -x
|
clear -x && echo "pulling restore points.."
|
||||||
list_backups=$(cli -c 'app kubernetes list_backups' | grep "HeavyScript_" | sort -t '_' -Vr -k2,7 | tr -d " \t\r" | awk -F '|' '{print $2}' | nl | column -t)
|
list_backups=$(cli -c 'app kubernetes list_backups' | grep "HeavyScript_" | sort -t '_' -Vr -k2,7 | tr -d " \t\r" | awk -F '|' '{print $2}' | nl | column -t)
|
||||||
echo "$list_backups" && read -p "Please type a number: " selection && restore_point=$(echo "$list_backups" | grep ^"$selection" | awk '{print $2}')
|
clear -x
|
||||||
|
[[ -z "$list_backups" ]] && echo "No HeavyScript restore points available" && exit || { title; echo "Choose a restore point" ; }
|
||||||
|
echo "$list_backups" && read -p "Please type a number: " selection && restore_point=$(echo "$list_backups" | grep ^""$selection" " | awk '{print $2}')
|
||||||
[[ -z "$selection" ]] && echo "Your selection cannot be empty" && exit #Check for valid selection. If none, kill script
|
[[ -z "$selection" ]] && echo "Your selection cannot be empty" && exit #Check for valid selection. If none, kill script
|
||||||
[[ -z "$restore_point" ]] && echo "Invalid Selection: $selection, was not an option" && exit #Check for valid selection. If none, kill script
|
[[ -z "$restore_point" ]] && echo "Invalid Selection: $selection, was not an option" && exit #Check for valid selection. If none, kill script
|
||||||
echo -e "\nWARNING:\nThis is NOT guranteed to work\nThis is ONLY supposed to be used as a LAST RESORT\nConsider rolling back your applications instead if possible" || { echo "FAILED"; exit; }
|
echo -e "\nWARNING:\nThis is NOT guranteed to work\nThis is ONLY supposed to be used as a LAST RESORT\nConsider rolling back your applications instead if possible" || { echo "FAILED"; exit; }
|
||||||
@ -116,6 +118,7 @@ export -f restore
|
|||||||
|
|
||||||
mount(){
|
mount(){
|
||||||
clear -x
|
clear -x
|
||||||
|
title
|
||||||
echo -e "1 Mount\n2 Unmount All" && read -p "Please type a number: " selection
|
echo -e "1 Mount\n2 Unmount All" && read -p "Please type a number: " selection
|
||||||
[[ -z "$selection" ]] && echo "Your selection cannot be empty" && exit #Check for valid selection. If none, kill script
|
[[ -z "$selection" ]] && echo "Your selection cannot be empty" && exit #Check for valid selection. If none, kill script
|
||||||
if [[ $selection == "1" ]]; then
|
if [[ $selection == "1" ]]; then
|
||||||
@ -140,8 +143,8 @@ if [[ $selection == "1" ]]; then
|
|||||||
data_name=$(echo "$pvc" | awk '{print $3}')
|
data_name=$(echo "$pvc" | awk '{print $3}')
|
||||||
mount=$(echo "$pvc" | awk '{print $4}')
|
mount=$(echo "$pvc" | awk '{print $4}')
|
||||||
volume_name=$(echo "$pvc" | awk '{print $4}')
|
volume_name=$(echo "$pvc" | awk '{print $4}')
|
||||||
full_path=$(zfs list | grep $volume_name | awk '{print $1}')
|
full_path=$(zfs list | grep "$volume_name" | awk '{print $1}')
|
||||||
echo -e "\nMounting\n"$full_path"\nTo\n/mnt/heavyscript/$data_name" && zfs set mountpoint=/heavyscript/"$data_name" "$full_path" && echo -e "Mounted\n\nUnmount with the following command\nzfs set mountpoint=legacy "$full_path" && rmdir /mnt/heavyscript/"$data_name"\nOr use the Unmount All option\n"
|
echo -e "\nMounting\n$full_path\nTo\n/mnt/heavyscript/$data_name" && zfs set mountpoint=/heavyscript/"$data_name" "$full_path" && echo -e "Mounted\n\nUnmount with the following command\nzfs set mountpoint=legacy "$full_path" && rmdir /mnt/heavyscript/"$data_name"\nOr use the Unmount All option\n"
|
||||||
exit
|
exit
|
||||||
elif [[ $selection == "2" ]]; then
|
elif [[ $selection == "2" ]]; then
|
||||||
mapfile -t unmount_array < <(basename -a /mnt/heavyscript/* | sed "s/*//")
|
mapfile -t unmount_array < <(basename -a /mnt/heavyscript/* | sed "s/*//")
|
||||||
@ -182,6 +185,7 @@ update_apps(){
|
|||||||
mapfile -t array < <(cli -m csv -c 'app chart_release query name,update_available,human_version,human_latest_version,container_images_update_available,status' | grep ",true" | sort)
|
mapfile -t array < <(cli -m csv -c 'app chart_release query name,update_available,human_version,human_latest_version,container_images_update_available,status' | grep ",true" | sort)
|
||||||
[[ -z $array ]] && echo -e "\nThere are no updates available" && return 0 || echo -e "\n${#array[@]} update(s) available"
|
[[ -z $array ]] && echo -e "\nThere are no updates available" && return 0 || echo -e "\n${#array[@]} update(s) available"
|
||||||
[[ -z $timeout ]] && echo -e "\nDefault Timeout: 500" && timeout=500 || echo -e "\nCustom Timeout: $timeout"
|
[[ -z $timeout ]] && echo -e "\nDefault Timeout: 500" && timeout=500 || echo -e "\nCustom Timeout: $timeout"
|
||||||
|
[[ "$timeout" -le 120 ]] && echo "Warning: Your timeout is set low and may lead to premature rollbacks or skips"
|
||||||
for i in "${array[@]}"
|
for i in "${array[@]}"
|
||||||
do
|
do
|
||||||
app_name=$(echo "$i" | awk -F ',' '{print $1}') #print out first catagory, name.
|
app_name=$(echo "$i" | awk -F ',' '{print $1}') #print out first catagory, name.
|
||||||
@ -205,7 +209,7 @@ update_apps(){
|
|||||||
cli -c 'app chart_release upgrade release_name=''"'"$app_name"'"' &> /dev/null && echo -e "Updated\n$old_full_ver\n$new_full_ver" && after_update_actions || echo "FAILED"
|
cli -c 'app chart_release upgrade release_name=''"'"$app_name"'"' &> /dev/null && echo -e "Updated\n$old_full_ver\n$new_full_ver" && after_update_actions || echo "FAILED"
|
||||||
continue
|
continue
|
||||||
else # if status was not STOPPED, stop the app prior to updating
|
else # if status was not STOPPED, stop the app prior to updating
|
||||||
echo -e "\n"$app_name""
|
echo -e "\n$app_name"
|
||||||
[[ "$verbose" == "true" ]] && echo "Stopping prior to update.."
|
[[ "$verbose" == "true" ]] && echo "Stopping prior to update.."
|
||||||
midclt call chart.release.scale "$app_name" '{"replica_count": 0}' &> /dev/null && SECONDS=0 || echo -e "FAILED"
|
midclt call chart.release.scale "$app_name" '{"replica_count": 0}' &> /dev/null && SECONDS=0 || echo -e "FAILED"
|
||||||
while [[ "$status" != "STOPPED" ]]
|
while [[ "$status" != "STOPPED" ]]
|
||||||
@ -246,7 +250,7 @@ if [[ $rollback == "true" ]]; then
|
|||||||
while [[ "0" != "1" ]]
|
while [[ "0" != "1" ]]
|
||||||
do
|
do
|
||||||
(( count++ ))
|
(( count++ ))
|
||||||
status=$(cli -m csv -c 'app chart_release query name,update_available,human_version,human_latest_version,status' | grep ""$app_name"," | awk -F ',' '{print $2}')
|
status=$(cli -m csv -c 'app chart_release query name,update_available,human_version,human_latest_version,status' | grep """$app_name""," | awk -F ',' '{print $2}')
|
||||||
if [[ "$status" == "ACTIVE" && "$startstatus" == "STOPPED" ]]; then
|
if [[ "$status" == "ACTIVE" && "$startstatus" == "STOPPED" ]]; then
|
||||||
[[ "$verbose" == "true" ]] && echo "Returing to STOPPED state.."
|
[[ "$verbose" == "true" ]] && echo "Returing to STOPPED state.."
|
||||||
midclt call chart.release.scale "$app_name" '{"replica_count": 0}' &> /dev/null && echo "Stopped"|| echo "FAILED"
|
midclt call chart.release.scale "$app_name" '{"replica_count": 0}' &> /dev/null && echo "Stopped"|| echo "FAILED"
|
||||||
@ -278,7 +282,7 @@ else
|
|||||||
while [[ "0" != "1" ]]
|
while [[ "0" != "1" ]]
|
||||||
do
|
do
|
||||||
(( count++ ))
|
(( count++ ))
|
||||||
status=$(cli -m csv -c 'app chart_release query name,update_available,human_version,human_latest_version,status' | grep ""$app_name"," | awk -F ',' '{print $2}')
|
status=$(cli -m csv -c 'app chart_release query name,update_available,human_version,human_latest_version,status' | grep """$app_name""," | awk -F ',' '{print $2}')
|
||||||
if [[ "$status" == "STOPPED" ]]; then
|
if [[ "$status" == "STOPPED" ]]; then
|
||||||
[[ "$count" -le 1 && "$verbose" == "true" ]] && echo "Verifying Stopped.." && sleep 15 && continue #if reports stopped on FIRST time through loop, double check
|
[[ "$count" -le 1 && "$verbose" == "true" ]] && echo "Verifying Stopped.." && sleep 15 && continue #if reports stopped on FIRST time through loop, double check
|
||||||
[[ "$count" -le 1 && -z "$verbose" ]] && sleep 15 && continue #if reports stopped on FIRST time through loop, double check
|
[[ "$count" -le 1 && -z "$verbose" ]] && sleep 15 && continue #if reports stopped on FIRST time through loop, double check
|
||||||
@ -304,10 +308,24 @@ fi
|
|||||||
}
|
}
|
||||||
export -f prune
|
export -f prune
|
||||||
|
|
||||||
|
title(){
|
||||||
|
echo ' _ _ _____ _ _ '
|
||||||
|
echo '| | | | / ___| (_) | | '
|
||||||
|
echo '| |_| | ___ __ ___ ___ _\ `--. ___ _ __ _ _ __ | |_'
|
||||||
|
echo "| _ |/ _ \/ _\` \ \ / / | | |\`--. \/ __| '__| | '_ \| __|"
|
||||||
|
echo '| | | | __/ (_| |\ V /| |_| /\__/ / (__| | | | |_) | |_ '
|
||||||
|
echo '\_| |_/\___|\__,_| \_/ \__, \____/ \___|_| |_| .__/ \__|'
|
||||||
|
echo ' __/ | | | '
|
||||||
|
echo ' |___/ |_| '
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
export -f title
|
||||||
|
|
||||||
[[ "$restore" == "true" && "$mount" == "true" ]] && echo -e "The Restore Function(-r)\nand\nMount Function(-m)\nCannot both be called at the same time." && exit
|
[[ "$restore" == "true" && "$mount" == "true" ]] && echo -e "The Restore Function(-r)\nand\nMount Function(-m)\nCannot both be called at the same time." && exit
|
||||||
[[ "$restore" == "true" ]] && restore && exit
|
[[ "$restore" == "true" ]] && restore && exit
|
||||||
[[ "$mount" == "true" ]] && mount && exit
|
[[ "$mount" == "true" ]] && mount && exit
|
||||||
|
[[ "$number_of_backups" -ge 1 && "$sync" == "true" ]] && [[ "$update_all_apps" == "true" || "$update_apps" == "true" ]] && title
|
||||||
[[ "$number_of_backups" -ge 1 ]] && backup
|
[[ "$number_of_backups" -ge 1 ]] && backup
|
||||||
[[ "$sync" == "true" ]] && sync
|
[[ "$sync" == "true" ]] && sync
|
||||||
[[ "$update_all_apps" == "true" || $update_apps == "true" ]] && update_apps
|
[[ "$update_all_apps" == "true" || "$update_apps" == "true" ]] && update_apps
|
||||||
[[ "$prune" == "true" ]] && prune
|
[[ "$prune" == "true" ]] && prune
|
||||||
|
Loading…
Reference in New Issue
Block a user