]> gitweb.fluxo.info Git - hydra.git/commitdiff
Always initialize environment on system-upgrade
authorSilvio Rhatto <rhatto@riseup.net>
Wed, 25 Dec 2013 11:59:19 +0000 (09:59 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Wed, 25 Dec 2013 11:59:19 +0000 (09:59 -0200)
share/hydractl/system-upgrade

index fdfaceb9cab80b4e7fa59d7bcdd0b847691cbf1e..4f3e4ecd217fcd98f8efd20a53b3d700039a8800 100755 (executable)
@@ -23,6 +23,7 @@ hydra_config_load
 # Parameters
 TMP="/tmp"
 STATE="$TMP/system-upgrade"
+ENV="$TMP/system-upgrade-env"
 
 # Command line arguments
 BASENAME="`basename $0`"
@@ -34,10 +35,10 @@ function hydra_system_upgrade_stage {
   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
@@ -47,6 +48,12 @@ function hydra_system_upgrade_prepare {
   # 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"
@@ -66,6 +73,12 @@ function hydra_system_upgrade_prepare {
     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
@@ -87,6 +100,7 @@ function hydra_system_upgrade_prepare {
     apt-get remove colord  -y
   fi
 
+  # Set next  state
   hydra_system_upgrade_stage download
 }
 
@@ -101,12 +115,19 @@ function hydra_system_upgrade_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
@@ -160,3 +181,4 @@ fi
 
 # Teardown
 rm -f $STATE
+rm -f $ENV