Загрузка образа OpenStack

Я новичок в openstack и пытаюсь получить доступ к службам openstack с помощью python SDK. Я попытался загрузить изображение в openstack, используя функцию create с данными (изображение для записи) изображения, включенными в качестве параметра, скрипт выполнился и не было никакой ошибки, но когда я вошел в систему и перешел на вкладку изображений на панели инструментов openstack, изображение было создано, но состояние изображения всегда было в в очереди . Я попытался добавить функцию загрузки из библиотеки openstack, на этот раз статус изображения изменился на Активно, но размер изображения был только в байтах (исходный размер изображения был 12 МБ). Я не понимаю, где пропускаются данные. Я даже пытался войти в систему с помощью библиотеки идентификаторов Keystone, но тот же сценарий продолжает происходить. Любая помощь будет очень полезна. заранее спасибо

def upload_image():
    # imagefile = 'CirrOS.qcow2'
    # loader = loading.get_plugin_loader('password')
    auth = v3.Password(user_domain_name='******',
                       username='***',
                       password='***',
                       project_domain_name='******',
                       project_name='***',
                       auth_url='http://*.*.*.**:****/v3')
    sess = session.Session(auth=auth)
    glance = client.Client(session=sess)
    # with open(imagefile, 'rb'):
    image = glance.images.create(name="my_image", is_public='True', disk_format="qcow2",
                                 container_format="bare", data='CirrOS.qcow2')
    glance.images.upload(image.id, image_data='CirrOS.qcow2')

person Nishad guru    schedule 05.02.2020    source источник


Ответы (1)


Я использовал openstack rest API для загрузки изображений. Это шаги:-
Шаг 1. Создайте образ, он создаст образ в состоянии очереди со всей необходимой информацией, но не будет иметь данных изображения.
Шаг 2. Считайте изображение и загрузите его двоичные данные на созданный изображение.

Поскольку вы используете клиентскую библиотеку openstack python, на первом этапе вы создаете изображение, но на шаге 2 я не вижу, как вы читаете и загружаете данные изображения. Итак, ваш второй вызов функции должен быть -

glance.images.upload(image.id, open('<image-path>', 'rb'))

Поскольку вы не указываете путь к изображению. В вашем случае данные изображения имеют размер текста «CirrOS.qcow2».

Для получения дополнительной информации перейдите по этой ссылке: - https://docs.openstack.org/python-glanceclient/latest/reference/apiv2.html

person Munish    schedule 05.02.2020