#!/usr/bin/env bash

Test swift via the python-openstackclient command line

echo "*********************************************************************"
echo "Begin DevStack Exercise: $0"
echo "*********************************************************************"

This script exits on an error so that errors don't compound and you see only the first error that occurred.

set -o errexit

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


Keep track of the current directory

EXERCISE_DIR=$(cd $(dirname "$0") && pwd)
TOP_DIR=$(cd $EXERCISE_DIR/..; pwd)

Import common functions

source $TOP_DIR/functions

Import configuration

source $TOP_DIR/openrc

Import exercise configuration

source $TOP_DIR/exerciserc

If swift is not enabled we exit with exitcode 55 which mean exercise is skipped.

is_service_enabled s-proxy || exit 55

Container name


Testing Swift

Check if we have to swift via keystone

openstack object store account show || die $LINENO "Failure getting account status"

We start by creating a test container

openstack container create $CONTAINER || die $LINENO "Failure creating container $CONTAINER"

add a file into it.

openstack object create $CONTAINER $OBJECT || die $LINENO "Failure uploading file to container $CONTAINER"

list the objects

openstack object list $CONTAINER || die $LINENO "Failure listing contents of container $CONTAINER"

delete the object first

openstack object delete $CONTAINER $OBJECT || die $LINENO "Failure deleting object $OBJECT in container $CONTAINER"

delete the container

openstack container delete $CONTAINER || die $LINENO "Failure deleting container $CONTAINER"

set +o xtrace
echo "*********************************************************************"
echo "SUCCESS: End DevStack Exercise: $0"
echo "*********************************************************************"