]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
samba-tool domain provision: add lmdb database size option
authorGary Lockyer <gary@catalyst.net.nz>
Fri, 21 Jun 2019 01:13:08 +0000 (13:13 +1200)
committerGary Lockyer <gary@samba.org>
Tue, 2 Jul 2019 02:23:09 +0000 (02:23 +0000)
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/netcmd/domain.py
python/samba/provision/__init__.py
selftest/knownfail.d/provision_lmdb_size

index 1835de742307119b6fc4dc007d5abb68dad6ab72..d7b7cdb315c1056d38ae7b6d3c1313429b669603 100644 (file)
@@ -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)
 
index 3d7e23cf07743ec57f68a2c22556a73de10064e6..d78222845ba99620b43dc03b4498e34aafea6658 100644 (file)
@@ -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!
index f2992c3ec0b7a586f6b3781737fe1fb2672351be..297fcf1ce258aa14806b01ea0256999f3987c510 100644 (file)
@@ -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\)
-