heat/devstack/upgrade/resources.sh
Sirushti Murugesan 334b22929c In-tree grenade support for Heat
The following implements in tree support for grenade upgrade testing
for heat. It includes the expected directory structure to be used for
the external plugin.

For now, we create a simple OS::Heat::RandomString resource
and check whether the stack survives the upgrade.
We should add better tests for upgrades in the future.

Co-Authored-By: Steven Hardy <shardy@redhat.com>
Co-Authored-By: Sergey Kraynev <skraynev@mirantis.com>
Co-Authored-By: Emilien Macchi <emilien.macchi@enovance.com>

partial blueprint upgrade-tests

Change-Id: I0847004a8ac023a113cabaee46896abc823a01da
2015-07-02 17:23:22 +05:30

98 lines
2.4 KiB
Bash
Executable File

#!/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