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()