Skip to content

Commit de60905

Browse files
committed
Fix auth credentials
1 parent 0dfe8e7 commit de60905

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

ydb/_topic_reader/topic_reader_asyncio.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,10 @@ async def _read_messages_loop(self):
516516
async def _update_token_loop(self):
517517
while True:
518518
await asyncio.sleep(self._update_token_interval)
519-
await self._update_token(token=self._get_token_function())
519+
token = self._get_token_function()
520+
if asyncio.iscoroutine(token):
521+
token = await token
522+
await self._update_token(token=token)
520523

521524
async def _update_token(self, token: str):
522525
await self._update_token_event.wait()

ydb/_topic_writer/topic_writer_asyncio.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,10 @@ def write(self, messages: List[InternalMessage]):
686686
async def _update_token_loop(self):
687687
while True:
688688
await asyncio.sleep(self._update_token_interval)
689-
await self._update_token(token=self._get_token_function())
689+
token = self._get_token_function()
690+
if asyncio.iscoroutine(token):
691+
token = await token
692+
await self._update_token(token=token)
690693

691694
async def _update_token(self, token: str):
692695
await self._update_token_event.wait()

ydb/aio/credentials.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
import time
2-
31
import abc
42
import asyncio
53
import logging
6-
from ydb import issues, credentials
4+
import time
5+
6+
from ydb import credentials
7+
from ydb import issues
78

89
logger = logging.getLogger(__name__)
10+
YDB_AUTH_TICKET_HEADER = "x-ydb-auth-ticket"
11+
912

1013

1114
class _OneToManyValue(object):
@@ -64,6 +67,12 @@ def __init__(self):
6467
async def _make_token_request(self):
6568
pass
6669

70+
async def get_auth_token(self) -> str:
71+
for header, token in await self.auth_metadata():
72+
if header == YDB_AUTH_TICKET_HEADER:
73+
return token
74+
return ""
75+
6776
async def _refresh(self):
6877
current_time = time.time()
6978
self._log_refresh_start(current_time)

0 commit comments

Comments
 (0)