Pular para conteúdo

volumes

Proxy para operações de Volume da API do PLDPro.

Volumes

Operações para cadastrar e remover volumes do tenant atual.

Source code in pldpro_sdk/core/proxies/volumes.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class Volumes:
    """Operações para cadastrar e remover volumes do tenant atual."""

    def __init__(self, api_client: ApiClient) -> None:
        self._volumes_api = VolumesApi(api_client)

    @staticmethod
    def _as_uuid(value: VolumeId) -> UUID:
        return value if isinstance(value, UUID) else UUID(str(value))

    def create(self, request: VolumeRequest) -> VolumeResponse | None:
        """
        Cadastra um Volume associado a um Node.

        :param request: Dados do Volume, incluindo o caminho e o UUID do Node.
        :type request: VolumeRequest
        :return: Volume cadastrado ou None caso a operação falhe.
        :rtype: VolumeResponse | None
        """
        try:
            return self._volumes_api.create_volume(request)
        except (ApiException, ValueError) as error:
            logger.error(
                "Não foi possível cadastrar o Volume: %s",
                get_error_message(error) if isinstance(error, ApiException) else error,
            )
            return None

    def delete(self, volume_id: VolumeId) -> bool:
        """
        Remove o cadastro de um Volume.

        :param volume_id: Identificador único do Volume.
        :type volume_id: UUID ou str
        :return: True quando o Volume é removido; False caso a operação falhe.
        :rtype: bool
        """
        try:
            volume_uuid = self._as_uuid(volume_id)
            self._volumes_api.delete_volume(volume_uuid)
            logger.info("Volume %s removido com sucesso.", volume_uuid)
            return True
        except (ApiException, ValueError) as error:
            logger.error(
                "Não foi possível remover o Volume %s: %s",
                volume_id,
                get_error_message(error) if isinstance(error, ApiException) else error,
            )
            return False

create(request)

Cadastra um Volume associado a um Node.

Parameters:

Name Type Description Default
request VolumeRequest

Dados do Volume, incluindo o caminho e o UUID do Node.

required

Returns:

Type Description
VolumeResponse | None

Volume cadastrado ou None caso a operação falhe.

Source code in pldpro_sdk/core/proxies/volumes.py
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def create(self, request: VolumeRequest) -> VolumeResponse | None:
    """
    Cadastra um Volume associado a um Node.

    :param request: Dados do Volume, incluindo o caminho e o UUID do Node.
    :type request: VolumeRequest
    :return: Volume cadastrado ou None caso a operação falhe.
    :rtype: VolumeResponse | None
    """
    try:
        return self._volumes_api.create_volume(request)
    except (ApiException, ValueError) as error:
        logger.error(
            "Não foi possível cadastrar o Volume: %s",
            get_error_message(error) if isinstance(error, ApiException) else error,
        )
        return None

delete(volume_id)

Remove o cadastro de um Volume.

Parameters:

Name Type Description Default
volume_id VolumeId

Identificador único do Volume.

required

Returns:

Type Description
bool

True quando o Volume é removido; False caso a operação falhe.

Source code in pldpro_sdk/core/proxies/volumes.py
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
def delete(self, volume_id: VolumeId) -> bool:
    """
    Remove o cadastro de um Volume.

    :param volume_id: Identificador único do Volume.
    :type volume_id: UUID ou str
    :return: True quando o Volume é removido; False caso a operação falhe.
    :rtype: bool
    """
    try:
        volume_uuid = self._as_uuid(volume_id)
        self._volumes_api.delete_volume(volume_uuid)
        logger.info("Volume %s removido com sucesso.", volume_uuid)
        return True
    except (ApiException, ValueError) as error:
        logger.error(
            "Não foi possível remover o Volume %s: %s",
            volume_id,
            get_error_message(error) if isinstance(error, ApiException) else error,
        )
        return False