Skip to content

Commit c15b425

Browse files
committed
fix(consumers): no data when follow is false
1 parent 952079a commit c15b425

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

rootfs/api/consumers.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from asgiref.sync import sync_to_async
1111

12+
from urllib3.response import HTTPResponse
1213
from kubernetes.client import Configuration, exceptions
1314
from kubernetes.client.api import core_v1_api
1415
from kubernetes.stream import stream
@@ -140,19 +141,26 @@ async def receive(self, text_data=None, bytes_data=None):
140141
self.running = True
141142
data = json.loads(text_data)
142143
args = (self.pod_id, self.id)
144+
lines = data.get("lines", 100)
145+
follow = data.get("follow", False)
143146
kwargs = {
144-
"tail_lines": data.get("lines", 100),
145-
"follow": data.get("follow", False),
147+
"tail_lines": lines if lines < 1000 else 1000,
148+
"follow": follow,
146149
"container": data.get("container", ""),
147-
"_preload_content": False,
150+
"_preload_content": not follow,
148151
}
149-
loop = asyncio.get_event_loop()
150152
self.response = await sync_to_async(self.kubernetes.read_namespaced_pod_log)(
151153
*args, **kwargs)
152-
loop.add_reader(self.response.connection.sock, self.reader, self.response.connection.sock)
154+
if follow:
155+
loop = asyncio.get_event_loop()
156+
loop.add_reader(
157+
self.response.connection.sock, self.reader, self.response.connection.sock)
158+
else:
159+
asyncio.create_task(self.send(text_data=self.response))
160+
asyncio.create_task(self.close(code=1000))
153161

154162
async def disconnect(self, close_code):
155-
if self.response:
163+
if isinstance(self.response, HTTPResponse):
156164
loop = asyncio.get_event_loop()
157165
loop.remove_reader(self.response.connection.sock)
158166
await sync_to_async(self.response.close)()

0 commit comments

Comments
 (0)