From: Gary Lockyer Date: Fri, 21 Jun 2019 01:13:08 +0000 (+1200) Subject: samba-tool domain provision: add lmdb database size option X-Git-Tag: ldb-2.0.5~91 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5cbe76e395de1c21246e1ecdaf9eeb57783a34f9;p=thirdparty%2Fsamba.git samba-tool domain provision: add lmdb database size option Signed-off-by: Gary Lockyer Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py index 1835de74230..d7b7cdb315c 100644 --- a/python/samba/netcmd/domain.py +++ b/python/samba/netcmd/domain.py @@ -118,6 +118,9 @@ common_provision_join_options = [ choices=["tdb", "mdb"], help="Specify the database backend to be used " "(default is %s)" % get_default_backend_store()), + Option("--backend-store-size", type="bytes", metavar="SIZE", + help="Specify the size of the backend database, currently only " + + "supported by lmdb backends (default is 8 Gb)."), Option("--targetdir", metavar="DIR", help="Set target directory (where to store provision)", type=str), Option("-q", "--quiet", help="Be quiet", action="store_true"), @@ -364,7 +367,8 @@ class cmd_domain_provision(Command): ldap_dryrun_mode=None, base_schema=None, plaintext_secrets=False, - backend_store=None): + backend_store=None, + backend_store_size=None): self.logger = self.get_logger(name="provision", quiet=quiet) @@ -534,7 +538,8 @@ class cmd_domain_provision(Command): nosync=ldap_backend_nosync, ldap_dryrun_mode=ldap_dryrun_mode, base_schema=base_schema, plaintext_secrets=plaintext_secrets, - backend_store=backend_store) + backend_store=backend_store, + backend_store_size=backend_store_size) except ProvisioningError as e: raise CommandError("Provision failed", e) @@ -606,7 +611,7 @@ class cmd_domain_dcpromo(Command): domain_critical_only=False, parent_domain=None, machinepass=None, use_ntvfs=False, dns_backend=None, quiet=False, verbose=False, plaintext_secrets=False, - backend_store=None): + backend_store=None, backend_store_size=None): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) net = Net(creds, lp, server=credopts.ipaddress) @@ -625,14 +630,16 @@ class cmd_domain_dcpromo(Command): machinepass=machinepass, use_ntvfs=use_ntvfs, dns_backend=dns_backend, promote_existing=True, plaintext_secrets=plaintext_secrets, - backend_store=backend_store) + backend_store=backend_store, + backend_store_size=backend_store_size) elif role == "RODC": join_RODC(logger=logger, server=server, creds=creds, lp=lp, domain=domain, site=site, netbios_name=netbios_name, targetdir=targetdir, domain_critical_only=domain_critical_only, machinepass=machinepass, use_ntvfs=use_ntvfs, dns_backend=dns_backend, promote_existing=True, plaintext_secrets=plaintext_secrets, - backend_store=backend_store) + backend_store=backend_store, + backend_store_size=backend_store_size) else: raise CommandError("Invalid role '%s' (possible values: DC, RODC)" % role) @@ -672,7 +679,7 @@ class cmd_domain_join(Command): use_ntvfs=False, dns_backend=None, adminpass=None, quiet=False, verbose=False, plaintext_secrets=False, - backend_store=None): + backend_store=None,backend_store_size=None): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) net = Net(creds, lp, server=credopts.ipaddress) @@ -697,7 +704,8 @@ class cmd_domain_join(Command): machinepass=machinepass, use_ntvfs=use_ntvfs, dns_backend=dns_backend, plaintext_secrets=plaintext_secrets, - backend_store=backend_store) + backend_store=backend_store, + backend_store_size=backend_store_size) elif role == "RODC": join_RODC(logger=logger, server=server, creds=creds, lp=lp, domain=domain, site=site, netbios_name=netbios_name, targetdir=targetdir, @@ -705,7 +713,8 @@ class cmd_domain_join(Command): machinepass=machinepass, use_ntvfs=use_ntvfs, dns_backend=dns_backend, plaintext_secrets=plaintext_secrets, - backend_store=backend_store) + backend_store=backend_store, + backend_store_size=backend_store_size) elif role == "SUBDOMAIN": if not adminpass: logger.info("Administrator password will be set randomly!") @@ -720,7 +729,8 @@ class cmd_domain_join(Command): use_ntvfs=use_ntvfs, dns_backend=dns_backend, adminpass=adminpass, plaintext_secrets=plaintext_secrets, - backend_store=backend_store) + backend_store=backend_store, + backend_store_size=backend_store_size) else: raise CommandError("Invalid role '%s' (possible values: MEMBER, DC, RODC, SUBDOMAIN)" % role) diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py index 3d7e23cf077..d78222845ba 100644 --- a/python/samba/provision/__init__.py +++ b/python/samba/provision/__init__.py @@ -2139,7 +2139,8 @@ def provision(logger, session_info, smbconf=None, use_rfc2307=False, maxuid=None, maxgid=None, skip_sysvolacl=True, ldap_backend_forced_uri=None, nosync=False, ldap_dryrun_mode=False, ldap_backend_extra_port=None, base_schema="2012_R2", - plaintext_secrets=False, backend_store=None): + plaintext_secrets=False, backend_store=None, + backend_store_size=None): """Provision samba4 :note: caution, this wipes all existing data! diff --git a/selftest/knownfail.d/provision_lmdb_size b/selftest/knownfail.d/provision_lmdb_size index f2992c3ec0b..297fcf1ce25 100644 --- a/selftest/knownfail.d/provision_lmdb_size +++ b/selftest/knownfail.d/provision_lmdb_size @@ -1,7 +1,3 @@ ^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_134217728b\(none\) ^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_1Gb\(none\) ^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_64Mb\(none\) -^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_invalid_unit_suffix\(none\) -^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_no_unit_suffix\(none\) -^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_non_numeric\(none\) -