from esu.base import BaseAPI, Field, ObjectAlreadyHasId, ObjectHasNoId
[документация]
class PaasService(BaseAPI):
"""
Args:
id (str): Идентификатор
name (str): Имя
project (object): Объект :class:`esu.Project`
paas_service_id (int): Идентификатор шаблона
paas_deploy_id (int): Идентификатор развёртывания
status (str): Статус
inputs (dict): Входные параметры
"""
class Meta:
id = Field()
name = Field()
project = Field('esu.Project')
paas_service_id = Field()
paas_deploy_id = Field()
status = Field()
paas_service_inputs = Field()
[документация]
@classmethod
def get_object(cls, id, token=None):
"""
Получить объект PaasService по его ID
Args:
id (str): Идентификатор
token (str): Токен для доступа к API. Если не передан, будет
использована переменная окружения **ESU_API_TOKEN**
Returns:
object: Возвращает объект кластера
paas_service :class:`esu.PaasService`
"""
service = cls(token=token, id=id)
service._get_object('v1/paas_service', service.id)
return service
[документация]
def create(self):
"""
Создать объект
Raises:
ObjectAlreadyHasId: Если производится попытка создать объект,
который уже существует
"""
if self.id is not None:
raise ObjectAlreadyHasId
self._commit()
def _commit(self):
service = {
'name': self.name,
'project': self.project.id,
'paas_service_id': self.paas_service_id,
'paas_service_inputs': self.paas_service_inputs,
}
self._commit_object('v1/paas_service', **service)
[документация]
def destroy(self):
"""
Удалить объект
Raises:
ObjectHasNoId: Когда производится попытка удалить несуществующий
объект
"""
if self.id is None:
raise ObjectHasNoId
self._destroy_object('v1/paas_service', self.id)
self.id = None