Disk

Диск является сущностью для хранения информации. Диск нельзя создать отдельно от виртуального сервера. Чтобы создать диск, следует использовать метод esu.Vm.add_disk() у уже существующего сервера.

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

Можно изменять размер существующего диска в сторону увеличения.

Объект «диск»

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

  • name (str) – Имя диска

  • size (int) – Размер диска (ГБ)

  • scsi (str) – Порт, к которому подключен диск

  • vm (object) – Объект виртуального сервера esu.Vm

  • storage_profile (object) – Объект esu.StorageProfile

Примечание

Поля name, size, storage_profile могут быть изменены для существующего объекта.

Предупреждение

storage_profile можно изменить только для дисков в сегменте VMware когда диск подключен к виртуальному серверу.

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

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

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

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

Результат:

Возвращает объект диска esu.Disk

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

object

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

Создать объект

Исключение:

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

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

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

Исключение:

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

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

Присоединить существующий во ВЦОДе диск к виртуальному серверу

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

Отсоединить диск от виртуального сервера

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

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

Исключение:

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

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

Добавить диск типа SATA к уже существующему виртуальному серверу:

from esu import Vm, Disk

vm = Vm.get_object('954fd467-fd9a-4ce7-b4df-1e81e557bce9')

storage_profile = next(p for p in vm.vdc.get_storage_profiles() \
    if p.name == 'SATA')
disk = Disk(name='Дополнительный диск', size=30,
            storage_profile=storage_profile)

vm.add_disk(disk)

Увеличить диск виртуального сервера:

from esu import Vm

vm = Vm.get_object('954fd467-fd9a-4ce7-b4df-1e81e557bce9')
disk = vm.disks[0]
disk.size += 5
disk.save()