Create common stack_create functional test helper

The same pattern for creating a stack, defaulting arguments,
setting cleanup, and waiting for status is repeated in all
tests, so move that logic to a common base-class helper.

Change-Id: Ibf4c2f61d1f1936816245178fd8cf794e347de8b
Remove Python 2.6 classifier

Heat does not support Python 2.6 anymore starting with Kilo and might
not work correctly with it, so remove the classifier.

Change-Id: Ie8239823b448cc95fdcce3afe27523cb960863d6
Fill test database from models description

Now Heat models are the same as the tables state in DB after migrations,
so we can use metadata.create_all() to fill a test database.
This will speed-up test database creation and reduce a necessity in DB
migrations on SQLite

Change-Id: Ib7b6ab2591c01e91d7a55f3384dae505fe1485a7
Consider invalid keywords a template validation error

This commit changes the exception type raised when an invalid
keyword is found in the resources and outputs sections of hot
templates from a KeyError to a StackValidationFailed. The
latter is better suited to be sent to heat-api to return to
clients, as oslo.messaging deserializes it to a more compact
exception that does not include the stack trace in the message
string.

Change-Id: I7c2da96fa07503b947c6c2c4a5f8ed3231dec9db
Closes-Bug: 1393831
Populate _template_classes global on first use

This change ensures that the _template_classes global variable is always
initialized when the first template is created. This was done when
instantiating the Template base class, but it was missed when creating an
instance of any of its subclasses.

Change-Id: I5edc9f06d6b48bb04e8ed41365823021ef133909
Closes-Bug: 1397468
Reduce Server update complexity to below 20

One of the goals to polish Heat code is to make sure the complexity is
below 20.  This patch refactors the Server resource implementation
regarding its update logic so that it meets this requirement.

This is a pure code refacto patch, so no test cases are modified.

Change-Id: I18c6ada4386c0a091ae1d369db91c6a3d6429f34
Add OS::Cinder::VolumeType resource

Add OS::Cinder::VolumeType resource, implement its
basic actions: creation, deletion, updation.

Change-Id: Id37f4a0b1c558caa83dbecf7b64f87241ea89cdd
Implements: blueprint cinder-volume-type
Remove heat.config.sample file

This file keeps breaking our gate, because libraries we depend on
release and the generated content changes.

The check has been disabled, but to avoid the sample config becoming
totally stale, remove it and replace with a README which says
how to generate the current sample config.

Change-Id: I1c43e5cf2a7ab6fa388b91fd420392996c368e72
Show the creation time for stack snapshots

Creation time for snapshots is an important attribute,
we should return the creation time when doing stack
snapshot actions.

Change-Id: Ieaedaf79bf073737ec41fba2d0252d3f4ddc0fcf
Closes-Bug: #1398307
engine service add stack_user_project_id to create_stack interface

Adds the option to pass stack_user_project_id to align with the recent
change which makes nested stacks inherit the stack user project from
their parent ref bug #1343163.  This will enable the same behavior to
be maintained when creating stacks via RPC calls instead of directly.

Change-Id: I2a102722d3e5228ccbb71ca13f4246725626f5a9
blueprint: decouple-nested
Add stack_user_project_id to _create_stack RPC interface

Adds the ability to pass the parent stack_user_project_id into nested stacks
when creating them via RPC, so we can maintain the recently introduced
behavior where the parent stack user project is inherited by nested
stacks.

Change-Id: I425e80cfc8f9c646ade7d47f202744103142ab55
blueprint: decouple-nested
Expose resource attributes in the engine

This changes the engine to allow the user to be able to view resource
attributes after creating a stack, even if such attributes were not
included in the template outputs.

Implements: blueprint detailed-resource-show
Change-Id: I842eb89ac42de8d525d2092ff9d02e70daa8a981
Expose resource attributes in the API

This adds the necessary API changes to allow the user to view
resource's attributes when making calls to resource show.

Implements: blueprint detailed-resource-show
Change-Id: Id203478dbd067743d36623e99332ac32c6f96d42
Merge "Show the creation time for stack snapshots"
Reduce Stack complexity to below 20

This patch reduces the complexity of Stack module to be below 20 by
further splitting the handle_update method.
Since this is a pure code refactor work, no test case modification is
needed.

Change-Id: I92e58d749dedd32c73b9ea1d5b2e54be84f69003
Apply cinder snapshot custom constraint

Apply cinder snapshot custom constraint for resources.

Change-Id: Ifc8c86e97f8ed38b1461ba527be17ba4e6c01bdf
Implements: blueprint cinder-custom-constraints
Workflow documentation is now in infra-manual

Replace URLs for workflow documentation to appropriate parts of the
OpenStack Project Infrastructure Manual.

Change-Id: I589842db624ca525ec04c6d23fe0b1391fe590d2
Merge "Apply cinder snapshot custom constraint"
Use template directly instead of stack.tmpl

Use template.Template directly instead of stack.tmpl.Template.

Change-Id: I856300b896a55bbd33cdc8b465a2bb4a43ea2b39
Re-factoring os/neutron resolve methods

This patch re-factor resolve_subnet and resolve_network
methods and adds resolve_router method for improving
resources, which use property 'router_id'.

Change-Id: I769c0a286d54e4db2bba1a8b0ac0edf1b2024e16