Rework functional test case infrasatructure

To support multi-instance, two new classes were made:
Stack - represents a stack
Instance - represents an instance

For multi-instance stacks, create multiple Instance objects
for each instance in the stack.

For each instance in a stack, an instance object can be created which
helps validate the individual instance sets up properly.

test_WordPress_Single_Instance_With_EBS.py fails - see issue #226

Change-Id: Iddec87cd1332a9b5796c5c7e7d382ef723c3544e
Signed-off-by: Steven Dake <sdake@redhat.com>
Signed-off-by: Tomas Sedovic <tsedovic@redhat.com>
Signed-off-by: Ian Main <imain@redhat.com>
heat tools : check services running after openstack install

Check all expected services are running after starting them when
doing tools/openstack install, should avoid possible racy behavior
when we assume everything is up and immediately call nova_create_flavors.sh

Ref #225

Change-Id: I87ec0ca31579173cb9218fa79e027fd5b15031f0
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat tools : add ephemeral disk for all flavors

Add ephemeral disk for all flavors in nova_create_flavors.sh
as it's currently not possible for EBS to work without a fixed
mapping to a specific block device name, meaning the EBS templates
will break for micro/tiny if there if no ephemeral disk defined

Change-Id: I801f00aba5b431d30362cd4b34da2f66457220c5
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat tools : nova_create_flavors.sh additional retry logic

Add retry logic in order to make creating flavors more
robust.  Nova rate-limiting frequently causes actions to fail
so wrap all requests in retry/sleep logic and check we can
connect to nova before attempting to change anything

Ref #225

Change-Id: I1b1014df04602935f561c08ba29287061224b5f3
Signed-off-by: Steven Hardy <shardy@redhat.com>
Handle verification errors in create/update in cfn API

If a StackCreate or StackUpdate call fails verification in the engine, we
get an error message returned rather than a stack identifier.

Fixes #224

Change-Id: I5f47f5d0e25e8bc05633d29605adcc8827edd379
Signed-off-by: Zane Bitter <zbitter@redhat.com>
Update documentation on configuring metadata server

The docs need to reflect the fact that the metadata server cannot be
configured and launched until after Nova has created the virtual bridge
interface.

See issue #196

Change-Id: Ia1a004106fa2b535b54c7b88e8ed177e47e72844
Signed-off-by: Zane Bitter <zbitter@redhat.com>
Implement the AWS::S3::Bucket resource type.

An attempt was made to make created bucket names readable and unique.
Names are of the format heat-<resource name>-<random hex>. eg:
heat-S3Bucket-b420d12d02e5d6e46f13

Only the swift v2 auth is currently supported, which means swift will need to
use keystone for auth. This may be a valid assumption for any environment that
is running Heat.

When DeletionPolicy is Delete then an attempt is made to delete the container,
but the stack will still be deleted if container delete fails.

Run the template S3_Single_Instance.template to give it a try.

Functional tests will be coming in a later change.

Change-Id: Ifa2c3c4fcbdb00a44f8c6b347a61f8e1735e8328
heat tests : functional test utils add StackBoto class

Add StackBoto, subclass of Stack, which implements stack
setup using the boto client wrapper, allows us to test
AWS auth and boto client libraries

Ref #220

Change-Id: Id5cb5ab72c7ba2e7accd76a73a94ff8fe45c62fa
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat tests : add new Boto wordpress functional test

Add new test_WordPress_Single_Instance_Boto.py, which
does a wordpress single instance test using StackBoto

Note, this will require a valid /etc/boto.cfg to work,
and probably a recent (git) version of boto

Fixes #220

Change-Id: Ia95de35dc9d1d52ba6b9f4fae333e4fad02762ca
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat : comment credentials in template boto.cfg

Comment out the credentials section in /etc/boto.cfg
this allows us to pass the correct host/endpoint without
having world-readable credentials.  This can then be used
as a template for per-user ~/.boto files if desired

Change-Id: I4cea0cb3b790186ddc041edad0ab4ee4b7e8f956
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat : move boto.cfg to correct location

boto.cfg needs to be under /etc not /etc/heat
or boto won't find it

Change-Id: I0981bb3bd46dd1630633576fc77d085410bf6362
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat : allow boto_client to accept credentials

Allow ec2 credentials to optionally be passed in to boto
rather than purely relying on config-files

Change-Id: Ib821f2bca9bc3f61af521955a9ed52f0059e70e4
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat : test utils, extract ec2 credentials from keystone

For StackBoto extract the ec2 credentials from keystone and
pass them into the client, so the functional tests don't rely
on ec2 credentials from config-files and only need the currently
provided keystone credentials

Change-Id: Ifc959011cc5b9ee77ebf04e380dc6a4059903c6d
Signed-off-by: Steven Hardy <shardy@redhat.com>
Make S3 optional since swiftclient is not available in all distributions

Change-Id: Ic5f61ac41090fd599f01b3eaae4ffb03aac2ebdd
Signed-off-by: Steven Dake <sdake@redhat.com>
Make S3 import except on ImportError rather then all exceptions

Change-Id: Icb98aed65ccba825f8402fdde95ac38b2a12c1a6
Signed-off-by: Steven Dake <sdake@redhat.com>
Update WordPress_Compsed_Instances to new test infrastructure

Change-Id: I08a175d28b99b861ce29b2278e415896e79cf72a
Signed-off-by: Steven Dake <sdake@redhat.com>
Change VerifyClass to have a generic verify_url method

Change-Id: I0e1298e7852e336d6271c4014b11935ac3ce6689
Signed-off-by: Jeff Peeler <jpeeler@redhat.com>
Add 2 instance with EBS test.

Seems to work even.

Change-Id: Ie09d97dc86a68525783f1f9c080fed13e651ef78
Signed-off-by: Ian Main <imain@redhat.com>
Merge "Make S3 import except on ImportError rather then all exceptions"
Change Stack to support user defined parameter

This change allows tests to specify DBUsername/DBPassword if necessary.
The keyname is still looked up in nova and the distribution is retrieved
from the already existing Stack parameter.

Change-Id: I3732ffb685d68c8a72a83247f74ed11a50a74cd1
Signed-off-by: Jeff Peeler <jpeeler@redhat.com>