Pular para conteúdo

license

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

License

Operações para enviar e consultar licenças do tenant atual.

Source code in pldpro_sdk/core/proxies/license.py
 12
 13
 14
 15
 16
 17
 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
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
class License:
    """
    Operações para enviar e consultar licenças do tenant atual.
    """

    def __init__(self, api_client: ApiClient) -> None:
        self._license_api = LicencesApi(api_client)

    @staticmethod
    def _serialize_request(license_request: Any) -> str:
        if isinstance(license_request, str):
            return license_request
        if hasattr(license_request, "model_dump"):
            license_request = license_request.model_dump(by_alias=True, exclude_none=True)
        return json.dumps(license_request)

    def create_license(self, file: Union[Path, str], license_request: Any) -> LicenseResponse | None:
        """
        Envia um arquivo de licença e seus metadados.

        :param file: Caminho do arquivo de licença a ser enviado.
        :type file: Path ou str
        :param license_request: Metadados associados à licença.
        :type license_request: objeto, dict ou str
        :return: Licença criada ou None caso o envio falhe.
        :rtype: LicenseResponse | None
        """
        try:
            return upload_license(
                self._license_api.create_license,
                "de licenca",
                file,
                save_zip=False,
                should_zip=False,
                use_full_path=False,
                license_request=self._serialize_request(license_request),
            )
        except (ApiException, OSError, ValueError, TypeError) as error:
            logger.error(
                "Nao foi possivel enviar a licenca: %s",
                get_error_message(error) if isinstance(error, ApiException) else error,
            )
            return None

    def get_all_licenses(self) -> List[LicenseResponse]:
        """
        Lista todas as licenças do tenant atual.

        :return: Licenças encontradas.
        :rtype: List[LicenseResponse]
        """
        try:
            return list(self._license_api.get_all_licenses_by_tenant() or [])
        except ApiException as error:
            logger.error("Nao foi possivel listar licencas: %s", get_error_message(error))
            return []

    def get_all_valid_licenses(self) -> List[LicenseResponse]:
        """
        Lista as licenças válidas do tenant atual.

        :return: Licenças válidas encontradas.
        :rtype: List[LicenseResponse]
        """
        try:
            return list(self._license_api.get_all_valid_licenses_by_tenant() or [])
        except ApiException as error:
            logger.error("Nao foi possivel listar licencas validas: %s", get_error_message(error))
            return []

    def get_license_by_model_type(self, model_type: Any) -> LicenseResponse | None:
        """
        Consulta a licença de um modelo.

        :param model_type: Tipo do modelo cuja licença será consultada.
        :type model_type: objeto de enumeração ou str
        :return: Licença encontrada ou None caso não exista ou a consulta falhe.
        :rtype: LicenseResponse | None
        """
        try:
            return self._license_api.get_license_by_model(str(enum_value(model_type)))
        except (ApiException, ValueError) as error:
            logger.error(
                "Nao foi possivel buscar a licenca de %s: %s",
                model_type,
                get_error_message(error) if isinstance(error, ApiException) else error,
            )
            return None

    def check_valide_license(self, model_type: Any) -> bool:
        """
        Verifica se existe licença válida para um modelo.

        :param model_type: Tipo do modelo cuja licença será validada.
        :type model_type: objeto de enumeração ou str
        :return: True quando há uma licença válida; False caso contrário.
        :rtype: bool
        """
        try:
            return bool(self._license_api.check_valid_license(str(enum_value(model_type))))
        except (ApiException, ValueError) as error:
            logger.error(
                "Nao foi possivel validar a licenca de %s: %s",
                model_type,
                get_error_message(error) if isinstance(error, ApiException) else error,
            )
            return False

check_valide_license(model_type)

Verifica se existe licença válida para um modelo.

Parameters:

Name Type Description Default
model_type Any

Tipo do modelo cuja licença será validada.

required

Returns:

Type Description
bool

True quando há uma licença válida; False caso contrário.

