The heat.engine.stack ModuleΒΆ

exception heat.engine.stack.ForcedCancel[source]

Bases: exceptions.BaseException

Exception raised to cancel task execution.

class heat.engine.stack.Stack(context, stack_name, tmpl, stack_id=None, action=None, status=None, status_reason='', timeout_mins=None, resolve_data=True, disable_rollback=True, parent_resource=None, owner_id=None, adopt_stack_data=None, stack_user_project_id=None, created_time=None, updated_time=None, user_creds_id=None, tenant_id=None, use_stored_context=False, username=None, nested_depth=0, strict_validate=True, convergence=False, current_traversal=None)[source]

Bases: _abcoll.Mapping

ACTIONS = ('CREATE', 'DELETE', 'UPDATE', 'ROLLBACK', 'SUSPEND', 'RESUME', 'ADOPT', 'SNAPSHOT', 'CHECK', 'RESTORE')
ADOPT = 'ADOPT'
CHECK = 'CHECK'
COMPLETE = 'COMPLETE'
CREATE = 'CREATE'
DELETE = 'DELETE'
FAILED = 'FAILED'
IN_PROGRESS = 'IN_PROGRESS'
RESTORE = 'RESTORE'
RESUME = 'RESUME'
ROLLBACK = 'ROLLBACK'
SNAPSHOT = 'SNAPSHOT'
STATUSES = ('IN_PROGRESS', 'FAILED', 'COMPLETE')
SUSPEND = 'SUSPEND'
UPDATE = 'UPDATE'
access_allowed(credential_id, resource_name)[source]

Returns True if the credential_id is authorised to access the resource with the specified resource_name.

add_resource(resource)[source]

Insert the given resource into the stack.

adopt(*args, **kwargs)[source]

Adopt a stack (create stack with all the existing resources).

check(*args, **kwargs)[source]
create(*args, **kwargs)[source]

Create the stack and all of the resources.

create_stack_user_project_id(*args, **kwargs)[source]
db_resource_get(name)[source]
delete(*args, **kwargs)[source]

Delete all of the resources, and then the stack itself. The action parameter is used to differentiate between a user initiated delete and an automatic stack rollback after a failed create, which amount to the same thing, but the states are recorded differently.

Note abandon is a delete where all resources have been set to a RETAIN deletion policy, but we also don’t want to delete anything required for those resources, e.g the stack_user_project.

delete_snapshot(*args, **kwargs)[source]

Remove a snapshot from the backends.

dependencies[source]
env[source]

This is a helper to allow resources to access stack.env.

get_availability_zones()[source]
static get_dep_attrs(resources, outputs, resource_name)[source]

Return the set of dependent attributes for specified resource name by inspecting all resources and outputs in template.

get_kwargs_for_cloning(keep_status=False, only_db=False)[source]

Get common kwargs for calling Stack() for cloning.

The point of this method is to reduce the number of places that we need to update when a kwarg to Stack.__init__() is modified. It is otherwise easy to forget an option and cause some unexpected error if this option is lost.

Note: - This doesn’t return the args(name, template) but only the kwargs. - We often want to start ‘fresh’ so don’t want to maintain the old

status, action and status_reason.
  • We sometimes only want the DB attributes.
identifier()[source]

Return an identifier for this stack.

iter_resources(nested_depth=0)[source]

Iterates over all the resources in a stack, including nested stacks up to nested_depth levels below.

classmethod load(context, stack_id=None, stack=None, parent_resource=None, show_deleted=True, use_stored_context=False, force_reload=False)[source]

Retrieve a Stack from the database.

classmethod load_all(context, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, tenant_safe=True, show_deleted=False, resolve_data=True, show_nested=False)[source]
object_path_in_stack()[source]

If this is not nested return (None, self), else return stack resources and stacks in path from the root stack and including this stack

Returns:a list of (stack_resource, stack) tuples
output(*args, **kwargs)[source]

Get the value of the specified stack output.

parent_resource[source]

Dynamically load up the parent_resource.

Note: this should only be used by “Fn::ResourceFacade”

path_in_stack()[source]

If this is not nested return (None, self.name), else return tuples of names (stack_resource.name, stack.name) in path from the root stack and including this stack.

Returns:a list of (string, string) tuples.
prepare_abandon(*args, **kwargs)[source]
preview_resources()[source]

Preview the stack with all of the resources.

register_access_allowed_handler(credential_id, handler)[source]

Register a function which determines whether the credentials with a give ID can have access to a named resource.

remove_resource(resource_name)[source]

Remove the resource with the specified name.

requires_deferred_auth()[source]

Returns whether this stack may need to perform API requests during its lifecycle using the configured deferred authentication method.

reset_dependencies()[source]
reset_resource_attributes()[source]
resolve_runtime_data(snippet)[source]

DEPRECATED. Use heat.engine.function.resolve() instead.

resolve_static_data(snippet)[source]
resource_by_refid(refid)[source]

Return the resource in this stack with the specified refid, or None if not found

resources[source]
restart_resource(resource_name)[source]

stop resource_name and all that depend on it start resource_name and all that depend on it

restore(*args, **kwargs)[source]

Restore the given snapshot, invoking handle_restore on all resources.

resume(*args, **kwargs)[source]

Resume the stack, which invokes handle_resume for all stack resources waits for all resources to become RESUME_COMPLETE then declares the stack RESUME_COMPLETE. Note the default implementation for all resources is to do nothing other than move to RESUME_COMPLETE, so the resources must implement handle_resume for this to have any effect.

root_stack[source]

Return the root stack if this is nested (otherwise return self).

set_stack_user_project_id(project_id)[source]
snapshot(*args, **kwargs)[source]

Snapshot the stack, invoking handle_snapshot on all resources.

stack_task(*args, **kwargs)[source]

A task to perform an action on the stack and all of the resources in forward or reverse dependency order as specified by reverse

state[source]

Returns state, tuple of action, status.

state_set(*args, **kwargs)[source]

Update the stack state in the database.

store(*args, **kwargs)[source]

Store the stack in the database and return its ID If self.id is set, we update the existing stack.

stored_context()[source]
supports_check_action()[source]
suspend(*args, **kwargs)[source]

Suspend the stack, which invokes handle_suspend for all stack resources waits for all resources to become SUSPEND_COMPLETE then declares the stack SUSPEND_COMPLETE. Note the default implementation for all resources is to do nothing other than move to SUSPEND_COMPLETE, so the resources must implement handle_suspend for this to have any effect.

timeout_secs()[source]

Return the stack action timeout in seconds.

total_resources()[source]

Return the total number of resources in a stack, including nested stacks below.

update(*args, **kwargs)[source]

Compare the current stack with newstack, and where necessary create/update/delete the resources until this stack aligns with newstack.

Note update of existing stack resources depends on update being implemented in the underlying resource types

Update will fail if it exceeds the specified timeout. The default is 60 minutes, set in the constructor

update_task(*args, **kwargs)[source]
validate(*args, **kwargs)[source]

Validates the template.

Previous topic

The heat.engine.parameters Module

Next topic

The heat.engine.attributes Module

This Page