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'
listening(ctxt)[source]

响应看门狗请求。

肯定地响应,以确认执行该操作的引擎仍然存活。

send(ctxt, stack_identity, message)[source]
start()[source]
stop()[source]
stop_stack(ctxt, stack_identity)[source]

停止堆栈上的任何活动线程。

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 堆栈但不删除物理资源。

authenticated_to_backend(cnxt)[source]

验证 RPC 上下文中的凭据。

验证 RPC 上下文中的凭据是否有效,用于当前的云后端。

check_software_deployment(cnxt, deployment_id, timeout)[source]
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_config(cnxt, group, name, config, inputs, outputs, options)[source]
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 (listNone) – 可选的有序环境文件名列表,包含在 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_snapshot(cnxt, stack_identity, snapshot_id)[source]
delete_software_config(cnxt, config_id)[source]
delete_software_deployment(cnxt, deployment_id)[source]
delete_stack(cnxt, stack_identity)[source]

删除给定的堆栈。

参数:
  • cnxt – RPC 上下文。

  • stack_identity – 您要删除的堆栈的名称。

describe_stack_resource(cnxt, stack_identity, resource_name, with_attr=None)[source]
describe_stack_resources(cnxt, stack_identity, resource_name)[source]
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

get_revision(cnxt)[source]
get_template(cnxt, stack_identity)[source]

获取模板。

参数:
  • cnxt – RPC 上下文。

  • stack_identity – 您要查看的堆栈的名称。

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]

列出与给定堆栈关联的所有事件。

它支持结果的分页(limitmarker)、排序(sort_keyssort_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_services(cnxt)[source]
list_software_configs(cnxt, limit=None, marker=None, tenant_safe=True)[source]
list_software_deployments(cnxt, server_id)[source]
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]

返回所有堆栈的属性。

它支持结果的分页(limitmarker)、排序(sort_keyssort_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 表达式组合它们

返回值:

格式化的堆栈列表

list_template_functions(cnxt, template_version, with_condition=False)[source]
list_template_versions(cnxt)[source]
metadata_software_deployments(cnxt, server_id)[source]
migrate_convergence_1(ctxt, stack_id)[source]
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 (listNone) – 可选的有序环境文件名列表,包含在 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 进程中提取。

reset()[source]

重置服务。

当在守护模式下运行的服务收到 SIGHUP 时调用。

reset_stack_status()[source]
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 实现。

service_manage_cleanup()[source]
service_manage_report()[source]
show_output(cntx, stack_identity, output_key)[source]

返回包含指定输出键、值和描述的字典。

参数:
  • cntx – RPC 上下文。

  • stack_identity – 您要查看的堆栈的名称。

  • output_key – 所需堆栈输出的键。

返回值:

包含以定义格式的输出键、值和描述的字典。

show_snapshot(cnxt, stack_identity, snapshot_id)[source]
show_software_config(cnxt, config_id)[source]
show_software_deployment(cnxt, deployment_id)[source]
show_stack(cnxt, stack_identity, resolve_outputs=True)[source]

返回一个或所有堆栈的详细信息。

参数:
  • cnxt – RPC 上下文。

  • stack_identity – 您想要显示的堆栈的名称,或者 None 以显示所有堆栈

  • resolve_outputs – 如果为 True,则将解析给定堆栈/堆栈的输出

signal_software_deployment(cnxt, deployment_id, details, updated_at)[source]
stack_cancel_update(cnxt, stack_identity, cancel_with_rollback=True)[source]

取消当前正在运行的堆栈更新。

参数:
  • cnxt – RPC 上下文。

  • stack_identity – 要取消更新的堆栈的名称。

  • cancel_with_rollback – 强制回滚更新。

stack_check(cnxt, stack_identity)[source]

处理对堆栈执行检查操作的请求。

stack_list_snapshots(cnxt, stack_identity)[source]
stack_restore(cnxt, stack_identity, snapshot_id)[source]
stack_resume(cnxt, stack_identity)[source]

处理对堆栈执行恢复操作的请求。

stack_snapshot(cnxt, stack_identity, name)[source]
stack_suspend(cnxt, stack_identity)[source]

处理对堆栈执行暂停操作的请求。

start()[source]

启动服务。

stop()[source]

停止服务。

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 (listNone) – 可选的有序环境文件名列表,包含在 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 (listNone) – 可选的有序环境文件名列表,包含在 files 字典中

  • files_container – 可选的 swift 容器名称

  • show_nested – 如果为 True,则将检查任何嵌套模板

  • ignorable_errors – 作为验证的一部分要忽略的错误代码列表

wait()[source]

等待服务完成。

class heat.engine.service.NotifyEvent[source]

基类: object

signal()[source]

发出事件信号。

signalled()[source]
wait(timeout=None)[source]

等待事件,可选的超时时间。

class heat.engine.service.ThreadGroup(thread_pool_size=10)[source]

基础: ThreadGroup

add_thread(func, *args, **kwargs)[source]

在组中启动一个新线程。

class heat.engine.service.ThreadGroupManager[source]

基类: object

add_msg_queue(stack_id, msg_queue)[source]
add_timer(stack_id, func, *args, **kwargs)[source]

在堆栈线程组中定义一个周期性任务。

该任务在单独的线程中运行。

周期性为 cfg.CONF.periodic_interval

remove_msg_queue(gt, stack_id, msg_queue)[source]
send(stack_id, message)[source]
start(stack_id, func, *args, **kwargs)[source]

在子线程中运行给定的方法。

start_with_acquired_lock(stack, lock, func, *args, **kwargs)[source]

使用现有的堆栈锁在子线程中运行给定的方法。

线程完成后释放提供的锁。

参数:
  • stack (heat.engine.parser.Stack) – 要操作的堆栈

  • lock (heat.engine.stack_lock.StackLock) – 获取的堆栈锁

  • func (functioninstancemethod) – 在子线程中调用的可调用对象

  • args – 要传递给 func 的参数

  • kwargs – 要传递给 func 的关键字参数

start_with_lock(cnxt, stack, engine_id, func, *args, **kwargs)[source]

在获取堆栈锁后在子线程中运行该方法。

线程完成后释放锁。

参数:
  • cnxt – RPC 上下文

  • stack (heat.engine.parser.Stack) – 要操作的堆栈

  • engine_id – 获取锁的引擎/工作程序的 UUID

  • func (functioninstancemethod) – 在子线程中调用的可调用对象

  • args – 要传递给 func 的参数

  • kwargs – 要传递给 func 的关键字参数。

stop(stack_id, graceful=False)[source]

停止堆栈上的任何活动线程。

stop_timers(stack_id)[source]
stopall()[source]
class heat.engine.service.ThreadWithCallback(target, args=(), kwargs=None)[source]

基础: Thread

支持在完成时执行回调函数的线程。

添加一个回调函数,在线程完成后执行。

run()[source]

表示线程活动的方法。

您可以重写子类中的此方法。标准的 run() 方法调用作为目标参数传递给对象的可调用对象(如果有),并使用 args 和 kwargs 参数中的顺序参数和关键字参数。