diff options
author | Gary Lockyer <gary@catalyst.net.nz> | 2019-06-28 08:56:31 +1200 |
---|---|---|
committer | Gary Lockyer <gary@samba.org> | 2019-07-02 02:23:09 +0000 |
commit | 97bc3db68a5ec2cd20e5059d77089e76a0625479 (patch) | |
tree | b65c11995ac9bd741b29b994aa868d94c4b8393c /python | |
parent | 0ee3b06640b9032f4b462aad03f076e28b8763ed (diff) | |
download | samba-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.py | 12 | ||||
-rw-r--r-- | python/samba/netcmd/drs.py | 16 |
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): |