Vdc

Объект виртуального центра обработки данных (ВЦОД). ВЦОДы включают в себя ИТ-инфраструктуру, вычислительные ресурсы и ресурсы для хранения информации.

При создании ВЦОД автоматически создаются сеть esu.Network и маршрутизатор esu.Router, которые не могут быть удалены.

Поддерживается два типа гипервизора: VMware vSphere ESXi и OpenStack KVM.

Объект «ВЦОД»

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

  • name (str) – Имя ВЦОД

  • hypervisor (object) – Объект класса esu.Hypervisor

  • project (object) – Объект класса esu.Project. Проект, к которому относится данный ВЦОД

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

Примечание

Поля name, hypervisor и project необходимы для создания.

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

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

Получить объект ВЦОД по его ID

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

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

Результат:

Возвращает объект ВЦОД esu.Vdc

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

object

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

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

Исключение:

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

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

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

Исключение:

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

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

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

Исключение:

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

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

Получить список виртуальных машин, доступных в рамках данного ВЦОД.

Результат:

Список объектов esu.Vm

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

list

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

Получить список шаблонов ОС для создания виртуальных машин, доступных в данном ВЦОДе.

Результат:

Список объектов esu.Template

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

list

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

Получить список профилей хранения, которые используются при добавлении дисков, доступных в данном ВЦОДе.

Результат:

Список объектов esu.StorageProfile

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

list

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

Получить список шаблонов брандмауэра, доступных в данном ВЦОДе.

Результат:

Список объектов esu.FirewallTemplate

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

list

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

Получить список сетей, которые существуют в рамках данного ВЦОД.

Результат:

Список объектов esu.Network

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

list

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

Получить список маршрутизаторов, которые доступны в рамках данного ВЦОД.

Результат:

Список объектов esu.Router

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

list

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

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

Результат:

Список объектов esu.Port

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

list

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

Получить список дисков, которые существуют в данном ВЦОДе.

Результат:

Список объектов esu.Disk

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

list

create_vm(name, template, password)[исходный код]

Быстрый способ создать виртуальный сервер в сети по-умолчанию и с настройками по-умолчанию.

Параметры:
  • name (str) – Название нового виртуального сервера

  • template (str) – Название шаблона системы

  • password (str) – Пароль, который будет установлен на сервер

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

Получить список шаблонов k8s для создания кластеров, доступных в данном ВЦОДе.

Результат:

Список объектов esu.KubernetesTemplate

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

list

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

Получить список образов, доступных в данном ВЦОДе.

Результат:

Список объектов esu.Image

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

list

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

Получить список задач резервного копирования, доступных в данном ВЦОДе.

Результат:

Список объектов esu.Backup

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

list

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

Создание нового ВЦОД VMware в первом доступном пользователю проекте:

from esu import Manager, Vdc

project = Manager().get_all_projects()[0]
hypervisor = next(h for h in project.get_available_hypervisors() \
      if h.type == 'vmware')

vdc = Vdc(name='Новый ВЦОД', hypervisor=hypervisor, project=project)
vdc.create()

Вывести на экран список доступных в определенном ВЦОДе шаблонов операционных систем:

from esu import Manager, Vdc

project = Manager().get_all_projects()[0]
vdc = Vdc.get_object('e5d9a192-c5da-485a-b134-1b14ec9c57d9')
for template in vdc.get_templates():
    print(template.name)