#!/bin/sh

##########################################################################
#   Script description:
#       Upgrade cluster nodes one at a time.  To speed things up, you
#       may prefer to run node-upgrade manually on several nodes at once.
#       
#   History:
#   Date        Name        Modification
#   2020-12-30  J Bacon     Begin
##########################################################################

usage()
{
    printf "Usage: $0 release\n"
    printf "Example: $0 12.2-RELEASE\n"
    exit 1
}


##########################################################################
#   Main
##########################################################################

if [ $# != 1 ]; then
    usage
fi
release=$1

cluster-head-check $0

for node in $(cluster-all-nodes); do
    printf "$node\n"
    ssh -o ConnectTimeout=5 $node 'uname -nr'
    read -p "Upgrade $node to $release? y/[n] " upgrade
    if [ 0$upgrade = 0y ]; then
	node-upgrade $node $release
    fi
done

cat << EOM

Please run the upgrade process manually on the head node.

EOM
case $(auto-ostype) in
FreeBSD)
    printf "\n"
    uname -nr
    read -p "Upgrade head node? y/[n] " upgrade
    if [ 0"$upgrade" = 0y ]; then
	auto-upgrade-base $release
    fi
    ;;
esac
