- 1.nova计算服务的API使用
- (1)server服务器状态
- (2)查询所有的server实例
- (3)查询所有server实例的详细信息
- (4)创建单个server实例
- (5)创建多个server实例
- (6)删除单个server实例
- (7)启动一个server实例
- (8)停止一个server实例
- (9)根据server实例创建image镜像
- (10)调整server实例的大小
- (11)获取控制台链接
- (12)获取server实例的使用诊断信息
- (13)获取server实例的ip信息
- (14)获取server实例的操作
- (15)将卷挂载到指定server实例
- (16)查询指定server实例的挂载卷
- (17)将卷从实例中分离
- (18)获取所有的flavor信息
- (19)创建一个flavor
- (20)删除一个flavor
- (21)获取所有的hypervisor程序
1.nova计算服务的API使用
(1)server服务器状态
服务器包含指示当前服务器状态的状态属性。当您完成列表服务器请求时,您可以过滤服务器状态。服务器状态在响应正文中返回。可能的服务器状态值为:
• ACTIVE. 服务器处于活动状态。
• BUILD. 服务器尚未完成原始构建过程。
• DELETED. 服务器被永久删除。
• ERROR. 服务器出错了。
• HARD_REBOOT. 服务器硬重启。这相当于拔掉物理服务器上的电源插头,重新插入,然后重新启动它。
• MIGRATING. 服务器正在迁移到新主机。
• PASSWORD. 正在服务器上重置密码。
• PAUSED. 在暂停状态下,服务器的状态存储在 RAM 中。暂停的服务器继续在冻结状态下运行。
• REBOOT. 服务器处于软重启状态。重新启动命令已传递到操作系统。
• REBUILD. 当前正在从映像重建服务器。
• RESCUE. 服务器处于救援模式。救援映像正在运行,并附有原始服务器映像。
• RESIZE. 服务器正在执行在其初始复制期间更改的数据的差异复制。此阶段的服务器已关闭。
• REVERT_RESIZE. 由于某种原因,服务器的大小调整或迁移失败。正在清理目标服务器,正在重新启动原始源服务器。
• SHELVED: 服务器处于搁置状态。根据搁置卸载时间,服务器将自动搁置卸载。
• SHELVED_OFFLOADED:搁置的服务器已卸载(从计算主机中删除),需要再次使用未搁置的操作。
• SHUTOFF. 服务器已关闭,磁盘映像仍然存在。
• SOFT_DELETED. 服务器被标记为已删除,但磁盘映像仍可用于恢复。
• SUSPENDED. 服务器因请求或必要而暂停。当您挂起服务器时,它的状态存储在磁盘上,所有内存都写入磁盘,并且服务器停止。暂停服务器类似于将设备置于休眠状态,其占用的资源不会被释放,而是会在服务器恢复时保留。如果一个服务器不经常使用,需要释放占用的资源来创建其他服务器,则应该搁置。
• UNKNOWN. 服务器状态未知。联系您的云提供商。
• VERIFY_RESIZE. 系统正在等待确认服务器在移动或调整大小后可以运行。
(2)查询所有的server实例
列出服务器的 ID、名称和链接。默认情况下,使用与经过身份验证的请求关联的项目 ID 过滤服务器。
传入参数:
得到响应,得到所有的server实例信息:
{
"servers": [
{
"id": "0fa7e535-4983-4b38-bf5c-7169bce8aba5",
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/servers/0fa7e535-4983-4b38-bf5c-7169bce8aba5",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/servers/0fa7e535-4983-4b38-bf5c-7169bce8aba5",
"rel": "bookmark"
}
],
"name": "cirros_1"
}
]
}
(3)查询所有server实例的详细信息
对于每个服务器,显示服务器详细信息,包括配置驱动器、扩展状态和服务器使用信息。
传入参数:
得到响应,得到每个server实例的ip地址,镜像信息,flavor信息,如下所示:
{
"servers": [
{
"OS-EXT-STS:task_state": null,
"addresses": {
"WAN": [
{
"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:69:8c:a4",
"version": 4,
"addr": "192.168.112.221",
"OS-EXT-IPS:type": "fixed"
}
]
},
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/servers/0fa7e535-4983-4b38-bf5c-7169bce8aba5",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/servers/0fa7e535-4983-4b38-bf5c-7169bce8aba5",
"rel": "bookmark"
}
],
"image": {
"id": "f7cdcc6a-dbec-4d4a-82c4-4170a9cc1a19",
"links": [
{
"href": "http://192.168.112.146:8774/images/f7cdcc6a-dbec-4d4a-82c4-4170a9cc1a19",
"rel": "bookmark"
}
]
},
"OS-EXT-STS:vm_state": "stopped",
"OS-EXT-SRV-ATTR:instance_name": "instance-0000000e",
"OS-SRV-USG:launched_at": "2021-10-05T13:13:10.000000",
"flavor": {
"id": "0",
"links": [
{
"href": "http://192.168.112.146:8774/flavors/0",
"rel": "bookmark"
}
]
},
"id": "0fa7e535-4983-4b38-bf5c-7169bce8aba5",
"security_groups": [
{
"name": "default"
}
],
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"OS-DCF:diskConfig": "AUTO",
"accessIPv4": "",
"accessIPv6": "",
"OS-EXT-STS:power_state": 4,
"OS-EXT-AZ:availability_zone": "nova",
"config_drive": "",
"status": "SHUTOFF",
"updated": "2021-10-06T00:32:59Z",
"hostId": "c0990232d026d8a8582a266dafd143f936b5e5fb5265b089530791cb",
"OS-EXT-SRV-ATTR:host": "computer",
"OS-SRV-USG:terminated_at": null,
"key_name": null,
"OS-EXT-SRV-ATTR:hypervisor_hostname": "computer",
"name": "cirros_1",
"created": "2021-10-05T13:12:38Z",
"tenant_id": "a7d812868cb74f1a978035530f55f1d0",
"os-extended-volumes:volumes_attached": [],
"metadata": {}
}
]
}
(4)创建单个server实例
创建服务器,此操作的进度取决于所请求映像的位置、网络 I/O、主机负载、所选风格和其他因素。要检查请求的进度,请发出 请求。此调用返回一个进度属性,它是一个从 0 到 100 的百分比值。
创建服务器时,响应仅显示服务器 ID、其链接和管理员密码。您可以通过GET服务器上的后续请求获取其他属性。
先决条件:
• 用户必须有足够的服务器配额才能创建请求的服务器数量。
• 与 Image 服务的连接有效。
异步后置条件
• 使用正确的权限,您可以ACTIVE通过 API 调用查看服务器状态 。
• 通过正确的访问,您可以在 OpenStack Compute 管理的计算节点中看到创建的服务器。
故障排除
• 如果服务器状态保持不变BUILDING或显示另一个错误状态,则请求失败。确保您满足先决条件,然后调查计算节点。
• 服务器不是在 OpenStack Compute 管理的计算节点中创建的。
• 计算节点需要足够的空闲资源来匹配服务器创建请求的资源。
• 确保调度程序选择过滤器可以使用与过滤器选择标准匹配的可用计算节点来满足请求。
传入参数,如名称,镜像id,flavor的id,网络的id:
得到响应,只是一些简单的server实例信息,如id,安全组:
{
"server": {
"security_groups": [
{
"name": "default"
}
],
"OS-DCF:diskConfig": "MANUAL",
"id": "b65e755e-6938-4e40-9a2b-1519562f6474",
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/servers/b65e755e-6938-4e40-9a2b-1519562f6474",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/servers/b65e755e-6938-4e40-9a2b-1519562f6474",
"rel": "bookmark"
}
],
"adminPass": "5JVRdC86XMxh"
}
}
查看该server实例信息,可以看到该实例已经被成功创建,并已经成功启动:
(5)创建多个server实例
传入参数,与创建单个server实例不同的是,只需要传入创建实例的数量参数即可:
查看server实例的创建情况,发现过了大概3分钟,两个名为cirros_3_1和cirros_3_2的虚拟机创建完毕:
(6)删除单个server实例
删除服务器。默认情况下,实例将立即从系统中(硬)删除,但您可以设置reclaim_instance_interval> 0 以使 API 软删除实例,以便实例不会被删除,直到reclaim_instance_interval实例已过期软删除。标记为的实例SOFT_DELETED可以restore在它真正从系统中删除之前通过操作恢复。
先决条件:
• 服务器必须存在。
• 当服务器状态未锁定且策略允许时,任何人都可以删除服务器。
• 如果服务器被锁定,您必须具有管理员权限才能删除服务器。
异步后置条件:
• 使用正确的权限,您可以看到服务器状态为deleting。
• Nova 在服务器创建过程中或稍后连接接口时创建的连接到服务器的端口将被删除。
• 服务器未出现在列表服务器响应中。
• 如果硬删除,则在计算节点上删除 OpenStack Compute 管理的服务器。
故障排除:
• 如果服务器状态保持在deletingstatus 或其他错误状态,则请求失败。确保您满足先决条件。然后,调查计算后端。
• 即使您拥有正确的权限,当服务器被锁定时,请求也会返回 HTTP 409 响应代码。确保您满足先决条件,然后调查服务器状态。
• OpenStack Compute 管理的服务器不会从计算节点中删除。
传入参数:
从server实例列表中查看到,该server实例被删除了。
(7)启动一个server实例
启动已停止的服务器并将其状态更改为ACTIVE。os-start在请求正文中指定操作。
先决条件:
服务器状态必须是SHUTOFF。
如果服务器被锁定,您必须具有管理员权限才能启动服务器。
异步后置条件:
成功启动服务器后,其状态更改为ACTIVE。
故障排除:
如果服务器状态未更改为ACTIVE,则启动操作失败。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查是否正在运行另一个导致竞争条件的操作。
传入参数,注意只是在body中添加了一个参数而已:
查看该server实例状态,可以看到已经被启动了:
(8)停止一个server实例
停止正在运行的服务器并将其状态更改为SHUTOFF。os-stop在请求正文中指定操作。
先决条件:
服务器状态必须是ACTIVE或ERROR。
如果服务器被锁定,您必须具有管理员权限才能停止服务器。
异步后置条件:
成功停止服务器后,其状态更改为SHUTOFF。此 API 操作不会删除服务器实例数据,os-start操作后数据将再次可用。
传入参数如下所示:
查看server实例状态,已被关闭:
(9)根据server实例创建image镜像
从服务器创建图像。createImage在请求正文中指定操作。发出此请求后,您通常必须不断轮询创建的映像的状态,以确定请求是否成功。
如果操作成功,创建的镜像状态为active,服务器状态恢复到原来的状态。您还可以在 OpenStack Image 服务管理的镜像后端看到新的镜像。
先决条件:
服务器必须存在。
您只能从服务器创建一个新的图像时,其状态为ACTIVE, SHUTOFF,SUSPENDED或者PAUSED (PAUSED仅支持图像支持的服务器)。
当服务器附加卷时,项目必须在块存储服务中具有足够的卷快照配额。如果项目没有足够的卷快照配额,API 将返回 403 错误。
异步后置条件:
将在 Image 服务中创建快照图像。
在映像支持的服务器情况下,不会创建附加卷的卷快照。在卷支持服务器的情况下,将为连接到服务器的所有卷创建卷快照,然后这些block_device_mapping快照将在图像服务中生成的快照图像中用图像属性表示。如果稍后使用该快照映像来创建新服务器,则会生成一个卷支持服务器,其中根卷是从原始根卷的快照创建的。从原始其他卷的快照创建的卷将附加到服务器。
故障排除:
如果图像状态保持上传或显示另一个错误状态,则请求失败。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查图像后端。
如果服务器状态没有回到原始服务器的状态,则请求失败。确保满足先决条件,或检查是否有其他操作导致服务器竞争条件,然后再次运行请求。如果请求再次失败,请调查计算后端或询问您的云提供商。
如果请求由于 OpenStack Compute 服务上的错误而失败,则会从 OpenStack Image 服务管理的映像存储中清除该映像。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查 OpenStack Compute 服务或询问您的云提供商。
传入参数,如server的id,image镜像的名称:
查看image镜像情况,创建除了该image镜像:
(10)调整server实例的大小
resize在请求正文中指定操作。
先决条件:
您只能在状态为ACTIVE或SHUTOFF时调整服务器大小。
如果服务器被锁定,您必须具有管理员权限才能调整服务器大小。
异步后置条件:
成功调整大小的服务器会显示VERIFY_RESIZE状态和finished 迁移状态。如果云端已将 Compute服务的resize_confirm_window选项配置为正值,则Compute服务会在配置的时间间隔后自动确认resize操作。
传入参数:
得到的响应是:
{
"badRequest": {
"message": "找不到有效主机,原因是 重新配置过程中没有发现有效主机。",
"code": 400
}
}
可以看到没有host主机供新的实例进行部署,因此怀疑是在schedule调度过程中,将现有的唯一computer计算节点给过滤掉了,查看nova-scheduler.log日志:
2021-10-08 13:55:25.220 2375 INFO nova.scheduler.host_manager [req-dbc0e3e9-b434-47fa-92cd-3604ce6652f8 9942eb4321644336a0c7383d9f1c2bed a7d812868cb74f1a978035530f55f1d0 - default default] Host filter ignoring hosts: computer
2021-10-08 13:55:25.228 2375 WARNING nova.scheduler.filters.compute_filter [req-dbc0e3e9-b434-47fa-92cd-3604ce6652f8 9942eb4321644336a0c7383d9f1c2bed a7d812868cb74f1a978035530f55f1d0 - default default] (localhost.localdomain, localhost.localdomain) ram: 3258MB disk: 32768MB io_ops: 0 instances: 0 has not been heard from in a while
2021-10-08 13:55:25.229 2375 INFO nova.filters [req-dbc0e3e9-b434-47fa-92cd-3604ce6652f8 9942eb4321644336a0c7383d9f1c2bed a7d812868cb74f1a978035530f55f1d0 - default default] Filter ComputeFilter returned 0 hosts
2021-10-08 13:55:25.229 2375 INFO nova.filters [req-dbc0e3e9-b434-47fa-92cd-3604ce6652f8 9942eb4321644336a0c7383d9f1c2bed a7d812868cb74f1a978035530f55f1d0 - default default] Filtering removed all hosts for the request with instance ID '9156b5c4-929e-454d-9bb5-b3d814b1266a'. Filter results: ['AvailabilityZoneFilter: (start: 1, end: 1)', 'ComputeFilter: (start: 1, end: 0)']
可以看出,从一开始computer计算节点就被ignore忽略掉了,这里我们先将该问题忽略掉,在之后对OpenStack源码进行详细分析之后,再解决该问题!!!
(11)获取控制台链接
API 提供了创建远程控制台的统一请求。用户可以从这个 API 获取一个 URL 来连接控制台。URL 包含用于获取访问控制台权限的令牌。服务器可能支持不同的控制台协议。要使用特定协议(例如 RDP)返回远程控制台,请将protocol参数设置为rdp。
(12)获取server实例的使用诊断信息
显示服务器的基本使用数据。策略默认值仅启用具有管理角色的用户。云提供商可以通过policy.json 文件更改这些权限。
传入参数:
得到响应:
{
"memory-available": 47580,
"tap4b752b96-94_tx_drop": 0,
"vda_write": 186368,
"memory-major_fault": 46,
"memory-swap_out": 0,
"memory-last_update": 1633676615,
"tap4b752b96-94_tx_packets": 91,
"memory-usable": 32728,
"tap4b752b96-94_rx_errors": 0,
"tap4b752b96-94_rx_packets": 153,
"vda_read": 28289024,
"tap4b752b96-94_tx_errors": 0,
"tap4b752b96-94_tx": 7100,
"memory-actual": 65536,
"vda_write_req": 81,
"memory-swap_in": 0,
"tap4b752b96-94_rx": 10522,
"memory-minor_fault": 38394,
"memory": 65536,
"memory-rss": 151412,
"memory-unused": 20632,
"vda_read_req": 1379,
"vda_errors": -1,
"tap4b752b96-94_rx_drop": 0
}
(13)获取server实例的ip信息
列出分配给实例的 IP 地址。
传入参数:
得到响应,ip地址和ip版本信息:
{
"addresses": {
"WAN": [
{
"version": 4,
"addr": "192.168.112.209"
}
]
}
}
(14)获取server实例的操作
传入参数:
得到响应,都是该server实例的操作历史:
{
"instanceActions": [
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T06:57:09.000000",
"request_id": "req-3e8d81a2-d4d4-47fc-9bfb-6f64d84e1e0b",
"action": "start",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T06:44:14.000000",
"request_id": "req-8a146f64-bbe3-45da-91b6-31c243316300",
"action": "stop",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T06:21:42.000000",
"request_id": "req-471d426e-390a-463b-ba84-05a185d94db3",
"action": "start",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T05:55:21.000000",
"request_id": "req-dbc0e3e9-b434-47fa-92cd-3604ce6652f8",
"action": "resize",
"message": "Error",
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T02:48:38.000000",
"request_id": "req-a4e603d4-1806-4cf2-9bc2-2ea09b9ba252",
"action": "resize",
"message": "Error",
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T02:47:50.000000",
"request_id": "req-498e725e-6979-4741-a0be-45412f088237",
"action": "resize",
"message": "Error",
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T02:00:59.000000",
"request_id": "req-c579773a-6dde-4569-8c63-38cc5bafeeb6",
"action": "createImage",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T01:45:37.000000",
"request_id": "req-c2369012-672f-40e7-9730-d7fb58dfe44d",
"action": "stop",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T01:43:32.000000",
"request_id": "req-7c0c1df5-bde9-4a96-9ebd-71f388262c3a",
"action": "start",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T01:27:06.000000",
"request_id": "req-cb36cac9-018b-4648-ae9d-52614ae44ef0",
"action": "stop",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
},
{
"instance_uuid": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"user_id": "9942eb4321644336a0c7383d9f1c2bed",
"start_time": "2021-10-08T01:13:19.000000",
"request_id": "req-9e0aa01c-8aac-408a-8031-03edbb5b9131",
"action": "create",
"message": null,
"project_id": "a7d812868cb74f1a978035530f55f1d0"
}
]
}
(15)将卷挂载到指定server实例
传入参数:
得到响应结果是volume卷的基本挂载信息,可以看到有挂载设备名,实例id,volume卷的id:
{
"volumeAttachment": {
"device": "/dev/vdb",
"serverId": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"id": "b808671e-2438-41d5-9174-bff847a1e25d",
"volumeId": "b808671e-2438-41d5-9174-bff847a1e25d"
}
}
(16)查询指定server实例的挂载卷
传入参数:
得到响应就是volume卷的挂载情况:
{
"volumeAttachments": [
{
"device": "/dev/vdb",
"serverId": "9156b5c4-929e-454d-9bb5-b3d814b1266a",
"id": "b808671e-2438-41d5-9174-bff847a1e25d",
"volumeId": "b808671e-2438-41d5-9174-bff847a1e25d"
}
]
}
(17)将卷从实例中分离
传入参数:
可以从卷的状态中看到该卷已经被脱离了。
(18)获取所有的flavor信息
传入参数:
得到响应是所有的flavor信息:
{
"flavors": [
{
"id": "0",
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/flavors/0",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/flavors/0",
"rel": "bookmark"
}
],
"name": "m1.nano"
},
{
"id": "1",
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/flavors/1",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/flavors/1",
"rel": "bookmark"
}
],
"name": "centos7"
},
{
"id": "3",
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/flavors/3",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/flavors/3",
"rel": "bookmark"
}
],
"name": "centos72"
},
{
"id": "3d7f0fbf-9f47-4cb5-a2e6-5121c2edafc5",
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/flavors/3d7f0fbf-9f47-4cb5-a2e6-5121c2edafc5",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/flavors/3d7f0fbf-9f47-4cb5-a2e6-5121c2edafc5",
"rel": "bookmark"
}
],
"name": "win7_xshell"
},
{
"id": "4",
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/flavors/4",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/flavors/4",
"rel": "bookmark"
}
],
"name": "m1.nano.new"
}
]
}
(19)创建一个flavor
传入参数:
得到响应,就是该flavor的详细信息:
{
"flavor": {
"links": [
{
"href": "http://192.168.112.146:8774/v2.1/flavors/10",
"rel": "self"
},
{
"href": "http://192.168.112.146:8774/flavors/10",
"rel": "bookmark"
}
],
"ram": 1024,
"OS-FLV-DISABLED:disabled": false,
"os-flavor-access:is_public": true,
"rxtx_factor": 1,
"disk": 10,
"id": "10",
"name": "test_flavor",
"vcpus": 2,
"swap": "",
"OS-FLV-EXT-DATA:ephemeral": 0
}
}
(20)删除一个flavor
传入参数:
(21)获取所有的hypervisor程序
列出所有管理程序,显示所有计算节点上所有管理程序的摘要统计信息,显示管理程序的详细信息,显示管理程序的正常运行时间。
传入参数:
得到响应是所有hypervisor程序的信息,可以看到有两个hypervisor程序:
{
"hypervisors": [
{
"status": "enabled",
"state": "down",
"id": 1,
"hypervisor_hostname": "localhost.localdomain"
},
{
"status": "enabled",
"state": "up",
"id": 2,
"hypervisor_hostname": "computer"
}
]
}