heat.engine.stack module¶
- class heat.engine.stack.ConvergenceNode(rsrc_id, is_update)¶
基类:
tuple- is_update¶
字段编号 1 的别名
- rsrc_id¶
字段编号 0 的别名
- class heat.engine.stack.Stack(context, stack_name, tmpl, stack_id=None, action=None, status=None, status_reason='', timeout_mins=None, 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, tags=None, prev_raw_template_id=None, current_deps=None, cache_data=None, deleted_time=None, converge=False, refresh_cred=False)[source]¶
基类:
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'¶
- converge_stack(template, action='UPDATE', new_stack=None, pre_converge=None)[source]¶
更新堆栈模板并触发资源的收敛。
- property convergence_dependencies¶
- defer_state_persist()[source]¶
返回是否延迟持久化状态。
如果持久化被延迟,则新的状态不会写入数据库,直到堆栈锁被释放(通过调用 persist_state_and_release_lock())。这可以防止旧路径中的竞争条件,在该路径中观察者看到堆栈 COMPLETE,但引擎仍然持有锁。
- delete(action='DELETE', backup=False, abandon=False, notify=None)[source]¶
删除所有资源,然后删除堆栈本身。
action 参数用于区分用户发起的删除和在创建失败后自动堆栈回滚,这两者在本质上是相同的,但状态记录的方式不同。
注意,abandon 是一种删除,其中所有资源都设置为 RETAIN 删除策略,但我们也不希望删除任何为这些资源所需的资源,例如 stack_user_project。
- property dependencies¶
- dependent_resource_ids(resource_id)[source]¶
返回依赖于其他资源的资源 ID 集合。
给定一个资源 ID,返回所有依赖于该资源的资源 ID 集合 - 也就是说,在清理给定资源之前必须清理哪些资源。
- property env¶
堆栈环境
- get_kwargs_for_cloning(keep_status=False, only_db=False, keep_tags=False)[source]¶
获取用于克隆的常见 kwargs。
此方法的作用是减少在修改 Stack.__init__() 的 kwarg 时需要更新的地方数量。 否则,如果丢失了某个选项,很容易忘记并导致一些意外错误。
注意
这不会返回 args(name, template),而只返回 kwargs。
我们通常希望从“头”开始,因此不想保留旧的状态、操作和状态原因。
我们有时只想保留数据库属性。
- get_nested_parameters(filter_func)[source]¶
返回嵌套参数模式(如果有)。
此方法内省资源以返回嵌套堆栈的参数。 它使用 get_nested_parameters_stack API 构建堆栈。
- classmethod load(context, stack_id=None, stack=None, show_deleted=True, use_stored_context=False, force_reload=False, cache_data=None, load_template=True, check_refresh_cred=False)[source]¶
从数据库检索堆栈。
- classmethod load_all(context, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, show_deleted=False, show_nested=False, show_hidden=False, tags=None, tags_any=None, not_tags=None, not_tags_any=None)[source]¶
- object_path_in_stack()[source]¶
返回根堆栈中的堆栈资源和堆栈路径。
如果这不是嵌套堆栈,则返回 (None, self),否则返回从根堆栈开始的堆栈资源和堆栈路径,包括此堆栈。
请注意,这效率很低,因为它需要我们同时将链中的每个堆栈加载到内存中,直到根堆栈。
- 返回值:
一个 (stack_resource, stack) 元组列表。
- property outputs¶
- property parameters¶
- property parent_resource¶
动态加载 parent_resource。
注意:这仅应由“Fn::ResourceFacade”使用
- property parent_resource_name¶
- path_in_stack()[source]¶
返回从根堆栈开始的堆栈路径中的名称元组。
如果这不是嵌套堆栈,则返回 (None, self.name),否则返回从根堆栈开始的堆栈资源和堆栈路径中的名称元组(stack_resource.name,stack.name),包括此堆栈。
- 返回值:
一个 (string, string) 元组列表。
- purge_db()[source]¶
在堆栈完成/失败后清理数据库。
从数据库中删除资源。
如果堆栈失败,则将 current_traversal 更新为空字符串,以便资源工作线程退出。
如果堆栈成功完成,则删除以前的原始模板。
删除所有同步点。 在堆栈完成/失败后不再需要它们。
如果操作是 DELETE,则删除堆栈。
- register_access_allowed_handler(credential_id, handler)[source]¶
注册授权处理程序函数。
注册一个函数,用于确定具有给定 ID 的凭据是否可以访问命名资源。
- property resources¶
- resume(notify=None)[source]¶
恢复堆栈。
对所有堆栈资源调用 handle_resume。
等待所有资源变为 RESUME_COMPLETE,然后声明堆栈 RESUME_COMPLETE。请注意,所有资源的默认实现只是移动到 RESUME_COMPLETE,因此要使此操作有效,资源必须实现 handle_resume。
- stack_task(action, reverse=False, post_func=None, aggregate_exceptions=False, pre_completion_func=None, notify=None)[source]¶
执行堆栈操作的任务。
以正向或反向依赖顺序遍历所有资源。
- 参数:
action – 应与堆栈资源一起执行的操作
reverse – 定义是否需要以反向依赖顺序执行资源上的操作
post_func – 在堆栈上完成操作后需要执行的函数
aggregate_exceptions – 定义是否应聚合异常
pre_completion_func – 在操作完成之前需要执行的函数;使用堆栈、操作、状态和原因作为输入参数
- property state¶
返回状态,操作、状态的元组。
- store(backup=False, exp_trvsl=None, ignore_traversal_check=False, use_stored_context=False)[source]¶
将堆栈存储在数据库中并返回其 ID。
如果设置了 self.id,则更新现有的堆栈。
- suspend(notify=None)[source]¶
暂停堆栈。
对所有堆栈资源调用 handle_suspend。
等待所有资源变为 SUSPEND_COMPLETE,然后声明堆栈 SUSPEND_COMPLETE。请注意,所有资源的默认实现只是移动到 SUSPEND_COMPLETE,因此要使此操作有效,资源必须实现 handle_suspend。
- property t¶
堆栈模板。
- property tags¶
- update(newstack, msg_queue=None, notify=None)[source]¶
更新堆栈。
比较当前堆栈与 newstack,并在必要时创建/更新/删除资源,直到此堆栈与 newstack 对齐。
请注意,现有堆栈资源的更新取决于底层资源类型是否实现了更新。
如果更新超过指定的超时时间,则更新将失败。默认值为 60 分钟,在构造函数中设置
- property worker_client¶
返回用于进行引擎 RPC 调用客户端。