summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorGary Lockyer <gary@catalyst.net.nz>2019-06-28 08:56:31 +1200
committerGary Lockyer <gary@samba.org>2019-07-02 02:23:09 +0000
commit97bc3db68a5ec2cd20e5059d77089e76a0625479 (patch)
treeb65c11995ac9bd741b29b994aa868d94c4b8393c /python
parent0ee3b06640b9032f4b462aad03f076e28b8763ed (diff)
downloadsamba-97bc3db68a5ec2cd20e5059d77089e76a0625479.tar.gz
samba-tool clone-dc-database: Add --backend-store-size option
Add a new "samba-tool drs clone-dc-database" option "backend-store-size". This allows the lmdb map size to be set during a clone, instead of hard-wiring it to 8Gb. Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>' Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'python')
-rw-r--r--python/samba/join.py12
-rw-r--r--python/samba/netcmd/drs.py16
2 files changed, 21 insertions, 7 deletions
diff --git a/python/samba/join.py b/python/samba/join.py
index 2d756a46f14..794f5577b41 100644
--- a/python/samba/join.py
+++ b/python/samba/join.py
@@ -1551,12 +1551,14 @@ def join_DC(logger=None, server=None, creds=None, lp=None, site=None, netbios_na
def join_clone(logger=None, server=None, creds=None, lp=None,
targetdir=None, domain=None, include_secrets=False,
- dns_backend="NONE", backend_store=None):
+ dns_backend="NONE", backend_store=None,
+ backend_store_size=None):
"""Creates a local clone of a remote DC."""
ctx = DCCloneContext(logger, server, creds, lp, targetdir=targetdir,
domain=domain, dns_backend=dns_backend,
include_secrets=include_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)
@@ -1629,11 +1631,13 @@ class DCCloneContext(DCJoinContext):
def __init__(ctx, logger=None, server=None, creds=None, lp=None,
targetdir=None, domain=None, dns_backend=None,
- include_secrets=False, backend_store=None):
+ include_secrets=False, backend_store=None,
+ backend_store_size=None):
super(DCCloneContext, ctx).__init__(logger, server, creds, lp,
targetdir=targetdir, domain=domain,
dns_backend=dns_backend,
- backend_store=backend_store)
+ backend_store=backend_store,
+ backend_store_size=backend_store_size)
# As we don't want to create or delete these DNs, we set them to None
ctx.server_dn = None
diff --git a/python/samba/netcmd/drs.py b/python/samba/netcmd/drs.py
index e6b892c2877..739498cca1b 100644
--- a/python/samba/netcmd/drs.py
+++ b/python/samba/netcmd/drs.py
@@ -47,6 +47,7 @@ from samba.uptodateness import (
get_kcc_and_dsas,
)
from samba.compat import get_string
+from samba.samdb import get_default_backend_store
def drsuapi_connect(ctx):
'''make a DRSUAPI connection to the server'''
@@ -756,14 +757,21 @@ class cmd_drs_clone_dc_database(Command):
Option("--targetdir", help="where to store provision (required)", type=str),
Option("-q", "--quiet", help="Be quiet", action="store_true"),
Option("--include-secrets", help="Also replicate secret values", action="store_true"),
- Option("-v", "--verbose", help="Be verbose", action="store_true")
+ Option("--backend-store", type="choice", metavar="BACKENDSTORE",
+ 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).")
]
takes_args = ["domain"]
def run(self, domain, sambaopts=None, credopts=None,
versionopts=None, server=None, targetdir=None,
- quiet=False, verbose=False, include_secrets=False):
+ quiet=False, verbose=False, include_secrets=False,
+ backend_store=None, backend_store_size=None):
lp = sambaopts.get_loadparm()
creds = credopts.get_credentials(lp)
@@ -774,7 +782,9 @@ class cmd_drs_clone_dc_database(Command):
join_clone(logger=logger, server=server, creds=creds, lp=lp,
domain=domain, dns_backend='SAMBA_INTERNAL',
- targetdir=targetdir, include_secrets=include_secrets)
+ targetdir=targetdir, include_secrets=include_secrets,
+ backend_store=backend_store,
+ backend_store_size=backend_store_size)
class cmd_drs_uptodateness(Command):