# Parameters
TMP="/tmp"
STATE="$TMP/system-upgrade"
+ENV="$TMP/system-upgrade-env"
# Command line arguments
BASENAME="`basename $0`"
echo $STAGE > $STATE
}
-# Prepare the environment for a system upgrade
-function hydra_system_upgrade_prepare {
+# Set and check upgrade environment
+function hydra_system_upgrade_env {
# Set initial state
- hydra_system_upgrade_stage prepare
+ hydra_system_upgrade_stage env
# Available releases
#release="`facter lsbdistcodename`" # this doesn't work on squeeze
# Is a virtual machine?
virtual="`facter 2> /dev/null | grep virtual | sed -e 's/virtual => //'`"
+ # Save environment
+ echo "release=$release" > $ENV
+ echo "nextrelease=$nextrelease" >> $ENV
+ echo "nextrelease=$nextrelease" >> $ENV
+ echo "virtual=$virtual" >> $ENV
+
# Check release
if [ "$?" != "0" ]; then
echo "Unsupported release"
fi
fi
+ # Set next state
+ hydra_system_upgrade_stage prepare
+}
+
+# Prepare the environment for a system upgrade
+function hydra_system_upgrade_prepare {
# Ensure puppet is stopped during the process
echo "Disabling puppet during the upgrade..."
hydractl puppet-disable
apt-get remove colord -y
fi
+ # Set next state
hydra_system_upgrade_stage download
}
hydra_system_upgrade_stage upgrade
}
-# Prepare for the upgrade
+# Initialize
if [ ! -e "$STATE" ]; then
- hydra_system_upgrade_prepare $*
+ hydra_system_upgrade_env
else
# Resume from the previous state
STAGE="`cat $STATE`"
+ source $ENV
+ hydra_system_upgrade_$STATE
+fi
+
+# Prepare
+if [ "$STAGE" == "env" ]; then
+ hydra_system_upgrade_prepare
fi
# Download packages
# Teardown
rm -f $STATE
+rm -f $ENV