Migrate to oslo.db

Move from oslo-incubator db module to oslo.db

Change-Id: I485375e3defc807e1fc272803a064b2c52e8ac13
Create a new revision of HOT for Juno

The next revision of HOT, dated 2014-10-16 to coincide with the Juno
release date, will support the list_join function and remove support for
the CFN-style functions. There may also be other changes throughout the
Juno development cycle.

Change-Id: I20d9586201806ac34e303689660ff565cb9f2b5c
Refactor ResourceGroup's FnGetAtt()

Change-Id: I424e4ce67bbc04739e028dfbe197595e4c6254f8
Refactor selecting values from an attribute

Move the code to select particular keys/indices from an attribute value out
of the get_attr intrinsic functions and into the attributes module as a
separate function.

Change-Id: I16135159027cc52e8da74a4b5863fc8a8595d582
Convert AWS::EC2::Subnet to use attributes Schema

Change-Id: I0f7b6beef1023875ae499ce7ec06f4211c6c028b
Remove tools/glance-jeos-add-from-github.sh

glance-jeos-add-from-github.sh has not been edited since 2012-08-20, and
its image links have been broken (according to Google cache) for a
minimum of 9 months.

The functionality of the script seems to be superceded by the
handy-dandy diskimage-builder tool.

See http://docs.openstack.org/developer/heat/getting_started/jeos_building.html
for more info about diskimage-builder workflow.

Change-Id: I99880f1cca4af84fa7193d749a7c8f6957bb0b78
Partial-Bug: 1338066
Store clients in context

Having the Stack create the Clients object means that custom constraints
do not have access to the already created clients. This greatly
complicates test mocking, and results in unnecessarily created
constraint-scoped clients.

This change makes the Clients be created in RequestContext on demand.
Constraints use the Clients associated with the context.

Mocking client create calls is simplified, generally needing to
call _create once instead of MultipleTimes()

Change-Id: If67e2d6761003558b32909c4655fadb4d0630b86
Use config region_name_for_services for rackspace clients

This deletes the region_name configuration option and replaces
uses with region_name_for_services.

There is no need for a different configuration option
for rackspace clients.

Change-Id: I6866026a0b9a1895b9b062e9c49e0fe54ec8e831
Move network constraint to neutron plugin

This allows exception imports to be encapsulated inside the neutron
plugin, and plugins are likely the most appropriate place for
custom constraints to live.

Change-Id: I5766edb305b7cfffdcd8943fb6edce7f3e9ff26d
Move glance_utils functions to glance client plugin

The glance client plugin is a more obvious home for this sort
of function, and this change makes mocking of these functions
much easier since a mocked client is no longer needed.

To access the methods defined in the client plugin the method
Resource.client_plugin has been added. When all clients are
contributed by plugins then method Resource.client will call
Resource.client_plugin.

glance_utils can be deleted since it was only added at the
beginning of the Juno cycle.

The image constraint has also been moved to the glance plugin.

Change-Id: Id31ccd605411ca034addc67d8aadf7cea0904bfd
Add query param to allow nested resource list

Add `nested_depth` param to OpenStack API to allow listing of
nested resources up to `nested_depth` level.

Implements: blueprint explode-nested-resources
Change-Id: I1cd6c35fe7f3eb1c5b67217e38aef53cb0b6ff76
Add resource properties to stack-preview

Certain resource details may influence the final price of the
infrastructure being created by a stack (e.g. instance flavors), so this
adds resources properties to the output of stack-preview.

Implements: blueprint stack-preview-details
Change-Id: I6ea892dedfc96aeda8e8a21e67562820fd21c7bb
Merge "Add query param to allow nested resource list"
Merge "Add resource properties to stack-preview"
test_heatclient fix mocking with latest keystone

The tests break with latest (0.10.0) keystoneclient, so replace
the mocked domain with a MockAnything object

Change-Id: Icd460e554656e11ef8c4bcda62c1363b7eed8a68
Closes-Bug: #1347319
Remove duplicate opt import in sqlalchemy/api.py

Remove duplicate opt import.

Change-Id: I948859540c136098b988cf71fc752424f8a028b8
Merge "Store clients in context"
Refactor handling of exceptions in Resource actions

The code to set resource states and handle resulting exceptions (by
translating to ResourceException where appropriate) was duplicated in three
different places. This change consolidates these into a single context
manager.

Change-Id: I3994c7cb73300c4b13437a4b37cd12f5b0a20b35
Move the Stack class into stack.py

Stack is one of the most important classes in our project
and it is in a module with seemingly an unrelated name.
The name is historical, it started off been an assortment of functions
that parsed the template and much of the original content has
been moved out bit by bit into specialized modules leaving the Stack
class behind. This patch will hopefully complete the job by putting
the Stack class into the stack module.

More changes are to come to make sure that the users of the parser module
migrate to using the template and stack modules directly.

Change-Id: I81f8ed05e6dc7f14ec093cf2178f3ab5e3e4dda0
Add template version for the provider template

The unittest "test_properties_type_mismatch" in
test_provider_template.py, the provider template misses the template
version, so there will be a "missing template version" exception, not
the expected "type mismatch" exception.

Closes-Bug: #1325146
Change-Id: Id836a7bd31dcbb4072743560cc1b314fc3073852