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

使用nova客户端通过Python OpenStack API显示服务器详细信息,python,bash,python-2.7,openstack,openstack-nova,Python,Bash,Python 2.7,Openstack,Openstack Nova,我正在尝试将我的BASH脚本转换为Python,但很难找到openstack server show或openstack server list的等效代码——long。我想知道我的服务器当前所在的主机,并在将其迁移到其他主机之前使用此信息进行检查 通过查看最新的及其版本,我发现了两个可能的命令,我希望它们能够完成任务,但没有做到: 获取服务器列表 detailed=True应返回详细的服务器信息(可选) 这将返回带有服务器名称的常规服务器列表。 获取服务器 这只返回服务器的名称。 在

我正在尝试将我的BASH脚本转换为Python,但很难找到openstack server show或openstack server list的等效代码——long。我想知道我的服务器当前所在的主机,并在将其迁移到其他主机之前使用此信息进行检查

通过查看最新的及其版本,我发现了两个可能的命令,我希望它们能够完成任务,但没有做到:

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

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

在过去的两天里,我一直在研究,但在堆栈溢出中找不到相同/类似的问题,因此我决定询问,希望有人能帮助我解决这个问题。

这里的list或get都可以

作为一个例子,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.id中的id,服务器名称无效。
我还不能评论,所以我写了一个答案。

Hi-eanderson,使用dir(),我能够找到服务器的主机属性。我还使用Python内置的getattr()来显示它的值。非常感谢你!
instance = nova_client.servers.get('my-server')
print(dir(instance))