From: Rob van der Linde Date: Fri, 6 Oct 2023 02:47:43 +0000 (+1300) Subject: python: getopt: Add HostOptions to avoid need to manually add -H X-Git-Tag: talloc-2.4.2~1124 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1244ba304a2de598779f9fcf1307244f333ab65;p=thirdparty%2Fsamba.git python: getopt: Add HostOptions to avoid need to manually add -H Signed-off-by: Rob van der Linde Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/getopt.py b/python/samba/getopt.py index 11af22f496e..210288f9a0d 100644 --- a/python/samba/getopt.py +++ b/python/samba/getopt.py @@ -269,6 +269,22 @@ class Samba3Options(SambaOptions): self._lp = s3param.get_context() +class HostOptions(optparse.OptionGroup): + """Command line options for connecting to target host or database.""" + + def __init__(self, parser): + super().__init__(parser, "Host Options") + + self.H = None + self.add_option("-H", "--URL", + help="LDB URL for database or target server", + type=str, metavar="URL", action="callback", + callback=self._set_H, dest="H") + + def _set_H(self, option, opt_str, arg, parser): + parser.values.H = self.H = arg + + class VersionOptions(optparse.OptionGroup): """Command line option for printing Samba version.""" def __init__(self, parser): diff --git a/python/samba/tests/samba_tool/base.py b/python/samba/tests/samba_tool/base.py index f305c1df566..a4f4578ff39 100644 --- a/python/samba/tests/samba_tool/base.py +++ b/python/samba/tests/samba_tool/base.py @@ -52,15 +52,13 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase): parser = OptionParser() sambaopts = options.SambaOptions(parser) credopts = options.CredentialsOptions(parser) - parser.add_option("-H", "--URL", - help="LDB URL for database or target server", - type=str, metavar="URL", dest="H") - opts, args = parser.parse_args(list(argv)) + hostopts = options.HostOptions(parser) + parser.parse_args(list(argv)) lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp, fallback_machine=True) - return SamDB(url=opts.H, session_info=system_session(), + return SamDB(url=hostopts.H, session_info=system_session(), credentials=creds, lp=lp) @classmethod