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 {
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()
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