使用 nova 客户端通过 Python OpenStack API 显示服务器详细信息



我正在尝试将我的 BASH 脚本转换为 Python,并且很难找到 openstack 服务器show 或 openstack 服务器列表的等效代码 --long。我想知道我的服务器当前位于哪个主机,并在将其迁移到另一台主机之前使用此信息进行检查。

浏览最新的novaclient文档及其服务器模块,我发现了两个潜在的命令,我希望它们能够完成任务,但没有这样做:

列表(详细=真(

  • 获取列表服务器
  • detailed=True 应返回详细的服务器信息(可选(。
  • 这将返回服务器及其名称的常规列表。

获取(服务器(

  • 获取服务器
  • 这仅返回服务器的名称。

过去两天我一直在研究,在堆栈溢出中找不到相同/类似的问题,所以我决定问一下,我希望有人可以帮助我解决这个问题。

列表或获取在这里应该没问题。

作为一个例子,get将像这样使用。

instance = nova_client.servers.get('my-server')
print(instance.name)
print(instance.addresses)
print(instance.status)

或使用列表。

for instance in nova_client.servers.list():
print(instance.name)
print(instance.addresses)
print(instance.status)

如果你想要一种简单的方法来理解你可以得到的数据类型,你可以简单地使用Python内置的目录。

instance = nova_client.servers.get('my-server')
print(dir(instance))

'my-server' 需要是 id instance.id,服务器的名称无效。
我还不能发表评论,所以我写了一个答案。

最新更新