]> git.ipfire.org Git - pbs.git/commitdiff
builders: Fix connecting to the controller
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Jan 2025 12:05:54 +0000 (12:05 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Jan 2025 12:05:54 +0000 (12:05 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/web/base.py
src/web/builders.py

index 2a1767b289e99d876a1d8b1002c9af6221c24ac0..26a4785fc018980a433aedf8391224e05d52b31e 100644 (file)
@@ -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 {
index 2637a6c74e176e3f826346caf633652b40a5977d..31c47e1c53b9d3c8b83c66b88172045672d87e9f 100644 (file)
@@ -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