diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-02-12 07:50:01 -0500 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-02-12 08:35:32 -0500 |
commit | 96628400ced3b6dfc1ef35692f5e5a3ca388749a (patch) | |
tree | 768f85edde1c8b2558ee537e13d6b533e34cf3de /src | |
parent | ee0911a6183f4d367719804e695039051851ef3f (diff) | |
download | bcfg2-96628400ced3b6dfc1ef35692f5e5a3ca388749a.tar.gz bcfg2-96628400ced3b6dfc1ef35692f5e5a3ca388749a.tar.bz2 bcfg2-96628400ced3b6dfc1ef35692f5e5a3ca388749a.zip |
fixed some option parsing bugs
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/Bcfg2/Options.py | 18 | ||||
-rw-r--r-- | src/lib/Bcfg2/Server/Admin/Xcmd.py | 2 |
2 files changed, 11 insertions, 9 deletions
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: |