diff options
Diffstat (limited to 'share/hydractl')
| -rwxr-xr-x | share/hydractl/system-upgrade | 32 | 
1 files changed, 27 insertions, 5 deletions
| diff --git a/share/hydractl/system-upgrade b/share/hydractl/system-upgrade index fdfaceb..4f3e4ec 100755 --- a/share/hydractl/system-upgrade +++ b/share/hydractl/system-upgrade @@ -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 | 
