github.com/rochacon/deis@v1.0.2-0.20150903015341-6839b592a1ff/tests/bin/accept/commands/upgrade/script (about)

     1  #!/usr/bin/env bash
     2  
     3  # To implement this command, edit the "Command implementation" section below. 
     4  
     5  # Usage
     6  # -----
     7  
     8  # Comments prefixed with `#/` are managed by stubbs.
     9  # The `command` and `usage` comments describe the command
    10  # and show its options.
    11  # 
    12  #/ command: accept:upgrade: "Tests upgrade path for Deis"
    13  #/ usage: rerun accept:upgrade  --provider <vagrant>  --from <> [ --to <master>] [ --skip-cleanup <false>]  --upgrade-style <graceful> 
    14  
    15  # Load common functions
    16  # ---------------------
    17  
    18  # Load the function library for this module.
    19  # This loads rerun functions, too.
    20  . $RERUN_MODULE_DIR/lib/functions.sh upgrade || { 
    21    echo >&2 "Failed loading function library." ; exit 1 ; 
    22  }
    23  
    24  # Error handling
    25  # ---------------
    26  
    27  # This script is designed to _fail-fast_.
    28  
    29  # Trap errors and exit. The call to `rerun_die` will print the
    30  # the error message and exit with the error command exit status. 
    31  
    32  trap 'rerun_die $? "*** command failed: tests:upgrade. ***"' ERR
    33  
    34  # Run [set] `nounset` to treat unset variables as errors. Set [pipefail]
    35  # so a pipeline return status is the value of the last 
    36  # (rightmost) command to exit with non-zero status.
    37  #
    38  # [set]: http://ss64.com/bash/set.html
    39  # [pipefail]: http://www.gnu.org/software/bash/manual/html_node/Pipelines.html
    40  
    41  set -o nounset -o pipefail
    42  
    43  # Command variables
    44  # -----------------
    45  
    46  # This command script can access the following variables
    47  # declared by `rerun` or by the option parser function.
    48  
    49  #/ rerun-variables: RERUN, RERUN_VERSION, RERUN_MODULES, RERUN_MODULE_DIR
    50  #/ option-variables: PROVIDER FROM TO SKIP_CLEANUP UPGRADE_STYLE
    51  
    52  # The `rerun_options_parse` function processes the command line
    53  # arguments. Each accepted command line flag results in setting 
    54  # one the corresponding option variables.
    55  
    56  rerun_options_parse "$@"
    57  
    58  trap destroy-cluster EXIT
    59  
    60  # Command implementation
    61  # ----------------------
    62  
    63  function healthcheck {
    64    rerun_log "Running healthcheck of previously deployed app.."
    65  
    66    if ! curl -s "http://testing.${DEIS_TEST_DOMAIN}" | grep -q "Powered by Deis"; then
    67      rerun_log error "Failed to pass healthcheck."
    68      return 1
    69    else
    70      rerun_log info "Healthcheck succeeded."
    71      return 0
    72    fi
    73  }
    74  
    75  setup-provider "${PROVIDER}"
    76  setup-upgrader "${UPGRADE_STYLE}"
    77  
    78  setup-provider-dependencies
    79  
    80  destroy-cluster
    81  
    82  setup-clients "${FROM}"
    83  
    84  make discovery-url
    85  
    86  create-cluster
    87  
    88  deploy-deis "${FROM}"
    89  
    90  make test-smoke
    91  
    92  upgrade-deis "${FROM}" "${TO}"
    93  
    94  healthcheck