If stack-show is called at an inopportune moment in convergence, we can
attempt to store the attributes of a resource that isn't actually in the
database. This causes occasional gate failures due to an assert.
Calculating all of the attributes of a resource that are referenced in the
template was previously done inside the node_data() method, but this is
useful for the resource to be able to access for other reasons so refactor
it into a separate method.
Partially-Implements: blueprint stack-definition
We use StackValidationFailed in many different scenarios and
the the message is at times extremely unhelpful, specifically
when the validation error is deep in a nested stack.
This changes the logic of getting cancellation grace
period of task runner before closing it: to move the
liveness check into the cancel_all() method in the
scheduler rather than ask the resource if it's IN_PROGRESS.
With the added get_rpc_transport() function in oslo.messaging 
and the recent version bump of oslo.messaging to 5.24.2, we can
safely replace get_transport() with get_rpc_transport() which is much
Previously, all caching of attribute values was done via the Attributes
object. However, some resource types override Resource.get_attribute() to
do custom handling of the trailing attribute path or dynamic attribute
names, and in these cases the resulting values were not cached (since they
don't go through the Attributes object).
This patch adds a caching step for these resources:
Co-Authored-By: Crag Wolfe <email@example.com>
Add a new OS::Neutron::Trunk resource and support the creation,
deletion and update of Neutron Trunks.
Co-Authored-By: Bence Romsics <firstname.lastname@example.org>
Co-Authored-By: David Toth <email@example.com>
Implements: blueprint support-trunk-port
Combination alarm has been removed from Aodh since Pike.
We inherit combination alarm from none resource in this patch.
Will schedule to remove the resource in future cycle.
This patch add `is_placeholder` key in resource data for placeholder
resource like none resource. And prevent any delete action if key
founded in resource data. We put `is_placeholder` key for none resource
to let it replace existence resource type and still allow exists
resources of that type (which should not contain is_placeholder key in
resource data) will be able to delete those resources.
The patch at I1cb321a3878a0abce9b41832f76bf77c25bf7cb4 properly deleted
the snapshots from the database, but as delete in convergence sets the
template to an empty template, stack.resources is empty. This works
around the problem by deleting the snapshots beforehand.
It's possibile for resource listing of a legacy stack with an update
in progress to have resources in db but not in template.
Probably it would not hurt to filter those out.
assertRaisesRegexp was renamed to assertRaisesRegex since Py3.2
For more details, please check:
During stack updates in the legacy path, we copy resource definitions
back and forth between templates. In the case where the definitions
contain macros (which in practice means the If macro for conditionals),
they may rely on external state (in practice, the conditional
definitions) that is not available in the template they're being copied
into (e.g. in the case of an If macro referencing a new condition).
This change means that when we copy a template, the macros get resolved
so that only the chosen path of the If macro is represented.
This resolves the issue where trying to signal a resource during an
update fails when one of the already-updated resources in the template
contains an If macro that refers to a condition definition that is
newly-added in the new template.
Previously, we were not using the specialized parameter class' __str__
method to print the parameters in the stack-show output with python
Store rsrc_data 'metadata_queue_id' after zaqar queue
created, to avoid unnecessary queue delete calling when
delete nova server.