From f1634aacdf8e05400ccbf11c835da85edf920140 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Fri, 18 Sep 2009 01:18:23 +0000 Subject: bcfg2-admin xcmd: improve error handling (Resolves Ticket #734) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5441 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Admin/Xcmd.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/Server/Admin/Xcmd.py b/src/lib/Server/Admin/Xcmd.py index 79f949fbd..7591c0c45 100644 --- a/src/lib/Server/Admin/Xcmd.py +++ b/src/lib/Server/Admin/Xcmd.py @@ -3,6 +3,7 @@ import Bcfg2.Proxy import Bcfg2.Server.Admin import sys +import xmlrpclib class Xcmd(Bcfg2.Server.Admin.Mode): __shorthelp__ = ("XML-RPC Command Interface") @@ -30,7 +31,20 @@ class Xcmd(Bcfg2.Server.Admin.Mode): key = setup['key'], cert = setup['certificate'], ca = setup['ca'], timeout=180) + if len(setup['args']) == 0: + print("Usage: xcmd ") + return cmd = setup['args'][0] - data = getattr(proxy, cmd)() + args = () + if len(setup['args']) > 1: + args = tuple(setup['args'][1:]) + try: + data = apply(getattr(proxy, cmd), args) + except xmlrpclib.Fault, flt: + if flt.faultCode == 1: + print("Unknown method %s" % cmd) + return + else: + raise if data != None: print data -- cgit v1.2.3-1-g7c22