diff --git a/scripts/rpc.py b/scripts/rpc.py index d7b99a6e0..5993d0d61 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 from rpc.client import print_dict, JSONRPCException +from rpc.helpers import deprecated_aliases import logging import argparse @@ -33,7 +34,7 @@ if __name__ == "__main__": help='Set verbose mode to INFO', default="ERROR") parser.add_argument('--verbose', dest='verbose', choices=['DEBUG', 'INFO', 'ERROR'], help="""Set verbose level. """) - subparsers = parser.add_subparsers(help='RPC methods') + subparsers = parser.add_subparsers(help='RPC methods', dest='called_rpc_name') def start_subsystem_init(args): rpc.start_subsystem_init(args.client) @@ -1793,9 +1794,14 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-n', '--max', help="""Maximum number of notifications to return in response""", type=int) p.set_defaults(func=get_notifications) + def check_called_name(name): + if name in deprecated_aliases: + print("{} is deprecated, use {} instead.".format(name, deprecated_aliases[name]), file=sys.stderr) + def call_rpc_func(args): try: args.func(args) + check_called_name(args.called_rpc_name) except JSONRPCException as ex: print("Exception:") print(ex.message) diff --git a/scripts/rpc/helpers.py b/scripts/rpc/helpers.py new file mode 100644 index 000000000..d931fcf14 --- /dev/null +++ b/scripts/rpc/helpers.py @@ -0,0 +1,16 @@ +import sys + +deprecated_aliases = {} + + +def deprecated_alias(old_name): + def wrap(f): + def old_f(*args, **kwargs): + ret = f(*args, **kwargs) + print("{} is deprecated, use {} instead.".format(old_name, f.__name__), file=sys.stderr) + return ret + old_f.__name__ = old_name + deprecated_aliases[old_name] = f.__name__ + setattr(sys.modules[f.__module__], old_name, old_f) + return f + return wrap