From: David Mulder Date: Thu, 4 Nov 2021 14:42:06 +0000 (-0600) Subject: samba-tool: Add domain member leave X-Git-Tag: ldb-2.5.0~316 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=1fce72f796e44e9d7fc40f8f8052d08b5e0b2ec2;p=thirdparty%2Fsamba.git samba-tool: Add domain member leave Signed-off-by: David Mulder Reviewed-by: Rowland Penny Autobuild-User(master): David Mulder Autobuild-Date(master): Thu Nov 4 20:43:32 UTC 2021 on sn-devel-184 --- diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py index de6f2b0ca1d..eb52557212e 100644 --- a/python/samba/netcmd/domain.py +++ b/python/samba/netcmd/domain.py @@ -718,6 +718,36 @@ class cmd_domain_join(Command): raise CommandError("Invalid role '%s' (possible values: MEMBER, DC, RODC)" % role) +class cmd_domain_leave(Command): + """Cause a domain member to leave the joined domain.""" + + synopsis = "%prog [options]" + + takes_optiongroups = { + "sambaopts": options.SambaOptions, + "versionopts": options.VersionOptions, + "credopts": options.CredentialsOptions, + } + + takes_options = [ + Option("--keep-account", action="store_true", + help="Disable the machine account instead of deleting it.") + ] + + takes_args = [] + + def run(self, sambaopts=None, credopts=None, versionopts=None, + keep_account=False): + lp = sambaopts.get_loadparm() + creds = credopts.get_credentials(lp) + + s3_lp = s3param.get_context() + smb_conf = lp.configfile if lp.configfile else default_path() + s3_lp.load(smb_conf) + s3_net = s3_Net(creds, s3_lp) + s3_net.leave(keep_account) + + class cmd_domain_demote(Command): """Demote ourselves from the role of Domain Controller.""" @@ -4346,6 +4376,7 @@ class cmd_domain(SuperCommand): subcommands["exportkeytab"] = cmd_domain_export_keytab() subcommands["info"] = cmd_domain_info() subcommands["join"] = cmd_domain_join() + subcommands["leave"] = cmd_domain_leave() if is_ad_dc_built(): subcommands["demote"] = cmd_domain_demote() subcommands["provision"] = cmd_domain_provision()