Move calculating new capacity to a function

This is part of the refactoring to fix the
inheritance hierarchy of AutoScaleResourceGroup.
In this case, attempting to move some common
functionality out of the inheritance hierarchy
entirely (perhaps to the heat/scaling module).

Calculating the new capacity while taking
min/max constraints into account, seems like
some common functionality to any type of
scaling.  This way, the extra bounds checking
in handle_update can be eliminated as well.

Change-Id: I0f4c78df15d3d973394ccfa14178941d170c9944
Show correct error messages

When a ResourceFailure exception raised in heat/engine/stack.py,
the error message is not correctly printed. This patch fixes it.

Change-Id: I0636b0d14f0169117fe96df7a4360b1349f7b12d
Amend docs with `immutable` property attribute.

Include warning about updates not being supported for a propety
based on its `immutable` value being True.

Change-Id: I10fe495a2a35429b3d6e254c23ae91732e2e4dd8
Implements: blueprint implement-aws-updates-not-supported
Deny updates to AWS::EC2::Volume resource

According to AWS docs [1] Volume resource does not support updates
(including resource replacement) of any of its properties.
To align our AWS-compatible resource with such behavior, all properties
of AWS::EC2::Volume resource are marked as immutable.

[1] http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html

Change-Id: I7fea68f11c58d395c1eb31fae834afcab5dc4d1e
Closes-Bug: #1340093
Refactor calling handle_* into a separate task

Change-Id: I8352732328d0009688724f2b2ef8ca90fab16955
Use new template for resource update reparse

If the stack-update is switching from pre-HOT to HOT then
the update will fail because the functions are resolved
using the pre-HOT template.

This change uses the new template for the reparse instead of the
old one. It fixes the issue observed but any other effects are
unknown.

Change-Id: I2f749375ccd7ca917387ef96856b1fc248c8567b
Closes-Bug: #1356097
test_parser.py remove some spurious Replay/Verify calls

There are some Replay/Verify calls which don't do anything, so
remove them, for the avoidance of perpetuating them in cut/paste
for new tests.

Change-Id: I4c08732d37ca9c1e15d13217ba257fff1bc2f518
Fix typos in comments and help strings

Change-Id: I68446dd652186191d19551032a634aee03f9e637
Remove function get_software_config

This change removes the function get_software_config
and replaces it with direct calls to heatclient.

This allows the heat client plugin's ignore_not_found handling
to be used.

The SoftwareConfigMissing exception is also no longer required.

Change-Id: I61fbe9556d9988fffd4afddf3fad5d2fa211475a
Add constraints to check whether image/keypair exists

Add constraints for "KeyName" and "ImageId" to check whether keypair/image
exists on "AWS::AutoScaling::LaunchConfiguration" resource.

Change-Id: I23dc126e621f3cfa7ca86b3a1c27dd949d3f5093
Closes-Bug: #1312564
Use Constraint stubs in common.py

Migrate to use functions: stub_KeypairConstraint_validate() and
stub_ImageConstraint_validate() in tests/common.py which defined 
in patch I23dc126e621f3cfa7ca86b3a1c27dd949d3f5093.

Change-Id: I63d578a9291d0fe08815d6a33323324432ae21cb
Merge "Refactor calling handle_* into a separate task"
Merge "Amend docs with `immutable` property attribute."
Merge "Deny updates to AWS::EC2::Volume resource"
Merge "Move calculating new capacity to a function"
Cinder, trove, ceilo use ignore_not_found etc

Change-Id: I7dc38cba8cb9a51fed616c7bb9c8eb58e897a110
Merge "Remove function get_software_config"
Merge "Add constraints to check whether image/keypair exists"
Merge "Use Constraint stubs in common.py"
Merge "Cinder, trove, ceilo use ignore_not_found etc"