sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #05786
Re: [Merge] ~ack/maas:websocket-inlinecallbacks into maas:master
Review: Approve
+1, some nits inline
Diff comments:
> diff --git a/src/maasserver/websockets/protocol.py b/src/maasserver/websockets/protocol.py
> index 57c5f33..eed8345 100644
> --- a/src/maasserver/websockets/protocol.py
> +++ b/src/maasserver/websockets/protocol.py
> @@ -265,27 +247,30 @@ class WebSocketProtocol(Protocol):
> return handledMessages
> return handledMessages
>
> + @inlineCallbacks
> def handleRequest(self, message, msg_type=MSG_TYPE.REQUEST):
> """Handle the request message."""
> # Get the required request_id.
> request_id = self.getMessageField(message, "request_id")
> if request_id is None:
> - return None
> + returnValue(None)
> + return
>
> if msg_type == MSG_TYPE.PING:
> self.sequence_number += 1
> - return defer.succeed(
> - self.sendResult(
> - request_id=request_id,
> - result=self.sequence_number,
> - msg_type=MSG_TYPE.PING_REPLY,
> - )
> + self.sendResult(
> + request_id=request_id,
> + result=self.sequence_number,
> + msg_type=MSG_TYPE.PING_REPLY,
> )
> + returnValue(None)
> + return
returnValue() raise an exception, so this return is unreachable
>
> # Decode the method to be called.
> msg_method = self.getMessageField(message, "method")
> if msg_method is None:
> - return None
> + returnValue(None)
> + return
> try:
> handler_name, method = msg_method.split(".", 1)
> except ValueError:
> @@ -293,7 +278,8 @@ class WebSocketProtocol(Protocol):
> self.loseConnection(
> STATUSES.PROTOCOL_ERROR, "Invalid method formatting."
> )
> - return None
> + returnValue(None)
> + return
same as above
>
> # Create the handler for the call.
> handler_class = self.factory.getHandler(handler_name)
> @@ -302,15 +288,19 @@ class WebSocketProtocol(Protocol):
> STATUSES.PROTOCOL_ERROR,
> "Handler %s does not exist." % handler_name,
> )
> - return None
> + returnValue(None)
> + return
same as above
>
> handler = self.buildHandler(handler_class)
> - d = handler.execute(method, message.get("params", {}))
> - d.addCallbacks(
> - partial(self.sendResult, request_id),
> - partial(self.sendError, request_id, handler, method),
> - )
> - return d
> + try:
> + result = yield handler.execute(method, message.get("params", {}))
> + except Exception as error:
> + self.sendError(request_id, handler, method, error)
> + returnValue(None)
> + return
same as above
> +
> + self.sendResult(request_id, result)
> + returnValue(None)
>
> def _json_encode(self, obj):
> """Allow byte strings embedded in the 'result' object passed to
--
https://code.launchpad.net/~ack/maas/+git/maas/+merge/438520
Your team MAAS Committers is subscribed to branch maas:master.
References