summaryrefslogtreecommitdiff
path: root/source4/scripting/python
diff options
context:
space:
mode:
Diffstat (limited to 'source4/scripting/python')
-rw-r--r--source4/scripting/python/samba/getopt.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/source4/scripting/python/samba/getopt.py b/source4/scripting/python/samba/getopt.py
index 48d48dc260..a62bd5ae5a 100644
--- a/source4/scripting/python/samba/getopt.py
+++ b/source4/scripting/python/samba/getopt.py
@@ -114,3 +114,55 @@ class CredentialsOptions(optparse.OptionGroup):
if not self.no_pass:
self.creds.set_cmdline_callbacks()
return self.creds
+
+class CredentialsOptionsDouble(CredentialsOptions):
+ """Command line options for specifying credentials of two servers."""
+ def __init__(self, parser):
+ CredentialsOptions.__init__(self, parser)
+ self.no_pass2 = False
+ self.add_option("--simple-bind-dn2", metavar="DN2", action="callback",
+ callback=self._set_simple_bind_dn2, type=str,
+ help="DN to use for a simple bind")
+ self.add_option("--password2", metavar="PASSWORD2", action="callback",
+ help="Password", type=str, callback=self._set_password2)
+ self.add_option("--username2", metavar="USERNAME2",
+ action="callback", type=str,
+ help="Username for second server", callback=self._parse_username2)
+ self.add_option("--workgroup2", metavar="WORKGROUP2",
+ action="callback", type=str,
+ help="Workgroup for second server", callback=self._parse_workgroup2)
+ self.add_option("--no-pass2", action="store_true",
+ help="Don't ask for a password for the second server")
+ self.add_option("--kerberos2", metavar="KERBEROS2",
+ action="callback", type=str,
+ help="Use Kerberos", callback=self._set_kerberos2)
+ self.creds2 = Credentials()
+
+ def _parse_username2(self, option, opt_str, arg, parser):
+ self.creds2.parse_string(arg)
+
+ def _parse_workgroup2(self, option, opt_str, arg, parser):
+ self.creds2.set_domain(arg)
+
+ def _set_password2(self, option, opt_str, arg, parser):
+ self.creds2.set_password(arg)
+
+ def _set_kerberos2(self, option, opt_str, arg, parser):
+ if bool(arg) or arg.lower() == "yes":
+ self.creds2.set_kerberos_state(MUST_USE_KERBEROS)
+ else:
+ self.creds2.set_kerberos_state(DONT_USE_KERBEROS)
+
+ def _set_simple_bind_dn2(self, option, opt_str, arg, parser):
+ self.creds2.set_bind_dn(arg)
+
+ def get_credentials2(self, lp):
+ """Obtain the credentials set on the command-line.
+
+ :param lp: Loadparm object to use.
+ :return: Credentials object
+ """
+ self.creds2.guess(lp)
+ if not self.no_pass2:
+ self.creds2.set_cmdline_callbacks()
+ return self.creds2