summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorTim Beale <timbeale@catalyst.net.nz>2018-08-09 15:30:55 +1200
committerKarolin Seeger <kseeger@samba.org>2018-08-23 10:39:14 +0200
commit69583d1d32e01472b52543a730af63a99ef9c3f6 (patch)
treea2cc905018b6216fcb1829b4e2d70c407b02da42 /python
parentec475511389aca66549ee403880408a8230ae31f (diff)
downloadsamba-69583d1d32e01472b52543a730af63a99ef9c3f6.tar.gz
netcmd: domain backup didn't support prompting for password
The online/rename backups only worked if you specified both the username and password in the actual command itself. If you just entered the username (expecting to be prompted for the password later), then the command was rejected. The problem was the order the code was doing things in. We were checking credopts.creds.get_password() *before* we'd called credopts.get_credentials(lp), whereas it should be the other way around. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13566 Signed-off-by: Tim Beale <timbeale@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> (cherry picked from commit 14077b6682d7dc1b16e1ccb42ef61e9f4c0a1715)
Diffstat (limited to 'python')
-rw-r--r--python/samba/netcmd/domain_backup.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/python/samba/netcmd/domain_backup.py b/python/samba/netcmd/domain_backup.py
index f7b8edb2840..b16763afb15 100644
--- a/python/samba/netcmd/domain_backup.py
+++ b/python/samba/netcmd/domain_backup.py
@@ -150,10 +150,10 @@ def check_targetdir(logger, targetdir):
raise CommandError("%s is not a directory" % targetdir)
-def check_online_backup_args(logger, credopts, server, targetdir):
+def check_online_backup_args(logger, creds, server, targetdir):
# Make sure we have all the required args.
- u_p = {'user': credopts.creds.get_username(),
- 'pass': credopts.creds.get_password()}
+ u_p = {'user': creds.get_username(),
+ 'pass': creds.get_password()}
if None in u_p.values():
raise CommandError("Creds required.")
if server is None:
@@ -212,12 +212,12 @@ class cmd_domain_backup_online(samba.netcmd.Command):
logger = self.get_logger()
logger.setLevel(logging.DEBUG)
- # Make sure we have all the required args.
- check_online_backup_args(logger, credopts, server, targetdir)
-
lp = sambaopts.get_loadparm()
creds = credopts.get_credentials(lp)
+ # Make sure we have all the required args.
+ check_online_backup_args(logger, creds, server, targetdir)
+
tmpdir = tempfile.mkdtemp(dir=targetdir)
# Run a clone join on the remote
@@ -680,8 +680,11 @@ class cmd_domain_backup_rename(samba.netcmd.Command):
logger = self.get_logger()
logger.setLevel(logging.INFO)
+ lp = sambaopts.get_loadparm()
+ creds = credopts.get_credentials(lp)
+
# Make sure we have all the required args.
- check_online_backup_args(logger, credopts, server, targetdir)
+ check_online_backup_args(logger, creds, server, targetdir)
delete_old_dns = not keep_dns_realm
new_dns_realm = new_dns_realm.lower()
@@ -695,8 +698,6 @@ class cmd_domain_backup_rename(samba.netcmd.Command):
tmpdir = tempfile.mkdtemp(dir=targetdir)
# setup a join-context for cloning the remote server
- lp = sambaopts.get_loadparm()
- creds = credopts.get_credentials(lp)
include_secrets = not no_secrets
ctx = DCCloneAndRenameContext(new_base_dn, new_domain_name,
new_dns_realm, logger=logger,