force_traceback = True
if force_traceback or samba.get_debug_level() >= 3:
- traceback.print_tb(etraceback)
+ traceback.print_tb(etraceback, file=self.errf)
def _create_parser(self, prog, epilog=None):
parser = optparse.OptionParser(
# Check for a min a max number of allowed arguments, whenever possible
# The suffix "?" means zero or one occurence
# The suffix "+" means at least one occurence
+ # The suffix "*" means zero or more occurences
min_args = 0
max_args = 0
undetermined_max_args = False
for i, arg in enumerate(self.takes_args):
- if arg[-1] != "?":
+ if arg[-1] != "?" and arg[-1] != "*":
min_args += 1
- if arg[-1] == "+":
+ if arg[-1] == "+" or arg[-1] == "*":
undetermined_max_args = True
else:
max_args += 1
return -1
def run(self):
- """Run the command. This should be overriden by all subclasses."""
+ """Run the command. This should be overridden by all subclasses."""
raise NotImplementedError(self.run)
def get_logger(self, name="netcmd"):