Source code in pldpro_sdk/core/proxies/license.py
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
def check_valide_license(self, model_type: Any) -> bool:
    """
    Verifica se existe licença válida para um modelo.

    :param model_type: Tipo do modelo cuja licença será validada.
    :type model_type: objeto de enumeração ou str
    :return: True quando há uma licença válida; False caso contrário.
    :rtype: bool
    """
    try:
        return bool(self._license_api.check_valid_license(str(enum_value(model_type))))
    except (ApiException, ValueError) as error:
        logger.error(
            "Nao foi possivel validar a licenca de %s: %s",
            model_type,
            get_error_message(error) if isinstance(error, ApiException) else error,
        )
        return False

create_license(file, license_request)

Envia um arquivo de licença e seus metadados.

Parameters:

Name Type Description Default
file Union[Path, str]

Caminho do arquivo de licença a ser enviado.

required
license_request Any

Metadados associados à licença.

required

Returns:

Type Description
LicenseResponse | None

Licença criada ou None caso o envio falhe.

Source code in pldpro_sdk/core/proxies/license.py
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
def create_license(self, file: Union[Path, str], license_request: Any) -> LicenseResponse | None:
    """
    Envia um arquivo de licença e seus metadados.

    :param file: Caminho do arquivo de licença a ser enviado.
    :type file: Path ou str
    :param license_request: Metadados associados à licença.
    :type license_request: objeto, dict ou str
    :return: Licença criada ou None caso o envio falhe.
    :rtype: LicenseResponse | None
    """
    try:
        return upload_license(
            self._license_api.create_license,
            "de licenca",
            file,
            save_zip=False,
            should_zip=False,
            use_full_path=False,
            license_request=self._serialize_request(license_request),
        )
    except (ApiException, OSError, ValueError, TypeError) as error:
        logger.error(
            "Nao foi possivel enviar a licenca: %s",
            get_error_message(error) if isinstance(error, ApiException) else error,
        )
        return None

get_all_licenses()

Lista todas as licenças do tenant atual.

Returns:

Type Description
List[LicenseResponse]

Licenças encontradas.

Source code in pldpro_sdk/core/proxies/license.py
56
57
58
59
60
61
62
63
64
65
66
67
def get_all_licenses(self) -> List[LicenseResponse]:
    """
    Lista todas as licenças do tenant atual.

    :return: Licenças encontradas.
    :rtype: List[LicenseResponse]
    """
    try:
        return list(self._license_api.get_all_licenses_by_tenant() or [])
    except ApiException as error:
        logger.error("Nao foi possivel listar licencas: %s", get_error_message(error))
        return []

get_all_valid_licenses()

Lista as licenças válidas do tenant atual.

Returns:

Type Description
List[LicenseResponse]

Licenças válidas encontradas.

Source code in pldpro_sdk/core/proxies/license.py
69
70
71
72
73
74
75
76
77
78
79
80
def get_all_valid_licenses(self) -> List[LicenseResponse]:
    """
    Lista as licenças válidas do tenant atual.

    :return: Licenças válidas encontradas.
    :rtype: List[LicenseResponse]
    """
    try:
        return list(self._license_api.get_all_valid_licenses_by_tenant() or [])
    except ApiException as error:
        logger.error("Nao foi possivel listar licencas validas: %s", get_error_message(error))
        return []

get_license_by_model_type(model_type)

Consulta a licença de um modelo.

Parameters:

Name Type Description Default
model_type Any

Tipo do modelo cuja licença será consultada.

required

Returns:

Type Description
LicenseResponse | None

Licença encontrada ou None caso não exista ou a consulta falhe.

Source code in pldpro_sdk/core/proxies/license.py
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
def get_license_by_model_type(self, model_type: Any) -> LicenseResponse | None:
    """
    Consulta a licença de um modelo.

    :param model_type: Tipo do modelo cuja licença será consultada.
    :type model_type: objeto de enumeração ou str
    :return: Licença encontrada ou None caso não exista ou a consulta falhe.
    :rtype: LicenseResponse | None
    """
    try:
        return self._license_api.get_license_by_model(str(enum_value(model_type)))
    except (ApiException, ValueError) as error:
        logger.error(
            "Nao foi possivel buscar a licenca de %s: %s",
            model_type,
            get_error_message(error) if isinstance(error, ApiException) else error,
        )
        return None