Make sure NetworkInterfaces and SubnetId updatable

We should make the properties 'NetworkInterfaces' and 'SubnetId'
updatable for AWS::EC2::Instance resource, so we can update the networks
for an instance.

Change-Id: I4a475fee6416696558807c189473a90d7517cfc0
Closes-Bug: #1280151
Fix status reason in events for deployment signals

When a signal is received and processed by a Resource, there could be an
event generated automatically. For such an event, Heat is supposed to
provide some useful message (including status_reason).  But currently,
the resource code can only process ceilometer alarms and watch rules,
for signals sent for a SoftwareDeployment resource, the signal is only
providing an string 'Unknown' as the status change reason.  This is
confusing when a user performs 'heat event-list stack'.

This patch adds an additional check (guess) whether the signal comes
from a SoftwareDeployment.  If that is the case, fill in the status
reason as 'deployment succeeded', or 'deployment failed (n)', where n is
the deploy_status_code that comes with the signal.

Closes-Bug: #1300679
Change-Id: Ic970a5dac923fffdcdd365983df58f4d338de849
Refined schema for VPCZoneIdentifier

The schema now says it is a list of strings. Also upgraded the
description.  Also clarified the name of
test_invalid_vpc_zone_identifier.

Change-Id: I4b17dbd146965df3df3f4205dddafc0b65061294
Closes-Bug: #1294717
Add link to a resource's nested stack

When viewing a resource, it's valuable to know whether the resource is a
nested stack with additional resources attached to it.  This change
provides a new 'nested' link in the links section of a resource, which
points to the nested stack.

Co-Authored-By: Richard Lee <rblee88@gmail.com>
Implements: blueprint nested-stack-link
Change-Id: Ibc8768d2be8f1dae9a60d3818ae9f56c27bbdc9b
Fix delete event error in postgres

An error happens when heat delete events in postgres,
 It seems that JOIN/DELETE is not supported in
"sqlalchemy/orm/".

Let heat delete events in postgres in the common
way.

Closes-Bug: #1301827
Change-Id: Id320abf15c4fd9f58e411ad7de7f044a9b5d1c1e
Allow filtering of stacks by action

Currently users can already filter by status.  Since status and action
are so closely tied, it is valuable to be able to filter by action as
well.  As a result, users can filter stacks in a more meaningful way.
For example, /stacks?action=CREATE&status=IN_PROGRESS

Implements: blueprint filter-by-action
Change-Id: I58bf53373e0a9231d198d8fb62e76b1373587b87
Validate user_data_format for server with deployment

Validation error will be raised if user_data_format is not set
correctly.

Partial-Bug: #1295536
Change-Id: I0509c9c3a71d09fa8e2113710d561ffd3289d814
Enable lazy translation in unit tests

Change-Id: Ia2aaaaae34f0f234b2493e7c724d7b874035bcfb
Do not use suppport message if it's None

'message' attribute of SupportStatus class has default value equal None.
If you use support_status value in Schema class without providing
'message', you will get in documentation warning in form: DEPRECATED - None.
It looks confused and in such case we should display only 'status'
attribute: DEPRECATED.

Change-Id: I482fe6a9ca134e9e3bc54282b4b10ed98c29b028
Don't ignore event creation errors

Don't catch exceptions when creating events and instead let the error
propagate. Exceptions when storing events could hide programming errors
and doesn't seem to protect against real issues. The patch also fixes
the tests breaking.

Change-Id: I5eef34c0ed20f9700756e479ace6408304d2cebe
Use cinder API for volume attach and detach

Replace nova calls for attaching and detaching volumes
with native cinder API calls.

Closes-Bug: #1298350
Change-Id: I628b4a0dd559389f66ab25b6030a9ad6fc927e39
Add hint on creating new user for Heat in DevStack

Mention heat_stack_owner role in the docs for DevStack.

Change-Id: I5f3e0405684fffa0aa05d1552ca0f6e7074471aa
Partial-Bug: #1306665
Implement locking in abandon stack

This change implements locking in abandon stack. If lock
acquire fails throws ActionInPrgoress exception.

Change-Id: I930123efa95b2863c4e2de01f4646b6e3d68c5cc
Closes-bug: #1301311
Merge "Implement locking in abandon stack"
Merge "Add hint on creating new user for Heat in DevStack"
Allow DesiredCapacity to be zero

When updating or validating a AutoScaleGroup,
'DesiredCapacity' is ignored if the value is 0.

- Add validation for 'DesiredCapacity' if the value is 0,
- Don't ignore zero when updating.

Change-Id: I830aaf97ebed6b2c77c72b18dc8d222ce23f9a28
Partial-Bug: #1304423
Check that all po/pot files are valid

Perform minimal checks on po and pot files so that no broken files can
get imported.

Change-Id: Ib438faddb362eb8e61eaa64a870160196f16c594
Related-Bug: #1299349
Co-Authored-By: Clark Boylan <clark.boylan@gmail.com>
Push COMPLETE status change at the end of update

This patch moves the status change of stack update to the very end of
the update task, to avoid a race condition where the status of the stack
is UPDATE_COMPLETE but stack-show could return the previous resources.

Change-Id: I04abcf2e876d1de36a36bcd1596a2fd510669744
Closes-Bug: #1308682
Make template validation uniform

There were two different behaviours during template validation and creation
stack (with template validation). In first case error was raised if
template did not have any resources. However user could create stack
without error using this such kind of template.
This patch make behaviour equal for both variant and gives ability to
create and successfully validate stack with template which does not have
resources.

Change-Id: I4dc30ccdc45e0fa7ff678b434106e056dba5f3b4
Closes-Bug: #1278090
Merge "Do not use suppport message if it's None"