Skip to content

Commit d7a22c6

Browse files
author
liuhuiqi.7
committed
feat(ark e2e): cert manager for client
Change-Id: I1d188da5187b30a18ff73bce12b8e50ae091c532
1 parent 4127681 commit d7a22c6

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

volcenginesdkarkruntime/_client.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
)
2828
from ._streaming import Stream
2929

30+
from ._utils._key_agreement import key_agreement_client
31+
3032
__all__ = ["Ark", "AsyncArk"]
3133

3234

@@ -85,6 +87,7 @@ def __init__(
8587

8688
self._default_stream_cls = Stream
8789
self._sts_token_manager: StsTokenManager | None = None
90+
self._certificate_manager: Dict[str, key_agreement_client] | None = None
8891

8992
self.chat = resources.Chat(self)
9093
self.bot_chat = resources.BotChat(self)
@@ -99,6 +102,34 @@ def _get_endpoint_sts_token(self, endpoint_id: str):
99102
self._sts_token_manager = StsTokenManager(self.ak, self.sk, self.region)
100103
return self._sts_token_manager.get(endpoint_id)
101104

105+
def _get_endpoint_certificate(self, endpoint_id: str) -> key_agreement_client:
106+
seed_pem = """-----BEGIN CERTIFICATE-----
107+
MIICxjCCAm2gAwIBAgIUG8YxEzdBJnYjBEYSc1j2diJ8/uMwCgYIKoZIzj0EAwIw
108+
gYQxITAfBgNVBAMMGE1hYVMgU0RLIFN1YiBDQSBFQ0MgUDI1NjEbMBkGA1UECgwS
109+
Vm9sY2FubyBFbmdpbmUgQXJrMREwDwYDVQQLDAhTZWN1cml0eTELMAkGA1UEBhMC
110+
Q04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcwHhcNMjQwMTAz
111+
MDY1MjM4WhcNMjkwMTAzMDY1MjM4WjCBgjELMAkGA1UEBhMCQ04xEDAOBgNVBAgT
112+
B0JlaWppbmcxEDAOBgNVBAcTB0JlaWppbmcxGzAZBgNVBAoTElZvbGNhbm8gRW5n
113+
aW5lIEFyazERMA8GA1UECxMIU2VjdXJpdHkxHzAdBgNVBAMTFk1hYVMgQ3J5cHRv
114+
IFNESyBPbmxpbmUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATD7RyZC51FCwuK
115+
xYKh2ZCwIvbNDvQfosUk3gKc0B/+euemDWDAaVazuBOm8okHsSmUrsEudeksRruG
116+
LTGu1lBxo4G8MIG5MA4GA1UdDwEB/wQEAwIDiDBYBgNVHR8EUTBPME2gS6BJhkdo
117+
dHRwOi8vY3JsLnZvbGNjYS5jb20vdm9sYzE/c249NURCNEUwNDNFRjQ3MEY3RDBB
118+
REU0RDIyMTNBNTU1NTEzMjEyOEM3MzA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUH
119+
MAGGHGh0dHA6Ly9vY3NwLnZvbGNjYS5jb20vdm9sYzEwEwYDVR0lBAwwCgYIKwYB
120+
BQUHAwEwCgYIKoZIzj0EAwIDRwAwRAIgFSel9WBkyPmpdG6YzReb7ShCVKq3scT3
121+
9T2mfBgooPkCIHpRalKvIJX5S9oSyTf6iQiUcwzfUHd47Ew+PUV7O6aq
122+
-----END CERTIFICATE-----"""
123+
if self._certificate_manager is None:
124+
self._certificate_manager = {}
125+
if endpoint_id not in self._certificate_manager:
126+
if self.ak is None or self.sk is None:
127+
raise ArkAPIError("must set ak and sk before get endpoint token.")
128+
self._certificate_manager[endpoint_id] = key_agreement_client(
129+
certificate_pem_string=seed_pem
130+
)
131+
return self._certificate_manager[endpoint_id]
132+
102133
def _get_bot_sts_token(self, bot_id: str):
103134
if self._sts_token_manager is None:
104135
if self.ak is None or self.sk is None:

0 commit comments

Comments
 (0)