浏览代码

remote: Change exception message for unexpected RPC data format to indicate dataflow direction

don't print stacktraces to clean up error messages when sshing into a forces command to borg serve.
Martin Hostettler 8 年之前
父节点
当前提交
79de73685b
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      borg/remote.py

+ 10 - 2
borg/remote.py

@@ -37,6 +37,14 @@ class InvalidRPCMethod(Error):
     """RPC method {} is not valid"""
 
 
+class UnexpectedRPCDataFormatFromClient(Error):
+    """Borg {}: Got unexpected RPC data format from client."""
+
+
+class UnexpectedRPCDataFormatFromServer(Error):
+    """Got unexpected RPC data format from server."""
+
+
 class RepositoryServer:  # pragma: no cover
     rpc_methods = (
         '__len__',
@@ -87,7 +95,7 @@ class RepositoryServer:  # pragma: no cover
                     if not (isinstance(unpacked, tuple) and len(unpacked) == 4):
                         if self.repository is not None:
                             self.repository.close()
-                        raise Exception("Unexpected RPC data format.")
+                        raise UnexpectedRPCDataFormatFromClient(__version__)
                     type, msgid, method, args = unpacked
                     method = method.decode('ascii')
                     try:
@@ -328,7 +336,7 @@ This problem will go away as soon as the server has been upgraded to 1.0.7+.
                     self.unpacker.feed(data)
                     for unpacked in self.unpacker:
                         if not (isinstance(unpacked, tuple) and len(unpacked) == 4):
-                            raise Exception("Unexpected RPC data format.")
+                            raise UnexpectedRPCDataFormatFromServer()
                         type, msgid, error, res = unpacked
                         if msgid in self.ignore_responses:
                             self.ignore_responses.remove(msgid)