From 96628400ced3b6dfc1ef35692f5e5a3ca388749a Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 12 Feb 2013 07:50:01 -0500 Subject: fixed some option parsing bugs --- src/lib/Bcfg2/Options.py | 18 ++++++++++-------- src/lib/Bcfg2/Server/Admin/Xcmd.py | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Options.py b/src/lib/Bcfg2/Options.py index decb726d0..6289e3eae 100644 --- a/src/lib/Bcfg2/Options.py +++ b/src/lib/Bcfg2/Options.py @@ -1168,20 +1168,22 @@ class OptionParser(OptionSet): def reparse(self, argv=None, do_getopt=None): """ parse the options again, taking any changes (e.g., to the config file) into account """ + self.parse(argv=argv, do_getopt=do_getopt) + + def parse(self, argv=None, do_getopt=None): for key, opt in self.optinfo.items(): self[key] = opt if "args" not in self.optinfo and "args" in self: del self['args'] + self.argv = argv or sys.argv[1:] + if self.do_getopt is None: + if do_getopt: + self.do_getopt = do_getopt + else: + self.do_getopt = True if do_getopt is None: do_getopt = self.do_getopt - if argv is None: - argv = self.argv - self.parse(argv, do_getopt) - - def parse(self, argv=None, do_getopt=True): - self.argv = argv or sys.argv[1:] - self.do_getopt = do_getopt - OptionSet.parse(self, self.argv, do_getopt=self.do_getopt) + OptionSet.parse(self, self.argv, do_getopt=do_getopt) def add_option(self, name, opt): """ Add an option to the parser """ diff --git a/src/lib/Bcfg2/Server/Admin/Xcmd.py b/src/lib/Bcfg2/Server/Admin/Xcmd.py index 13077c7ad..6f411c2e4 100644 --- a/src/lib/Bcfg2/Server/Admin/Xcmd.py +++ b/src/lib/Bcfg2/Server/Admin/Xcmd.py @@ -36,7 +36,7 @@ class Xcmd(Bcfg2.Server.Admin.Mode): return cmd = args[0] try: - data = getattr(proxy, cmd)(*setup['args']) + data = getattr(proxy, cmd)(*args[1:]) except xmlrpclib.Fault: flt = sys.exc_info()[1] if flt.faultCode == 7: -- cgit v1.2.3-1-g7c22