Esempio n. 1
0
def ParseRequest(msg):
    """Parses a request message.

  """
    try:
        request = serializer.LoadJson(msg)
    except ValueError as err:
        raise ProtocolError("Invalid RPC request (parsing error): %s" % err)

    logging.debug("RPC request: %s", request)

    if not isinstance(request, dict):
        logging.error("RPC request not a dict: %r", msg)
        raise ProtocolError("Invalid RPC request (not a dict)")

    method = request.get(KEY_METHOD, None)  # pylint: disable=E1103
    args = request.get(KEY_ARGS, None)  # pylint: disable=E1103
    version = request.get(KEY_VERSION, None)  # pylint: disable=E1103

    if method is None or args is None:
        logging.error("RPC request missing method or arguments: %r", msg)
        raise ProtocolError(("Invalid RPC request (no method or arguments"
                             " in request): %r") % msg)

    return (method, args, version)
Esempio n. 2
0
def ParseRequest(msg):
  """Parses a request message.

  """
  try:
    request = serializer.LoadJson(msg)
  except ValueError, err:
    raise ProtocolError("Invalid RPC request (parsing error): %s" % err)
Esempio n. 3
0
def ParseResponse(msg):
    """Parses a response message.

  """
    # Parse the result
    try:
        data = serializer.LoadJson(msg)
    except KeyboardInterrupt:
        raise
    except Exception as err:
        raise ProtocolError("Error while deserializing response: %s" %
                            str(err))

    # Validate response
    if not (isinstance(data, dict) and KEY_SUCCESS in data
            and KEY_RESULT in data):
        raise ProtocolError("Invalid response from server: %r" % data)

    return (data[KEY_SUCCESS], data[KEY_RESULT], data.get(KEY_VERSION, None))  # pylint: disable=E1103
Esempio n. 4
0
def ParseResponse(msg):
  """Parses a response message.

  """
  # Parse the result
  try:
    data = serializer.LoadJson(msg)
  except KeyboardInterrupt:
    raise
  except Exception, err:
    raise ProtocolError("Error while deserializing response: %s" % str(err))
Esempio n. 5
0

def ParseRequest(msg):
  """Parses a request message.

  """
  try:
    request = serializer.LoadJson(msg)
  except ValueError, err:
    raise ProtocolError("Invalid RPC request (parsing error): %s" % err)

  logging.debug("RPC request: %s", request)

  if not isinstance(request, dict):
    logging.error("RPC request not a dict: %r", msg)
    raise ProtocolError("Invalid RPC request (not a dict)")

  method = request.get(KEY_METHOD, None) # pylint: disable=E1103
  args = request.get(KEY_ARGS, None) # pylint: disable=E1103
  version = request.get(KEY_VERSION, None) # pylint: disable=E1103

  if method is None or args is None:
    logging.error("RPC request missing method or arguments: %r", msg)
    raise ProtocolError(("Invalid RPC request (no method or arguments"
                         " in request): %r") % msg)

  return (method, args, version)


def ParseResponse(msg):
  """Parses a response message.