@@ -97,7 +97,7 @@ def __init__(
97
97
"""
98
98
assert use_asyncio is not True , NotImplementedError ("AsyncIO not yet implemented." )
99
99
super ().__init__ (
100
- self ._exdcute_query ,
100
+ self ._execute_query ,
101
101
use_async_loop = use_asyncio or KubeApiRestQuery .default_use_asyncio ,
102
102
use_daemon_thread = True ,
103
103
thread_name = f"{ self .__class__ .__name__ } { id (self )} " ,
@@ -221,18 +221,20 @@ def on_reconnect(self, client: "KubeApiRestClient"):
221
221
"""
222
222
return True
223
223
224
- def _exdcute_query (self , client : "KubeApiRestClient" ):
224
+ def _execute_query (self , client : "KubeApiRestClient" ):
225
225
self ._set_connection_state (KubeApiRestQueryConnectionState .Disconnected , False )
226
226
self .emit (self .query_started_event_name , self , client )
227
227
self .pre_request (client )
228
228
229
229
try :
230
230
self .query_loop (client )
231
+ self .post_request (client )
232
+ except Exception as ex :
233
+ self .emit_error (ex )
234
+ raise ex
231
235
finally :
232
236
self ._set_connection_state (KubeApiRestQueryConnectionState .Disconnected )
233
-
234
- self .post_request (client )
235
- self .emit (self .query_ended_event_name , self , client )
237
+ self .emit (self .query_ended_event_name , self , client )
236
238
237
239
def query_loop (self , client : "KubeApiRestClient" ):
238
240
"""Overridable. The main query loop. Called to execute the query.
@@ -605,16 +607,18 @@ def _create_query_handler(self, queries: List[KubeApiRestQuery]) -> EventHandler
605
607
606
608
pending = set (queries )
607
609
608
- def remove_from_pending (q ):
610
+ def remove_from_pending (q , ex : Exception = None ):
609
611
if q in pending :
610
612
pending .remove (q )
613
+ if ex :
614
+ handler .emit_error (ex )
611
615
if len (pending ) == 0 :
612
616
handler .stop_all_streams ()
613
617
614
618
for q in queries :
615
619
self ._active_queries .add (q )
616
620
q .on (q .query_ended_event_name , lambda query , client : remove_from_pending (query ))
617
- q .on (q .error_event_name , lambda query , err : remove_from_pending (query ))
621
+ q .on (q .error_event_name , lambda query , err : remove_from_pending (query , err ))
618
622
q .pipe (handler )
619
623
620
624
return handler
0 commit comments