samba-tool domain join: Add --backend-store-size option
authorGary Lockyer <gary@catalyst.net.nz>
Thu, 27 Jun 2019 20:52:50 +0000 (08:52 +1200)
committerGary Lockyer <gary@samba.org>
Tue, 2 Jul 2019 02:23:09 +0000 (02:23 +0000)
Add a new "samba-tool domain join" option "backend-store-size".
This allows the lmdb map size to be set during a provision, instead of
hard-wiring it to 8Gb.

Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/join.py
python/samba/netcmd/domain.py
selftest/knownfail.d/join_lmdb_size [deleted file]

index 464911223193e606264a021198e3fa31fa6f4a58..2d756a46f14e27ff568bc9add57d8f0ef929e0ca 100644 (file)
@@ -66,7 +66,9 @@ class DCJoinContext(object):
                  netbios_name=None, targetdir=None, domain=None,
                  machinepass=None, use_ntvfs=False, dns_backend=None,
                  promote_existing=False, plaintext_secrets=False,
-                 backend_store=None, forced_local_samdb=None):
+                 backend_store=None,
+                 backend_store_size=None,
+                 forced_local_samdb=None):
 
         ctx.logger = logger
         ctx.creds = creds
@@ -76,6 +78,7 @@ class DCJoinContext(object):
         ctx.use_ntvfs = use_ntvfs
         ctx.plaintext_secrets = plaintext_secrets
         ctx.backend_store = backend_store
+        ctx.backend_store_size = backend_store_size
 
         ctx.promote_existing = promote_existing
         ctx.promote_from_dn = None
@@ -872,7 +875,8 @@ class DCJoinContext(object):
                             sitename=ctx.site, lp=ctx.lp, ntdsguid=ctx.ntds_guid,
                             use_ntvfs=ctx.use_ntvfs, dns_backend=ctx.dns_backend,
                             plaintext_secrets=ctx.plaintext_secrets,
-                            backend_store=ctx.backend_store
+                            backend_store=ctx.backend_store,
+                            backend_store_size=ctx.backend_store_size
                             )
         print("Provision OK for domain DN %s" % presult.domaindn)
         ctx.local_samdb = presult.samdb
@@ -1459,13 +1463,15 @@ def join_RODC(logger=None, server=None, creds=None, lp=None, site=None, netbios_
               targetdir=None, domain=None, domain_critical_only=False,
               machinepass=None, use_ntvfs=False, dns_backend=None,
               promote_existing=False, plaintext_secrets=False,
-              backend_store=None):
+              backend_store=None,
+              backend_store_size=None):
     """Join as a RODC."""
 
     ctx = DCJoinContext(logger, server, creds, lp, site, netbios_name,
                         targetdir, domain, machinepass, use_ntvfs, dns_backend,
                         promote_existing, plaintext_secrets,
-                        backend_store=backend_store)
+                        backend_store=backend_store,
+                        backend_store_size=backend_store_size)
 
     lp.set("workgroup", ctx.domain_name)
     logger.info("workgroup is %s" % ctx.domain_name)
@@ -1513,12 +1519,14 @@ def join_DC(logger=None, server=None, creds=None, lp=None, site=None, netbios_na
             targetdir=None, domain=None, domain_critical_only=False,
             machinepass=None, use_ntvfs=False, dns_backend=None,
             promote_existing=False, plaintext_secrets=False,
-            backend_store=None):
+            backend_store=None,
+            backend_store_size=None):
     """Join as a DC."""
     ctx = DCJoinContext(logger, server, creds, lp, site, netbios_name,
                         targetdir, domain, machinepass, use_ntvfs, dns_backend,
                         promote_existing, plaintext_secrets,
-                        backend_store=backend_store)
+                        backend_store=backend_store,
+                        backend_store_size=backend_store_size)
 
     lp.set("workgroup", ctx.domain_name)
     logger.info("workgroup is %s" % ctx.domain_name)
index 7ffbf1a81db2e5ab23a924ae3b2fbe479d3073c4..3f6876a79bd0552c343ec108bbf7528ec1a8c23b 100644 (file)
@@ -703,7 +703,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,
@@ -711,7 +712,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!")
diff --git a/selftest/knownfail.d/join_lmdb_size b/selftest/knownfail.d/join_lmdb_size
deleted file mode 100644 (file)
index c78ea0e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-samba.tests.samba_tool.join_lmdb_size.samba.tests.samba_tool.join_lmdb_size.JoinLmdbSizeTestCase.test_join_as_dc\(ad_dc_default\)
-samba.tests.samba_tool.join_lmdb_size.samba.tests.samba_tool.join_lmdb_size.JoinLmdbSizeTestCase.test_join_as_rodc\(ad_dc_default\)
-