openstack.baremetal.v1.Node¶
Node 类¶
Node 类继承自 Resource。
- class openstack.baremetal.v1.node.Node(_synchronized=False, connection=None, **attrs)¶
基础资源
- 参数:
_synchronized (bool) – 这不打算直接使用。请参阅
new()和existing()。connection (openstack.connection.Connection) – 对正在使用的 Connection 的引用。默认为 None,允许在单元测试中等情况下使用不带活动 Connection 的 Resource 对象。Resource 代码中对
self._connection的使用应使用 None 检查进行保护。
- resources_key = 'nodes'¶
资源的复数形式的键。
- base_path = '/nodes'¶
此资源的 URI 的基本部分。
- allow_create = True¶
允许对此资源进行创建操作。
- allow_fetch = True¶
允许对此资源进行获取操作。
- allow_commit = True¶
允许对此资源进行更新操作。
- allow_delete = True¶
允许对此资源进行删除操作。
- allow_list = True¶
允许对此资源进行列表操作。
- allow_patch = True¶
允许对此资源进行 patch 操作。
- commit_method = 'PATCH'¶
提交资源的 HTTP 方法 (PUT、PATCH、POST)
- commit_jsonpatch = True¶
提交是否使用 JSON patch 格式。
- allocation_id¶
与此节点关联的分配的 UUID。在 API 微版本 1.52 中添加。
- owner¶
拥有裸机节点的租户的字符串或 UUID。在 API 微版本 1.50 中添加。
- boot_mode¶
当前的启动模式状态 (uefi/bios)。在 API 微版本 1.75 中添加。
- chassis_id¶
与此节点关联的底盘的 UUID。可以为空或 None。
- clean_step¶
当前的清理步骤。
- conductor_group¶
管理此节点的 Conductor 组。在 API 微版本 1.46 中添加。
- created_at¶
上次更新节点的的时间戳。
- deploy_step¶
当前的部署步骤。在 API 微版本 1.44 中添加。
- description¶
节点的描述。在 API 微版本 1.51 中添加。
- driver¶
驱动程序的名称。
- driver_info¶
驱动程序管理此节点所需的所有元数据。字段列表因驱动程序而异,可以从
openstack.baremetal.v1.driver.Driver资源中检索。
- driver_internal_info¶
节点驱动程序设置和存储的内部元数据。此为只读的。
- extra¶
一组或多组任意元数据键值对。
- fault¶
导致节点进入维护模式的故障类型。在 API 微版本 1.42 中引入。
- id¶
节点资源的 UUID。
- instance_info¶
用于自定义部署镜像的信息,例如根分区的大小、base64 编码字符串形式的 config drive 和其他元数据。
- instance_id¶
与此节点关联的 nova 实例的 UUID。
- is_automated_clean_enabled¶
覆盖启用自动清理。在 API 微版本 1.47 中添加。
- is_console_enabled¶
是否在此节点上启用控制台访问。
- is_maintenance¶
节点是否当前处于“维护模式”。置于维护模式的节点将被从可用资源池中移除。
- is_retired¶
是否将节点标记为已退休。在 API 微版本 1.61 中添加。
- is_secure_boot¶
节点是否当前以启用安全启动的方式启动。在 API 微版本 1.75 中添加。
- last_error¶
从开始但未能完成的最近事务中的任何错误。
- lessee¶
指示节点是否租给特定项目的字段。在 API 版本 1.65 中添加
- links¶
相对链接列表,包括 self 和 bookmark 链接。
- maintenance_reason¶
用户可设置的描述,说明节点被置于维护模式的原因。
- name¶
节点的易于理解的标识符。可能未定义。某些单词是保留的。在 API 微版本 1.5 中添加
- parent_node¶
作为此节点的父节点的节点。在 API 版本 1.83 中添加
- ports¶
链接到此节点上的端口集合。
- port_groups¶
链接到此节点上的端口组集合。自 API 微版本 1.24 起可用。
- power_state¶
当前的电源状态。通常为“电源开启”或“电源关闭”,但如果服务无法确定电源状态,则可能是“None”。
- properties¶
节点的物理特性。内容由服务在检查期间填充。
- provision_state¶
节点的当前配置状态。
- retired_reason¶
节点被标记为已退休的原因。在 API 微版本 1.61 中添加。
- raid_config¶
节点的当前 RAID 配置。
- reservation¶
正在持有此节点上锁定的服务 Conductor 主机的名称,如果已持有锁。
- resource_class¶
外部调度程序用作识别此节点作为特定类型资源单元的字符串。在 API 微版本 1.21 中添加。
- service_step¶
当前正在执行的服务步骤的字符串。在 API 微版本 1.89 中添加。
- runbook¶
作为替代
clean_steps或service_steps的 runbook 的 UUID 或逻辑名称的字符串。在 API 微版本 1.92 中添加。
- shard¶
指示此节点所属的分片的字符串。在 API 微版本 1,82 中添加。
- states¶
链接到状态集合。
- target_provision_state¶
如果请求了配置操作,则为请求的状态。例如,
AVAILABLE、DEPLOYING、DEPLOYWAIT、DEPLOYING、ACTIVE等。
- target_power_state¶
状态转换期间请求的状态。
- target_raid_config¶
将在节点下次通过 CLEANING 状态转换时应用的节点的请求 RAID 配置。
- traits¶
节点的特性。在 API 微版本 1.37 中引入。
- updated_at¶
上次更新节点的的时间戳。
- bios_interface¶
用于设置节点 BIOS 属性时的 BIOS 接口。在 API 微版本 1.40 中引入。
- boot_interface¶
用于配置节点启动的启动接口。在 API 微版本 1.31 中引入。
- console_interface¶
用于处理串口控制台时的控制台接口。在 API 微版本 1.31 中引入。
- deploy_interface¶
用于部署节点时的部署接口。在 API 微版本 1.31 中引入。
- firmware_interface¶
用于管理节点时的固件接口。在 API 微版本 1.86 中引入
- inspect_interface¶
用于检查节点时的检查接口。在 API 微版本 1.31 中引入。
- management_interface¶
用于节点管理操作的管理接口。在 API 微版本 1.31 中引入。
- network_interface¶
用于为该节点配置网络连接的网络接口提供程序。在 API 微版本 1.20 中引入。
- power_interface¶
用于节点电源操作的电源接口。在 API 微版本 1.31 中引入。
- raid_interface¶
用于配置节点 RAID 的 RAID 接口。在 API 微版本 1.31 中引入。
- rescue_interface¶
用于节点救援的救援接口。在 API 微版本 1.38 中引入。
- storage_interface¶
用于附加远程存储的存储接口。在 API 微版本 1.33 中引入。
- vendor_interface¶
用于节点供应商特定操作的供应商接口。在 API 微版本 1.31 中引入。
- create(session, *args, **kwargs)¶
基于此实例创建远程资源。
覆盖的版本能够处理填充的
provision_state字段,该字段的值为以下三种之一:enroll、manageable或available。如果未提供,则使用服务器默认值(Ironic 的较新版本中为enroll)。此调用不会导致节点进行自动清理。如果需要,请使用
provision_state=manageable,然后调用set_provision_state()。请注意,需要 Bare Metal API 1.4 才能使用
manageable,需要 1.11 才能使用enroll。警告
使用
provision_state=available仅适用于 API 版本 1.1 到 1.10,因此与设置在 1.11 之后出现的任何字段不兼容。- 参数:
session (
Adapter) – 用于发出此请求的会话。- 返回值:
此
Resource实例。- 引发:
如果节点
provision_state不是None、enroll、manageable或available中的一个,则会引发 ValueError。- 引发:
NotSupported如果服务器支持的任何 API 版本都无法达到provision_state。
- set_provision_state(session, target, config_drive=None, clean_steps=None, rescue_password=None, wait=False, timeout=None, deploy_steps=None, service_steps=None, runbook=None)¶
运行一个操作来修改此节点的配置状态。
此调用是异步的,一旦 Bare Metal 服务确认请求,它将返回成功。
- 参数:
session (
Adapter) – 用于发出此请求的会话。target – 配置操作,例如
active、provide。有关可用操作,请参阅 Bare Metal 服务文档。config_drive – 要传递给节点的配置驱动器,仅对
active` 和 ``rebuild目标有效。您可以使用openstack.baremetal.configdrive中的函数来构建它。clean_steps – 要执行的清理步骤,仅对
clean目标有效。rescue_password – 救援操作的密码,仅对
rescue目标有效。wait – 是否等待达到目标状态。
timeout – 等待达到目标状态的超时时间(秒)。如果为
None,则无限期等待。deploy_steps – 要执行的部署步骤,仅对
active和rebuild目标有效。service_steps – 要执行的服务步骤,仅对
service目标有效。runbook – 运行手册的 UUID 或逻辑名称。
- 返回值:
此
Node实例。- 引发:
如果
config_drive、clean_steps、deploy_steps或rescue_password与无效的target一起提供,则会引发 ValueError。- 引发:
ResourceFailure如果节点在等待状态时达到错误状态。- 引发:
ResourceTimeout如果在等待状态时达到超时。
- wait_for_power_state(session, expected_state, timeout=None)¶
等待节点达到预期的电源状态。
- 参数:
session (
Adapter) – 用于发出此请求的会话。expected_state – 预期的电源状态。
timeout – 如果
wait设置为True,则指定等待预期状态达到的时间(秒)。None(默认值)表示没有客户端超时。
- 返回值:
此
Node实例。- 引发:
ResourceTimeout超时时。
- wait_for_provision_state(session, expected_state, timeout=None, abort_on_failed_state=True)¶
等待节点达到预期的状态。
- 参数:
session (
Adapter) – 用于发出此请求的会话。expected_state – 预期的配置状态。
timeout – 如果
wait设置为True,则指定等待预期状态达到的时间(秒)。None(默认值)表示没有客户端超时。abort_on_failed_state – 如果为
True(默认值),则如果节点达到与预期状态不匹配的失败状态,则中止等待。请注意,enroll->manageable转换的失败状态是enroll。
- 返回值:
此
Node实例。- 引发:
ResourceFailure如果节点在等待状态时达到错误状态,并且abort_on_failed_state为True。- 引发:
ResourceTimeout超时时。
- wait_for_reservation(session, timeout=None)¶
等待释放节点上的锁。
Ironic 中的裸机节点具有一个预留锁,用于表示一个 conductor 已经锁定了节点,以便执行某种操作,例如作为机器状态更改的结果更改配置。
此锁可能发生在电源同步期间,并阻止更新附加到节点的对象,例如端口。
请注意,在本次调用返回后,一个 conductor 仍然可以重新获取锁,因此应将其视为尽力而为。
如果节点上没有预留,则立即返回。
- 参数:
session (
Adapter) – 用于发出此请求的会话。timeout – 如果
wait设置为True,则指定等待锁释放的时间(秒)。None(默认值)表示没有超时。
- 返回值:
此
Node实例。
- inject_nmi(session)¶
注入 NMI。
- 参数:
session – 用于进行此请求的会话。
- 返回值:
无
- set_power_state(session, target, wait=False, timeout=None)¶
运行一个操作来修改此节点的电源状态。
此调用是异步的,一旦 Bare Metal 服务确认请求,它将返回成功。
- 参数:
session (
Adapter) – 用于发出此请求的会话。target – 目标电源状态,作为
PowerAction或一个字符串。wait – 是否等待达到预期的电源状态。
timeout – 等待达到目标状态的超时时间(秒)。如果为
None,则无限期等待。
- attach_vmedia(session, device_type, image_url, image_download_source=None, retry_on_conflict=True)¶
将虚拟介质设备附加到节点。
- 参数:
session (
Adapter) – 用于发出此请求的会话。device_type – 虚拟媒体设备的类型。
image_url – 要附加的镜像的 URL。
image_download_source – 镜像下载的来源。
retry_on_conflict – 是否重试 HTTP CONFLICT 错误。当虚拟媒体已经在节点上使用或节点被锁定时,可能会发生这种情况。由于后者更常见,因此默认值为 True。
- 返回值:
无- 引发:
NotSupported如果服务器不支持 VMEDIA API。
- detach_vmedia(session, device_types=None)¶
从节点分离虚拟媒体
- 参数:
session (
Adapter) – 用于发出此请求的会话。device_types – 要分离的虚拟媒体设备的类型列表。
- 返回值:
True如果虚拟媒体已分离,否则False。- 引发:
NotSupported如果服务器不支持 VMEDIA API
- attach_vif(session, vif_id, retry_on_conflict=True, *, port_id=None, port_group_id=None)¶
将 VIF 附加到节点。
VIF ID 的确切形式取决于节点使用的网络接口。在最常见的情况下,它是网络服务端口(而不是裸机端口)ID。VIF 在同一时间只能附加到一个节点。
- 参数:
session (
Adapter) – 用于发出此请求的会话。vif_id – 特定于后端的 VIF ID。
retry_on_conflict – 是否重试 HTTP CONFLICT 错误。当 VIF 已被节点使用或节点被锁定时,可能会发生这种情况。由于后者更常见,因此默认值为 True。
port_id – 要附加 VIF 的端口的 UUID。只能提供 port_id 或 port_group_id 中的一个。
port_group_id – 要附加到的端口组的 UUID。只能提供 port_group_id 或 port_id 中的一个。
- 返回值:
无
- 引发:
NotSupported如果服务器不支持 VIF API。- 引发:
InvalidRequest如果同时提供了 port_id 和 port_group_id。
- detach_vif(session, vif_id, ignore_missing=True)¶
将 VIF 从节点分离。
VIF ID 的确切形式取决于节点使用的网络接口。在最常见的情况下,它是网络服务端口(而不是裸机端口)ID。
- 参数:
session (
Adapter) – 用于发出此请求的会话。vif_id (string) – 特定于后端的 VIF ID。
ignore_missing (bool) – 当设置为
False时,如果 VIF 不存在,将引发NotFoundException。否则,返回False。
- 返回值:
True如果 VIF 已分离,否则False。- 引发:
NotSupported如果服务器不支持 VIF API。
- list_vifs(session)¶
列出附加到节点的 VIF 的 ID。
VIF ID 的确切形式取决于节点使用的网络接口。在最常见的情况下,它是网络服务端口(而不是裸机端口)ID。
- 参数:
session (
Adapter) – 用于发出此请求的会话。- 返回值:
VIF ID 列表,以字符串形式表示。
- 引发:
NotSupported如果服务器不支持 VIF API。
- validate(session, required=('boot', 'deploy', 'power'))¶
验证节点上的必要信息。
- 参数:
session (
Adapter) – 用于发出此请求的会话。required – 必须通过验证的接口列表。默认值为用于配置的最小必要接口列表。
- 返回值:
将接口名称映射到
ValidationResult对象的字典。- 引发:
ValidationException如果必需接口的验证失败。
- set_maintenance(session, reason=None)¶
启用节点上的维护模式。
- 参数:
session (
Adapter) – 用于发出此请求的会话。reason – 可选的维护原因。
- 返回值:
此
Node实例。
- get_boot_device(session)¶
获取节点启动设备。
- 参数:
session – 用于进行此请求的会话。
- 返回值:
HTTP 响应。
- set_boot_device(session, boot_device, persistent=False)¶
设置节点启动设备
- 参数:
session – 用于进行此请求的会话。
boot_device – 要分配给节点的启动设备。
persistent – 如果节点重启后启动设备更改是否保持。
- 返回值:
无
- get_supported_boot_devices(session)¶
获取节点支持的启动设备。
- 参数:
session – 用于进行此请求的会话。
- 返回值:
HTTP 响应。
- set_boot_mode(session, target)¶
发出请求以更改节点的启动模式
此调用是异步的,一旦 Bare Metal 服务确认请求,它将返回成功。
- 参数:
session – 用于进行此请求的会话。
target – 要设置为节点的启动模式,可以是 ‘uefi’/’bios’ 中的一种。
- 返回值:
无- 引发:
ValueError 如果
target不是 ‘uefi’ 或 ‘bios’ 中的一种。
- set_secure_boot(session, target)¶
发出请求以更改节点的安全启动状态
此调用是异步的,一旦 Bare Metal 服务确认请求,它将返回成功。
- 参数:
session – 用于进行此请求的会话。
target (bool) – 指示安全启动状态的布尔值。True/False 分别对应于 ‘on’/’off’。
- 返回值:
无- 引发:
ValueError 如果
target不是布尔值。
- add_trait(session, trait)¶
将特性添加到节点。
- 参数:
session – 用于进行此请求的会话。
trait – 要添加到节点的特性。
- 返回值:
无
- remove_trait(session, trait, ignore_missing=True)¶
从节点删除特性。
- 参数:
session – 用于进行此请求的会话。
trait – 要从节点删除的特性。
ignore_missing (bool) – 当设置为
False时,如果特性不存在,将引发NotFoundException。否则,返回False。
- 返回布尔值:
成功删除特性时返回 True。如果特性已经不存在,则返回 False。
- set_traits(session, traits)¶
设置节点的特性。
移除任何现有的 traits,并添加通过此方法传递的 traits。
- 参数:
session – 用于进行此请求的会话。
traits – 要添加到节点的 traits 列表。
- 返回值:
无
- call_vendor_passthru(session, verb, method, body=None)¶
调用供应商直通方法。
- 参数:
session – 用于进行此请求的会话。
verb – HTTP 动词,可以是 GET、SET、POST、DELETE。
method – 使用 vendor_passthru 要调用的方法。
body – HTTP 调用中的 JSON 主体。
- 返回值:
HTTP 响应。
- list_vendor_passthru(session)¶
列出节点上的供应商直通方法。
- 参数:
session – 用于进行此请求的会话。
- 返回值:
HTTP 响应。
- get_console(session)¶
获取节点控制台。
- 参数:
session – 用于进行此请求的会话。
- 返回值:
HTTP 响应。
- set_console_mode(session, enabled)¶
设置节点控制台模式。
- 参数:
session – 用于进行此请求的会话。
enabled – 控制台是否应启用。
- 返回值:
无
- get_node_inventory(session, node_id)¶
获取节点的清单。
- 参数:
session – 用于进行此请求的会话。
node_id – **已弃用** 节点的 ID。
- 返回值:
HTTP 响应。
- list_firmware(session)¶
列出与节点关联的固件组件。
- 参数:
session – 用于进行此请求的会话。
- 返回值:
HTTP 响应。
- patch(session, patch=None, prepend_key=True, has_body=True, retry_on_conflict=None, base_path=None, *, microversion=None, reset_interfaces=None)¶
修补远程资源。
允许通过提供要应用于资源的 JSON 补丁列表来修改资源。补丁可以使用原始(服务器端)和 SDK 字段名称。
- 参数:
session (
Adapter) – 用于发出此请求的会话。patch – 附加的 JSON 补丁,为列表或单个补丁项。如果提供,它将应用于当前资源的任何更改之上。
prepend_key – 一个布尔值,指示是否应在资源更新请求中将 resource_key 附加到前面。默认为 True。
retry_on_conflict (bool) – 是否启用在 HTTP CONFLICT (409) 发生时重试。值为
None将使用 Adapter 的默认值。base_path (str) – 修改资源的 URI 的基本部分,如果与
base_path不同。microversion (str) – 覆盖协商版本使用的 API 版本。
- 返回值:
此
Resource实例。- 引发:
MethodNotSupported如果Resource.allow_patch未设置为True。
PowerAction 类¶
PowerAction 枚举表示已知的电源操作。
- class openstack.baremetal.v1.node.PowerAction(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
将操作映射到目标电源状态。
- POWER_ON = 'power on'¶
打开节点电源。
- POWER_OFF = 'power off'¶
关闭节点电源(使用硬关机)。
- REBOOT = 'rebooting'¶
重启节点(使用硬关机)。
- SOFT_POWER_OFF = 'soft power off'¶
使用软关机关闭节点电源。
- SOFT_REBOOT = 'soft rebooting'¶
使用软关机重启节点。
ValidationResult 类¶
ValidationResult 类表示验证结果。
- class openstack.baremetal.v1.node.ValidationResult(result, reason)¶
单个接口验证的结果。
- 变量:
result – 验证结果,
True表示成功,False表示失败,None表示不支持的接口。reason – 如果
result是False或None,则解释结果。
WaitResult 类¶
WaitResult 类表示等待多个节点的结果。