Openstack Загрузка изображений - PullRequest
0 голосов
/ 05 февраля 2020

Я новичок в openstack и пытаюсь получить доступ к сервисам openstack, используя python SDK. Я попытался загрузить изображение в openstack, используя функцию create с данными (изображение для записи) изображения, включенного в качестве параметра, сценарий был выполнен, и не было никаких ошибок, но когда я вошел в систему и перешел к вкладке изображений в панели инструментов openstack, изображение было создано, но статус изображения всегда был в в очереди . Я попытался добавить функцию загрузки из библиотеки openstack, на этот раз статус изображения изменился на Active , но размер изображения был только в байтах (оригинальный размер изображения был 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')

1 Ответ

1 голос
/ 06 февраля 2020

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...