Как синхронизировать / обновить локальные (объемные) данные с сервера OpenStack?

Я хочу создать сервер в OpenStack nova. Первый шаг - создать том из изображения:

volume = cinder.volumes.create(5, name="test", imageRef=some_id, ...)

Объем будет некоторое время находиться в состоянии "создание". призвание nova.servers.create с объемом в creating государство терпит неудачу:

novaclient.exceptions.BadRequest: Block Device f2fe64ee-f049-4a6f-8edd-52579d82fc23 is not bootable. (HTTP 400) (Request-ID: req-f036d084-e9c8-4bdf-b266-73fbbe993796)

Моя идея подождать, пока громкость не станет available:

while volume.status != 'available':
    print("Volume status [%s]" % volume.status)
    time.sleep(1.0)                                             

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

Есть ли (простой) способ синхронизации локальных данных с удаленным состоянием? Подобно:

volume.sync()

1 ответ

Нашел ответ в документе под названием "Python APIs: самый большой секрет OpenStack":

Необходимо обновить / получить весь том снова:

while volume.status != 'available':
    print("Volume status [%s]" % volume.status)
    time.sleep(1.0)
    volume = cinder.volumes.get(volume.id)
Другие вопросы по тегам