summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdevstack/upgrade/resources.sh97
-rw-r--r--devstack/upgrade/settings4
-rwxr-xr-xdevstack/upgrade/shutdown.sh33
-rw-r--r--devstack/upgrade/templates/random_string.yaml4
-rwxr-xr-xdevstack/upgrade/upgrade.sh88
-rwxr-xr-xheat_upgradetests/post_test_hook.sh0
-rwxr-xr-xheat_upgradetests/pre_test_hook.sh0
7 files changed, 226 insertions, 0 deletions
diff --git a/devstack/upgrade/resources.sh b/devstack/upgrade/resources.sh
new file mode 100755
index 000000000..2a0d1bf95
--- /dev/null
+++ b/devstack/upgrade/resources.sh
@@ -0,0 +1,97 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+set -o errexit
+
+source $GRENADE_DIR/grenaderc
+source $GRENADE_DIR/functions
+
+source $TOP_DIR/openrc admin admin
+
+set -o xtrace
+
+HEAT_USER=heat_grenade
+HEAT_PROJECT=heat_grenade
+HEAT_PASS=pass
+
+function _heat_set_user {
+ OS_TENANT_NAME=$HEAT_PROJECT
+ OS_USERNAME=$HEAT_USER
+ OS_PASSWORD=$HEAT_PASS
+}
+
+function create {
+ # creates a tenant for the server
+ eval $(openstack project create -f shell -c id $HEAT_PROJECT)
+ if [[ -z "$id" ]]; then
+ die $LINENO "Didn't create $HEAT_PROJECT project"
+ fi
+ resource_save heat project_id $id
+
+ # creates the user, and sets $id locally
+ eval $(openstack user create $HEAT_USER \
+ --project $id \
+ --password $HEAT_PASS \
+ -f shell -c id)
+ if [[ -z "$id" ]]; then
+ die $LINENO "Didn't create $HEAT_USER user"
+ fi
+ resource_save heat user_id $id
+ _heat_set_user
+
+ local stack_name='grenadine'
+ resource_save heat stack_name $stack_name
+ local loc=`dirname $BASH_SOURCE`
+ heat stack-create -f $loc/templates/random_string.yaml $stack_name
+}
+
+function verify {
+ _heat_set_user
+ stack_name=$(resource_get heat stack_name)
+ heat stack-show $stack_name
+ # TODO(sirushtim): Create more granular checks for Heat.
+}
+
+function verify_noapi {
+ # TODO(sirushtim): Write tests to validate liveness of the resources
+ # it creates during possible API downtime.
+ :
+}
+
+function destroy {
+ _heat_set_user
+ heat stack-delete $(resource_get heat stack_name)
+
+ source $TOP_DIR/openrc admin admin
+ local user_id=$(resource_get heat user_id)
+ local project_id=$(resource_get heat project_id)
+ openstack user delete $user_id
+ openstack project delete $project_id
+}
+
+# Dispatcher
+case $1 in
+ "create")
+ create
+ ;;
+ "verify_noapi")
+ verify_noapi
+ ;;
+ "verify")
+ verify
+ ;;
+ "destroy")
+ destroy
+ ;;
+esac
diff --git a/devstack/upgrade/settings b/devstack/upgrade/settings
new file mode 100644
index 000000000..9d05220e1
--- /dev/null
+++ b/devstack/upgrade/settings
@@ -0,0 +1,4 @@
+register_project_for_upgrade heat
+register_db_to_save heat
+devstack_localrc base enable_service h-api h-api-cfn h-api-cw h-eng heat tempest ceilometer-alarm-evaluator ceilometer-alarm-notifier ceilometer-anotification
+devstack_localrc target enable_service h-api h-api-cfn h-api-cw h-eng heat tempest ceilometer-alarm-evaluator ceilometer-alarm-notifier ceilometer-anotification
diff --git a/devstack/upgrade/shutdown.sh b/devstack/upgrade/shutdown.sh
new file mode 100755
index 000000000..7e2f9ebb4
--- /dev/null
+++ b/devstack/upgrade/shutdown.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+set -o errexit
+
+source $GRENADE_DIR/grenaderc
+source $GRENADE_DIR/functions
+
+# We need base DevStack functions for this
+source $BASE_DEVSTACK_DIR/functions
+source $BASE_DEVSTACK_DIR/stackrc # needed for status directory
+source $BASE_DEVSTACK_DIR/lib/tls
+source $BASE_DEVSTACK_DIR/lib/heat
+
+set -o xtrace
+
+stop_heat
+
+SERVICES_DOWN="heat-api heat-engine heat-api-cfn heat-api-cloudwatch"
+
+# sanity check that services are actually down
+ensure_services_stopped $SERVICES_DOWN
diff --git a/devstack/upgrade/templates/random_string.yaml b/devstack/upgrade/templates/random_string.yaml
new file mode 100644
index 000000000..df1e5c3b0
--- /dev/null
+++ b/devstack/upgrade/templates/random_string.yaml
@@ -0,0 +1,4 @@
+heat_template_version: 2014-10-16
+resources:
+ random_string:
+ type: OS::Heat::RandomString
diff --git a/devstack/upgrade/upgrade.sh b/devstack/upgrade/upgrade.sh
new file mode 100755
index 000000000..527512bde
--- /dev/null
+++ b/devstack/upgrade/upgrade.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# ``upgrade-heat``
+
+echo "*********************************************************************"
+echo "Begin $0"
+echo "*********************************************************************"
+
+# Clean up any resources that may be in use
+cleanup() {
+ set +o errexit
+
+ echo "*********************************************************************"
+ echo "ERROR: Abort $0"
+ echo "*********************************************************************"
+
+ # Kill ourselves to signal any calling process
+ trap 2; kill -2 $$
+}
+
+trap cleanup SIGHUP SIGINT SIGTERM
+
+# Keep track of the grenade directory
+RUN_DIR=$(cd $(dirname "$0") && pwd)
+
+# Source params
+source $GRENADE_DIR/grenaderc
+
+# Import common functions
+source $GRENADE_DIR/functions
+
+# This script exits on an error so that errors don't compound and you see
+# only the first error that occurred.
+set -o errexit
+
+# Upgrade Heat
+# ============
+
+# Duplicate some setup bits from target DevStack
+source $TARGET_DEVSTACK_DIR/functions
+source $TARGET_DEVSTACK_DIR/stackrc
+source $TARGET_DEVSTACK_DIR/lib/tls
+source $TARGET_DEVSTACK_DIR/lib/stack
+source $TARGET_DEVSTACK_DIR/lib/heat
+
+# Print the commands being run so that we can see the command that triggers
+# an error. It is also useful for following allowing as the install occurs.
+set -o xtrace
+
+# Save current config files for posterity
+[[ -d $SAVE_DIR/etc.heat ]] || cp -pr $HEAT_CONF_DIR $SAVE_DIR/etc.heat
+
+# install_heat()
+stack_install_service heat
+install_heatclient
+install_heat_other
+
+# calls upgrade-heat for specific release
+upgrade_project heat $RUN_DIR $BASE_DEVSTACK_BRANCH $TARGET_DEVSTACK_BRANCH
+
+# Simulate init_heat()
+create_heat_cache_dir
+
+HEAT_BIN_DIR=$(dirname $(which heat-manage))
+$HEAT_BIN_DIR/heat-manage --config-file $HEAT_CONF db_sync || die $LINENO "DB sync error"
+
+# Start Heat
+start_heat
+
+# Don't succeed unless the services come up
+ensure_services_started heat-api heat-engine heat-api-cloudwatch heat-api-cfn
+
+set +o xtrace
+echo "*********************************************************************"
+echo "SUCCESS: End $0"
+echo "*********************************************************************"
diff --git a/heat_upgradetests/post_test_hook.sh b/heat_upgradetests/post_test_hook.sh
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/heat_upgradetests/post_test_hook.sh
diff --git a/heat_upgradetests/pre_test_hook.sh b/heat_upgradetests/pre_test_hook.sh
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/heat_upgradetests/pre_test_hook.sh