Backup

Задача резервного копирования - создаётся для сервера или для нескольких серверов. Для создания задачи требуется указать расписание: дни и время выполнения задачи, а также серверы для которых она будет выполняться. В каждой задаче резервного копирования хранятся точки восстановления сервера. Из точек восстановления можно восстановить сервер в состояние сохранённое в точке.

Объект «задача резервного копирования»

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

  • name (str) – Имя задачи резервного копирования

  • size (int) – Суммарный размер точек восстановления задачи резервного копирования (bytes)

  • vdc (object) – Объект ВЦОДа esu.Vdc

  • retain_cycles (int) – Глубина хранения задачи резервного копирования

  • time (str) – Время выполнения задачи по расписанию в UTC

  • week_days (list) – Дни недели выполнения задачи по расписанию [1,2,3]

  • vms (list) – Список серверов для которых создана задача

Примечание

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

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

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

Параметры:
  • id (str) – Идентификатор задачи резервного копирования

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

Результат:

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

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

object

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

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

Исключение:

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

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

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

Исключение:

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

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

Запустить выполнение задачи - создание точек восстановления

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

Получить список точек восстановления в задаче резервного копирования.

Результат:

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

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

list

restore(restore_point, power_on=True, quick_restore=False)[исходный код]

Восстановить сервер из точки восстановления

Параметры:
  • vm (object) – esu.Vm, сервер, который необходимо восстановить

  • restore_point (object) – esu.RestorePoint, точка восстановления из которой необходимо восстановить сервер

  • power_on (bool) – быть включен

  • quick_restore – (не рекомендуется)

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

Получить лог создания точек восстановления из задачи

Результат:

Отчёт создания точек восстановления

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

dict

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

Получить лог восстановления сервера из задачи

Результат:

Отчёт восстановления сервера

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

dict

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

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

Исключение:

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

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

Создать задачу резервного копирования для сервера:

from esu import Vm, Backup, Vdc

vdc = Vdc.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
vm = Vm.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
backup = Backup(name="Test_Backup", vdc=vdc, vms=[vm], week_days=[1, 2],
                time="09:00:00", retain_cycles=2)

Немедленно запустить выполнение задачи - создать точку восстановления:

import requests
from esu import Backup

backup = Backup.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
backup.start_immediately()

Восстановить сервер из точки восстановления:

from esu import Vm, Backup

backup = Backup.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
restore_point = backup.get_restore_points()[0]  # Первая доступная точка восстановления
backup.restore(restore_point=restore_point)