注意
本文档适用于 Ceph 的开发版本。
硬件监控
node-proxy 是指定运行代理的内部名称,该代理对机器的硬件进行盘点,提供不同的状态并使操作员能够执行一些操作。它从 RedFish API 收集详细信息,处理并将数据推送到 Ceph 管理守护程序中的代理端点。
限制
目前,node-proxy 代理依赖于 RedFish API。这意味着 node-proxy 代理和 ceph-mgr 守护程序都需要能够访问带外网络才能工作。
部署代理
# cat host.yml
---
service_type: host
hostname: node-10
addr: 10.10.10.10
oob:
addr: 20.20.20.10
username: admin
password: p@ssword
应用规范
# ceph orch apply -i host.yml
Added host 'node-10' with addr '10.10.10.10'
部署代理
# ceph config set mgr mgr/cephadm/hw_monitoring true
命令行界面
支持的类别是
summary (默认)
memory
storage
processors
network
power
fans
firmwares
criticals
示例
硬件健康状态摘要
# ceph orch hardware status
+------------+---------+-----+-----+--------+-------+------+
| HOST | STORAGE | CPU | NET | MEMORY | POWER | FANS |
+------------+---------+-----+-----+--------+-------+------+
| node-10 | ok | ok | ok | ok | ok | ok |
+------------+---------+-----+-----+--------+-------+------+
存储设备报告
# ceph orch hardware status IBM-Ceph-1 --category storage
+------------+--------------------------------------------------------+------------------+----------------+----------+----------------+--------+---------+
| HOST | NAME | MODEL | SIZE | PROTOCOL | SN | STATUS | STATE |
+------------+--------------------------------------------------------+------------------+----------------+----------+----------------+--------+---------+
| node-10 | Disk 8 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT99QLL | OK | Enabled |
| node-10 | Disk 10 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT98ZYX | OK | Enabled |
| node-10 | Disk 11 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT98ZWB | OK | Enabled |
| node-10 | Disk 9 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT98ZC9 | OK | Enabled |
| node-10 | Disk 3 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT9903Y | OK | Enabled |
| node-10 | Disk 1 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT9901E | OK | Enabled |
| node-10 | Disk 7 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT98ZQJ | OK | Enabled |
| node-10 | Disk 2 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT99PA2 | OK | Enabled |
| node-10 | Disk 4 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT99PFG | OK | Enabled |
| node-10 | Disk 0 in Backplane 0 of Storage Controller in Slot 2 | MZ7L33T8HBNAAD3 | 3840755981824 | SATA | S6M5NE0T800539 | OK | Enabled |
| node-10 | Disk 1 in Backplane 0 of Storage Controller in Slot 2 | MZ7L33T8HBNAAD3 | 3840755981824 | SATA | S6M5NE0T800554 | OK | Enabled |
| node-10 | Disk 6 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT98ZER | OK | Enabled |
| node-10 | Disk 0 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT98ZEJ | OK | Enabled |
| node-10 | Disk 5 in Backplane 1 of Storage Controller in Slot 2 | ST20000NM008D-3D | 20000588955136 | SATA | ZVT99QMH | OK | Enabled |
| node-10 | Disk 0 on AHCI Controller in SL 6 | MTFDDAV240TDU | 240057409536 | SATA | 22373BB1E0F8 | OK | Enabled |
| node-10 | Disk 1 on AHCI Controller in SL 6 | MTFDDAV240TDU | 240057409536 | SATA | 22373BB1E0D5 | OK | Enabled |
+------------+--------------------------------------------------------+------------------+----------------+----------+----------------+--------+---------+
固件详情
# ceph orch hardware status node-10 --category firmwares
+------------+----------------------------------------------------------------------------+--------------------------------------------------------------+----------------------+-------------+--------+
| HOST | COMPONENT | NAME | DATE | VERSION | STATUS |
+------------+----------------------------------------------------------------------------+--------------------------------------------------------------+----------------------+-------------+--------+
| node-10 | current-107649-7.03__raid.backplane.firmware.0 | Backplane 0 | 2022-12-05T00:00:00Z | 7.03 | OK |
... omitted output ...
| node-10 | previous-25227-6.10.30.20__idrac.embedded.1-1 | Integrated Remote Access Controller | 00:00:00Z | 6.10.30.20 | OK |
+------------+----------------------------------------------------------------------------+--------------------------------------------------------------+----------------------+-------------+--------+
硬件严重警告报告
# ceph orch hardware status --category criticals
+------------+-----------+------------+----------+-----------------+
| HOST | COMPONENT | NAME | STATUS | STATE |
+------------+-----------+------------+----------+-----------------+
| node-10 | power | PS2 Status | critical | unplugged |
+------------+-----------+------------+----------+-----------------+
开发者
- class cephadm.agent.NodeProxyEndpoint(mgr)
- NodeProxyEndpoint.__init__(mgr)
- NodeProxyEndpoint.oob(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.data(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.fullreport(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.summary(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.criticals(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.memory(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.storage(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.network(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.power(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.processors(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.fans(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.firmwares(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。
- NodeProxyEndpoint.led(**kwargs)
创建一个新的 Mock 对象。Mock 接受几个可选参数,用于指定 Mock 对象的行为
spec:这可以是一个字符串列表或一个现有对象(一个类或实例),用作模拟对象的规范。如果传入一个对象,则通过对该对象调用 dir(不包括不支持的魔术属性和方法)来形成字符串列表。访问此列表中不存在的任何属性都会引发 AttributeError。
如果 spec 是一个对象(而不是字符串列表),则 mock.__class__ 返回 spec 对象的类。这允许模拟通过 isinstance 测试。
spec_set:spec 的更严格变体。如果使用,尝试在模拟上设置或获取 spec_set 中不存在的属性将引发 AttributeError。
side_effect:每当调用 Mock 时都会调用的函数。请参阅 side_effect 属性。可用于引发异常或动态更改返回值。该函数使用与模拟相同的参数调用,除非它返回 DEFAULT,否则此函数的返回值将用作返回值。
如果 side_effect 是一个可迭代对象,则每次对模拟的调用都将返回可迭代对象中的下一个值。如果可迭代对象的任何成员是异常,它们将被引发而不是返回。
return_value:调用模拟时返回的值。默认情况下,这是一个新的 Mock(在首次访问时创建)。请参阅 return_value 属性。
wraps:模拟对象要包装的项目。如果 wraps 不为 None,则调用 Mock 会将调用传递给被包装对象(返回真实结果)。对模拟的属性访问将返回一个 Mock 对象,该对象包装了被包装对象的相应属性(因此尝试访问不存在的属性将引发 AttributeError)。
如果模拟设置了显式的 return_value,则调用不会传递给被包装对象,而是返回 return_value。
name:如果模拟有一个名称,它将用于模拟的 repr 中。这对于调试很有用。名称会传播到子模拟。
模拟也可以使用任意关键字参数调用。这些将用于在创建模拟后设置模拟上的属性。