+
+
+class CredentialsOptionsDouble(CredentialsOptions):
+ """Command line options for specifying credentials of two servers."""
+
+ def __init__(self, parser):
+ CredentialsOptions.__init__(self, parser)
+ self.no_pass2 = True
+ 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)
+ self.no_pass2 = False
+
+ def _set_kerberos2(self, option, opt_str, arg, parser):
+ self.creds2.set_kerberos_state(parse_kerberos_arg(arg, opt_str))
+
+ def _set_simple_bind_dn2(self, option, opt_str, arg, parser):
+ self.creds2.set_bind_dn(arg)
+
+ def get_credentials2(self, lp, guess=True):
+ """Obtain the credentials set on the command-line.
+
+ :param lp: Loadparm object to use.
+ :param guess: Try guess Credentials from environment
+ :return: Credentials object
+ """
+ if guess:
+ self.creds2.guess(lp)
+ elif not self.creds2.get_username():
+ self.creds2.set_anonymous()
+
+ if self.no_pass2:
+ self.creds2.set_cmdline_callbacks()
+ return self.creds2