Показать детали сервера через Python OpenStack API с помощью клиента nova - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь преобразовать свой BASH-скрипт в Python, и у меня возникают трудности с поиском эквивалентного кода для openstack server show или openstack server list --long .Я хотел бы знать, на каком хосте сейчас находится мой сервер, и использовать эту информацию для проверки, прежде чем переносить его на другой хост.

Просмотр самой последней документации novaclient и ее серверовмодуль , я обнаружил две потенциальные команды, которые, как я надеялся, выполнят задачу, но не делает этого:

список (подробный = True)

  • Получает список серверов
  • подробный = True должен возвращать подробную информацию о сервере (необязательно).
  • Возвращает обычный список серверов с их именами.

get (сервер)

  • Get server
  • Возвращает только имя сервера.

Я занимался исследованиями в течение последних двух дней, и я не смог найти ту же / подобную проблему здесь в переполнении стека, поэтому я решил спросить, и я надеюсь, что кто-то может помочь мне с этим.

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

'my-server' должен быть идентификатором, как в instance.id, имя сервера недействительно.
Я пока не могу комментировать, поэтому я написал ответ.

0 голосов
/ 11 октября 2018

Либо список, либо 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 dir .

instance = nova_client.servers.get('my-server')
print(dir(instance))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...