takes_options = [
Option("--server", help="DC to join", type=str),
- Option("--targetdir", help="where to store provision", type=str),
+ Option("--targetdir", help="where to store provision (required)", type=str),
Option("--quiet", help="Be quiet", action="store_true"),
Option("--include-secrets", help="Also replicate secret values", action="store_true"),
Option("--verbose", help="Be verbose", action="store_true")
else:
logger.setLevel(logging.INFO)
+ if targetdir is None:
+ raise CommandError("--targetdir option must be specified")
+
+
join_clone(logger=logger, server=server, creds=creds, lp=lp, domain=domain,
targetdir=targetdir, include_secrets=include_secrets)
shutil.rmtree(os.path.join(self.tempdir, "msg.lock"))
os.remove(os.path.join(self.tempdir, "names.tdb"))
shutil.rmtree(os.path.join(self.tempdir, "state"))
+
+ def test_samba_tool_drs_clone_dc_secrets_without_targetdir(self):
+ """Tests 'samba-tool drs clone-dc-database' command without --targetdir."""
+ server_rootdse = self._get_rootDSE(self.dc1)
+ server_ldap_service_name = str(server_rootdse["ldapServiceName"][0])
+ server_realm = server_ldap_service_name.split(":")[0]
+ creds = self.get_credentials()
+ def attempt_clone():
+ out = self.check_output("samba-tool drs clone-dc-database %s --server=%s %s"
+ % (server_realm,
+ self.dc1,
+ self.cmdline_creds))
+ self.assertRaises(samba.tests.BlackboxProcessError, attempt_clone)