heat.engine.service 模块¶
- class heat.engine.service.EngineListener(host, engine_id, thread_group_mgr)[source]¶
基类:
object监听为引擎命名的 AMQP 队列。
允许各个引擎相互通信,以支持多引擎。
- ACTIONS = ('stop_stack', 'send')¶
- SEND = 'send'¶
- STOP_STACK = 'stop_stack'¶
- class heat.engine.service.EngineService(host, topic)[source]¶
继承自:
ServiceBase管理从创建到销毁的实例运行。
这里的每个方法都由 RPC 后端调用。 这都是动态完成的,因此,如果通过 RPC 进行调用,而此处没有相应的该方法,则在尝试调用此类时会抛出异常。 这些方法的参数也都是动态添加的,并将由 RPC 调用方命名为关键字参数。
- RPC_API_VERSION = '1.36'¶
- abandon_stack(cnxt, stack_identity, abandon=True)[source]¶
放弃给定的堆栈。
- 参数:
cnxt – RPC 上下文。
stack_identity – 您想要放弃的堆栈的名称。
abandon – 删除 Heat 堆栈但不删除物理资源。
- count_stacks(cnxt, filters=None, tenant_safe=True, show_deleted=False, show_nested=False, show_hidden=False, tags=None, tags_any=None, not_tags=None, not_tags_any=None)[source]¶
返回与给定筛选器匹配的堆栈数。
- 参数:
cnxt – RPC 上下文。
filters – 与堆栈匹配的 ATTR:VALUE 字典
tenant_safe – 已弃用,如果为 true,则将请求限定为当前租户
show_deleted – 如果为 true,计数将包括已删除的堆栈
show_nested – 如果为 true,计数将包括嵌套堆栈
show_hidden – 如果为 true,计数将包括隐藏堆栈
tags – 包含这些标签的堆栈计数。 如果传递了多个标签,则将使用布尔 AND 表达式组合它们
tags_any – 包含这些标签的堆栈计数。 如果传递了多个标签,则将使用布尔 OR 表达式组合它们
not_tags – 不包含这些标签的堆栈计数。 如果传递了多个标签,则将使用布尔 AND 表达式组合它们
not_tags_any – 不包含这些标签的堆栈计数。 如果传递了多个标签,则将使用布尔 OR 表达式组合它们
- 返回值:
表示匹配堆栈数量的整数
- create_software_deployment(cnxt, server_id, config_id, input_values, action, status, status_reason, stack_user_project_id, deployment_id=None)[source]¶
- create_stack(cnxt, stack_name, template, params, files, args, environment_files=None, files_container=None, owner_id=None, nested_depth=0, user_creds_id=None, stack_user_project_id=None, parent_resource_name=None, template_id=None)[source]¶
使用提供的模板创建新的堆栈。
请注意,如果使用模板 URL,则在此阶段模板已从 heat-api 进程中提取。
- 参数:
cnxt – RPC 上下文。
stack_name – 您想要创建的堆栈的名称。
template – 您想要创建的堆栈的模板。
params – 堆栈输入参数
files – 模板中引用的文件
args – 从 API 传递的请求参数/参数
environment_files (list 或 None) – 可选的有序环境文件名列表,包含在 files 字典中
files_container – 可选的 swift 容器名称
owner_id – 嵌套堆栈的父堆栈 ID,仅当从另一个 heat-engine(而不是用户选项)调用时才需要
nested_depth – 嵌套堆栈的嵌套深度,仅当从另一个 heat-engine 调用时才需要
user_creds_id – 嵌套堆栈的父 user_creds 记录
stack_user_project_id – 嵌套堆栈的父 stack_user_project_id
parent_resource_name – 父资源名称
template_id – 数据库中预存储模板的 ID
- delete_stack(cnxt, stack_identity)[source]¶
删除给定的堆栈。
- 参数:
cnxt – RPC 上下文。
stack_identity – 您要删除的堆栈的名称。
- export_stack(cnxt, stack_identity)[source]¶
导出堆栈数据 json。
旨在用于在执行放弃操作之前安全地检索堆栈数据。
- 参数:
cnxt – RPC 上下文。
stack_identity – 您要导出的堆栈的名称。
- find_physical_resource(cnxt, physical_resource_id)[source]¶
返回指定资源的标识符。
- 参数:
cnxt – RPC 上下文。
physical_resource_id – 要查找的物理资源 ID。
- generate_template(cnxt, type_name, template_type='cfn')[source]¶
根据指定的类型生成模板。
- 参数:
cnxt – RPC 上下文。
type_name – 要生成模板的资源类型的名称。
template_type – 要生成的模板类型,cfn 或 hot。
- get_environment(cnxt, stack_identity)[source]¶
返回现有堆栈的环境。
- 参数:
cnxt – RPC 上下文
stack_identity – 标识堆栈
- 返回类型:
dict
- get_files(cnxt, stack_identity)[source]¶
返回现有堆栈的文件。
- 参数:
cnxt – RPC 上下文
stack_identity – 标识堆栈
- 返回类型:
dict
- identify_stack(cnxt, stack_name)[source]¶
具有 stack_name 的单个活动堆栈的完整堆栈标识符。
- 参数:
cnxt – RPC 上下文。
stack_name – 要查找的堆栈的名称或 UUID。
- list_events(cnxt, stack_identity, filters=None, limit=None, marker=None, sort_keys=None, sort_dir=None, nested_depth=None)[source]¶
列出与给定堆栈关联的所有事件。
它支持结果的分页(
limit和marker)、排序(sort_keys和sort_dir)和过滤 (filters)。- 参数:
cnxt – RPC 上下文。
stack_identity – 您要获取事件的堆栈的名称
filters – 用于过滤列表的属性:值的字典
limit – 要列出的事件数量(整数或字符串)
marker – 上一页中最后一个事件的 ID
sort_keys – 用于对列表进行排序的字段数组
sort_dir – 排序方向(‘asc’ 或 ‘desc’)。
nested_depth – 要列出事件的嵌套堆栈的层级。
- list_outputs(cntx, stack_identity)[source]¶
获取堆栈输出列表。
- 参数:
cntx – RPC 上下文。
stack_identity – 您要查看的堆栈的名称。
- 返回值:
定义的格式的堆栈输出列表。
- list_resource_types(cnxt, support_status=None, type_name=None, heat_version=None, with_description=False)[source]¶
获取受支持的资源类型列表。
- 参数:
cnxt – RPC 上下文。
support_status – 资源类型的支持状态
type_name – 资源类型的名称(允许正则表达式)
heat_version – Heat 版本
with_description – 是否返回资源类型描述
- list_stack_resources(cnxt, stack_identity, nested_depth=0, with_detail=False, filters=None)[source]¶
- list_stacks(cnxt, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, tenant_safe=True, show_deleted=False, show_nested=False, show_hidden=False, tags=None, tags_any=None, not_tags=None, not_tags_any=None)[source]¶
返回所有堆栈的属性。
它支持结果的分页(
limit和marker)、排序(sort_keys和sort_dir)和过滤 (filters)。- 参数:
cnxt – RPC 上下文
limit – 要列出的堆栈数量(整数或字符串)
marker – 上一页中最后一个项目的 ID
sort_keys – 用于对列表进行排序的字段数组
sort_dir – 排序方向(‘asc’ 或 ‘desc’)
filters – 用于过滤列表的属性:值的字典
tenant_safe – 已弃用,如果为 true,则将请求限定为当前租户
show_deleted – 如果为 true,则显示软删除的堆栈
show_nested – 如果为 true,则显示嵌套堆栈
show_hidden – 如果为 true,则显示隐藏堆栈
tags – 显示包含这些标签的堆栈。如果传递了多个标签,则将使用布尔 AND 表达式组合它们
tags_any – 显示包含这些标签的堆栈。如果传递了多个标签,则将使用布尔 OR 表达式组合它们
not_tags – 显示不包含这些标签的堆栈。如果传递了多个标签,则将使用布尔 AND 表达式组合它们
not_tags_any – 显示不包含这些标签的堆栈。如果传递了多个标签,则将使用布尔 OR 表达式组合它们
- 返回值:
格式化的堆栈列表
- preview_stack(cnxt, stack_name, template, params, files, args, environment_files=None, files_container=None)[source]¶
模拟使用提供的模板创建一个新的堆栈。
请注意,如果使用模板 URL,则在此阶段模板已从 heat-api 进程中提取。
- 参数:
cnxt – RPC 上下文。
stack_name – 您想要创建的堆栈的名称。
template – 您想要创建的堆栈的模板。
params – 堆栈输入参数
files – 模板中引用的文件
args – 从 API 传递的请求参数/参数
environment_files (list 或 None) – 可选的有序环境文件名列表,包含在 files 字典中
files_container – 可选的 swift 容器名称
- preview_update_stack(cnxt, stack_identity, template, params, files, args, environment_files=None, files_container=None)[source]¶
显示更新后会更新的资源。
preview_update_stack 方法显示基于提供的模板和参数更新现有堆栈时会更改的资源。有关参数的描述,请参阅 update_stack。
此方法不能保证更新将具有指定的动作,因为资源插件可以在运行时影响更改/替换。
请注意,如果使用模板 URL,则在此阶段模板已从 heat-api 进程中提取。
- resource_mark_unhealthy(cnxt, stack_identity, resource_name, mark_unhealthy, resource_status_reason=None)[source]¶
将资源标记为健康或不健康。
如果 ‘mark_unhealthy’ 为 true,则将资源置于 CHECK_FAILED 状态。如果 ‘mark_unhealthy’ 为 false 并且资源处于 CHECK_FAILED 状态,则将资源置于 CHECK_COMPLETE。否则,不进行更改。
- 参数:
resource_name – 要么是资源的逻辑名称,要么是物理资源 ID。
mark_unhealthy – 指示资源是否不健康。
resource_status_reason – 健康状态更改的原因。
- resource_schema(cnxt, type_name, with_description=False)[source]¶
返回指定类型的模式。
- 参数:
cnxt – RPC 上下文。
type_name – 要获取模式的资源类型名称。
with_description – 返回带有描述的结果还是不带描述。
- resource_signal(cnxt, stack_identity, resource_name, details, sync_call=False)[source]¶
调用指定资源的资源信号。
- 参数:
sync_call – 指示是否期望同步调用行为。这保留用于 CFN WaitCondition 实现。
- show_output(cntx, stack_identity, output_key)[source]¶
返回包含指定输出键、值和描述的字典。
- 参数:
cntx – RPC 上下文。
stack_identity – 您要查看的堆栈的名称。
output_key – 所需堆栈输出的键。
- 返回值:
包含以定义格式的输出键、值和描述的字典。
- show_stack(cnxt, stack_identity, resolve_outputs=True)[source]¶
返回一个或所有堆栈的详细信息。
- 参数:
cnxt – RPC 上下文。
stack_identity – 您想要显示的堆栈的名称,或者 None 以显示所有堆栈
resolve_outputs – 如果为 True,则将解析给定堆栈/堆栈的输出
- stack_cancel_update(cnxt, stack_identity, cancel_with_rollback=True)[source]¶
取消当前正在运行的堆栈更新。
- 参数:
cnxt – RPC 上下文。
stack_identity – 要取消更新的堆栈的名称。
cancel_with_rollback – 强制回滚更新。
- update_software_deployment(cnxt, deployment_id, config_id, input_values, output_values, action, status, status_reason, updated_at)[source]¶
- update_stack(cnxt, stack_identity, template, params, files, args, environment_files=None, files_container=None, template_id=None)[source]¶
基于提供的模板和参数更新现有的堆栈。
请注意,如果使用模板 URL,则在此阶段模板已从 heat-api 进程中提取。
- 参数:
cnxt – RPC 上下文。
stack_identity – 您想要创建的堆栈的名称。
template – 您想要创建的堆栈的模板。
params – 堆栈输入参数
files – 模板中引用的文件
args – 从 API 传递的请求参数/参数
environment_files (list 或 None) – 可选的有序环境文件名列表,包含在 files 字典中
files_container – 可选的 swift 容器名称
template_id – 数据库中预存储模板的 ID
- validate_template(cnxt, template, params=None, files=None, environment_files=None, files_container=None, show_nested=False, ignorable_errors=None)[source]¶
检查模板的有效性。
尽可能地检查模板是否有效,并返回有关参数的信息,这些信息适用于生成一个用户界面,通过该界面可以指定参数值。
- 参数:
cnxt – RPC 上下文。
template – 您想要创建的堆栈的模板。
params – 堆栈输入参数
files – 模板中引用的文件
environment_files (list 或 None) – 可选的有序环境文件名列表,包含在 files 字典中
files_container – 可选的 swift 容器名称
show_nested – 如果为 True,则将检查任何嵌套模板
ignorable_errors – 作为验证的一部分要忽略的错误代码列表
- class heat.engine.service.ThreadGroupManager[source]¶
基类:
object- add_timer(stack_id, func, *args, **kwargs)[source]¶
在堆栈线程组中定义一个周期性任务。
该任务在单独的线程中运行。
周期性为 cfg.CONF.periodic_interval
- start_with_acquired_lock(stack, lock, func, *args, **kwargs)[source]¶
使用现有的堆栈锁在子线程中运行给定的方法。
线程完成后释放提供的锁。
- 参数:
stack (heat.engine.parser.Stack) – 要操作的堆栈
lock (heat.engine.stack_lock.StackLock) – 获取的堆栈锁
func (function 或 instancemethod) – 在子线程中调用的可调用对象
args – 要传递给 func 的参数
kwargs – 要传递给 func 的关键字参数