Исходный код esu.port_forwarding

from esu.base import BaseAPI, Field, ObjectAlreadyHasId, ObjectHasNoId


[документация]class PortForwarding(BaseAPI): """ Args: id (str): Идентификатор перенаправления портов floating (object): Объект класса :class:`esu.Port`. Порт на котором будет создано перенаправление token (str): Токен для доступа к API. Если не передан, будет использована переменная окружения **ESU_API_TOKEN** .. note:: Управление перенаправлением портов создаваемом на порте возможно только в ресурсном пуле под управлением Openstack. Поле ``floating`` необходимо для создания. """ class Meta: id = Field() name = Field() vdc = Field('esu.Vdc') floating = Field('esu.Port')
[документация] @classmethod def get_object(cls, port_forwarding_id, token=None): """ Получить объект перенаправления портов по его ID Args: id (str): Идентификатор перенаправления портов token (str): Токен для доступа к API. Если не передан, будет использована переменная окружения **ESU_API_TOKEN** Returns: object: Возвращает объект маршрута на роутере :class:`esu.RouterRoute` """ port_forwarding = cls(token=token, id=port_forwarding_id) port_forwarding._get_object('v1/port_forwarding', port_forwarding.id) return port_forwarding
[документация] def create(self): """ Создать объект Raises: ObjectAlreadyHasId: Если производится попытка создать объект, который уже существует """ if self.id is not None: raise ObjectAlreadyHasId self._commit()
def _commit(self): self._commit_object('v1/port_forwarding', floating=self.floating.id)
[документация] def destroy(self): """ Удалить объект Raises: ObjectHasNoId: Когда производится попытка удалить несуществующий объект """ if self.id is None: raise ObjectHasNoId self._destroy_object('v1/port_forwarding', self.id) self.id = None