我正在尝试将我的 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,服务器的名称无效。
我还不能发表评论,所以我写了一个答案。