From: Michael Tremer Date: Wed, 22 Jan 2025 12:05:54 +0000 (+0000) Subject: builders: Fix connecting to the controller X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fbe4bbcb3da54596665cba88cbd0af5bebeebf03;p=pbs.git builders: Fix connecting to the controller Signed-off-by: Michael Tremer --- diff --git a/src/web/base.py b/src/web/base.py index 2a1767b2..26a4785f 100644 --- a/src/web/base.py +++ b/src/web/base.py @@ -685,16 +685,6 @@ class APIMixin(KerberosAuthMixin): async def get_user_locale(self): return self.get_browser_locale() - @property - def builder(self): - """ - This is a convenience handler to access a builder by a better name - """ - if isinstance(self.current_user, builders.Builder): - return self.current_user - - raise AttributeError - def get_compression_options(self): # Enable maximum compression return { diff --git a/src/web/builders.py b/src/web/builders.py index 2637a6c7..31c47e1c 100644 --- a/src/web/builders.py +++ b/src/web/builders.py @@ -11,14 +11,16 @@ log = logging.getLogger("pbs.web.builders") class APIv1ControlHandler(base.APIMixin, base.BackendMixin, tornado.websocket.WebSocketHandler): @base.negotiate - def prepare(self): + async def prepare(self): # This is here to require authentication before # the websocket connection is being negotiated. - pass + + # Fetch the builder + self.builder = await self.get_current_user() async def open(self): # The builder has opened a new connection - self.current_user.connected(self) + self.builder.connected(self) # After the builder has connected, try to dispatch some jobs await self.backend.jobs.queue.dispatch() @@ -28,7 +30,7 @@ class APIv1ControlHandler(base.APIMixin, base.BackendMixin, tornado.websocket.We def on_close(self): # Drop the connection to the builder - self.current_user.disconnected() + self.builder.disconnected() async def on_message(self, message): # Decode message