Openstack API - Nova vs Ceilometer, чтобы узнать состояние экземпляра

Кто-нибудь знает способ запросить openstack через API, если экземпляр запущен или нет? Я даже не знаю, должен ли я попросить Ceilometer или Nova.

заранее спасибо

1 ответ

Решение

Обычно вы просите Nova узнать текущее состояние, а Ceilometer - исторические состояния (например, для выставления счетов). Если у вас есть действительный nova клиент:

 servers = nova.servers.list(detailed=True)
 for s in servers:
     print(s.status)

Есть потенциально другие атрибуты, которые могут дать вам более подробную информацию в зависимости от ваших настроек, например, состояние расширенного состояния (вам нужно использовать getattr против . из-за недопустимого идентификатора символов в имени):

 print(getattr(s, "os-extended-status:power_state"))
Другие вопросы по тегам