Image

Образ - образ сервера или iso образ какой либо программы или ОС. Создать образ можно из уже созданного сервера, например для последующего создании копии этого сервера, путем создания сервера из образа. Также в сегменте VMware можно загрузить образ в систему, для последующего создания сервера из образа или для монтирования образа к серверу (iso)

Объект «образ»

class esu.Image(*args, token: Optional[str] = None, **kwargs)[исходный код]
Параметры:
  • id (str) – Идентификатор

  • name (str) – Имя

  • files (list) – Список объектов класса esu.File. Список файлов в

  • образе

  • size (str) – Размер образа

  • type (str) – Тип образа

  • vdc (object) – Объект класса esu.Vdc. ВЦОД, к которому относится образ

classmethod get_object(id, token=None)[исходный код]

Получить объект образа по его ID

Параметры:
  • id (str) – Идентификатор образа

  • token (str) – Токен для доступа к API. Если не передан, будет использована переменная окружения ESU_API_TOKEN

Результат:

Возвращает объект образа esu.Image

Тип результата:

object

create_from_vm(vm)[исходный код]

Создать образ из существующего сервера

Исключение:

ObjectAlreadyHasId – Если производится попытка создать объект, который уже существует

create_for_upload()[исходный код]

Создать объект образа для последующей загрузки в него файлов

Исключение:

ObjectAlreadyHasId – Если производится попытка создать объект, который уже существует

Получить ссылку для загрузки файлов образа

commit_upload()[исходный код]

Подтвердить окончание загрузки файлов образа. Подтверждение необходимо после загрузки файлов образа по полученному url для загрузки файлов

save()[исходный код]

Сохранить изменения

destroy()[исходный код]

Удалить объект образа

Исключение:

ObjectHasNoId – Когда производится попытка удалить несуществующий объект

Получить ссылку для скачивания файла образа

deploy_vm_from_image(vm)[исходный код]

Создать сервер из образа

Параметры:

vm (object) –

Результат:

объект созданного из образа сервера esu.Vm

Тип результата:

object

Примеры использования

Создать образ из созданного сервера:

from esu import Vm, Image, Vdc

vm = Vm.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
vdc = Vdc.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
image = Image(vdc=vdc, name='NewImage')
image.create_from_vm(vm=vm)

Загрузить образ:

import requests
from esu import Image, Vdc

vdc = Vdc.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
image = Image(vdc=vdc, name='NewImage')
image.create_for_upload() # Создание объекта образа для последующей загрузки файлов
url = image.get_upload_link() # Получение ссылки для загрузки файлов

headers = {
          'Accept': '* / *',
          'Accept-Encoding': 'gzip, deflate, br',
          'Authorization': "bearer " + str(BaseAPI.token),
          'Connection': 'keep-alive',
          'Content-Type': 'application/octet-stream',
          'Accept-Language': 'ru-ru'
      }
file = {'file': open('test.iso', 'rb')}
up_response = requests.put(url=str(url), headers=headers, files=file) # Загрузка файла

image.commit_upload() # Подтверждение окончания загрузки файлов образа

Создание сервера из образа:

from esu import Image

image = Image.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
vm = image.deploy_vm_from_image()