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.
This commit is contained in:
Martin Hostettler 2016-08-22 19:50:53 +02:00
parent 484c091c62
commit 79de73685b
1 changed files with 10 additions and 2 deletions

View File

@ -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)