# functions - Grenade-specific functions # # The following variables are assumed to be defined by certain functions: # # - ``MYSQL_PASSWORD`` # - ``SAVE_DIR`` # Include the common functions GRENADE_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd) source ${TARGET_DEVSTACK_DIR}/functions source ${GRENADE_DIR}/inc/upgrade source ${GRENADE_DIR}/inc/plugin # Save trace setting XTRACE=$(set +o | grep xtrace) set +o xtrace # save_data() dumps service datastores into SAVE_DIR for base or # target release. function save_data { local release=$1 local dir=$2 echo_summary "Dumping $release databases" mkdir -p $SAVE_DIR save_mysql_dbs $release $dir # TODO(sdague): this should go into per project save-state scripts if grep -q 'connection *= *mongo' /etc/ceilometer/ceilometer.conf; then mongodump --db ceilometer --out $SAVE_DIR/ceilometer-dump.$release fi } # Setup Exit Traps for debug purposes trap exit_trap EXIT function exit_trap { # really important that this is the *first* line in this # function, otherwise we corrupt the exit code local r=$? # we don't need tracing during this set +o xtrace if [[ $r -ne 0 ]]; then # unwind the call stack on failures local frame=0 while caller $frame; do ((frame++)); done echo "Exit code: $r" if [[ -x $TARGET_DEVSTACK_DIR/tools/worlddump.py ]]; then $TARGET_DEVSTACK_DIR/tools/worlddump.py -d $LOGDIR sleep 1 fi fi exit $r } # Restore xtrace $XTRACE