Implement OS::Cinder::Volume

It creates a new resource type allowing to pass cinder specific
arguments in the template.

Change-Id: I1e8512892fdc7f141f91580bfca4e370b0740a56
Implement CinderVolume.FnGetAtt

This allows retrieving Cinder properties in the template.

Change-Id: Id20d4d2cbd5f78ad4412f6260d66b43bd2ef6596
Merge "Update install_venv_common from oslo-incubator"
Merge "Copy the RHEL6 eventlet workaround from Oslo"
Use python logging for loguserdata.py, log to console

Python logging is configured with a stream handler and should
also replicate the previous logging to 0600 /var/log/heat-provision.log

By logging to a stream handler cloud-init will write to its log,
which will show up in the server console log. This means that heat
provisioning can now be monitored without needing to log in with:

nova console-log <servername>

This change also touches the file /var/lib/heat-cfntools/provision-finished
instead of also writing a datestamp to it, which is redundant.

Change-Id: Id0312bd2216a83753df601b17ad16d5355cdb11d
Merge "Implement OS::Cinder::Volume"
Adds dns_nameserver to OS::Quantum::Subnet.

You can specify list of dns_nameserver in template file when you creating new
subnet using Quantum resources.

Change-Id: I8978eab11b3ba9fe469c220fc1e7847a2038b54e
Clean up VPC unit tests

 - Ensure that stacks are cleaned up on failure.
 - Add a test for the case where an something other than a valid reference
   is passed as the GroupSet.
 - Add a test for the case where no GroupSet is passed.

Ref bug #1164913

Change-Id: I7637ed7969f23662643756da4a49627a2b40de20
Merge "Move WaitCondition polling to check_create_complete()"
Merge "Use python logging for loguserdata.py, log to console"
Merge "Clean up VPC unit tests"
Merge "Implement CinderVolume.FnGetAtt"
use skipIf for all quantum test skip checks

Change-Id: I999c13fd5d2816374ee9fb4d2abe57557583ed9a
Rename handle_snapshot and pass state

Rename handle_snapshot() to handle_snapshot_delete() to better reflect what
it needs to do (both take a snapshot of the resource and then delete the
resource). Also, pass the state of the resource prior to delete being
invoked, since the resource may want to use different error handling in the
snapshot phase depending on e.g. whether the resource was created
successfully or not.

Change-Id: I1e5aaab4f13e42333c1f2f39bfeb0ebf2ac89ed8
Handle errors in Volume creation

Set the resource_id as soon as it is know, since we need to be able to
delete the volume later, even if it is in an error state. Avoid attempting
to perform a snapshot if the volume was never created successfully.

Change-Id: I33dd842d3d249bafe1037c1b97abf1979f605712
Move Volume polling to check_create_complete()

Rather than poll in a loop inside handle_create(), use
check_create_complete() to check the status of the Volume.

Fixes bug #1178578

Change-Id: Icea7154c6e3763c977bd41671f51736c4a366141
Make Volume snapshot a task

Change-Id: I53fbd6e2ba9b17fa0ccd38d5e077587df0bbfef8
Clean up import of cinderclient exceptions

Don't import a particular version of the cinderclient API - just import the
client module and pass the version we want to the Client() constructor as
is intended. This allows up to access the exceptions directly through
client.exceptions, rather than having to do a separate import.

Change-Id: Ic0e47506a51a572da01fdfdef0367cfdb3e34d54
Cleaned up some simple hacking/pyflakes errors.

There are set of trivial changes that involved missing imports or unused
code. No functional changes should be evident.

Change-Id: If020e33674627845ea78192382bdf8977b442931
Merge "Cleaned up some simple hacking/pyflakes errors."