summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorDavid Mulder <dmulder@suse.com>2021-11-04 08:42:06 -0600
committerDavid Mulder <dmulder@samba.org>2021-11-04 20:43:32 +0000
commit1fce72f796e44e9d7fc40f8f8052d08b5e0b2ec2 (patch)
tree75ae251d8855beaa4b974e4da251d234246d0931 /python
parent8082e2eb7e33c0993135791c03823886f5aa8496 (diff)
downloadsamba-1fce72f796e44e9d7fc40f8f8052d08b5e0b2ec2.tar.gz
samba-tool: Add domain member leave
Signed-off-by: David Mulder <dmulder@suse.com> Reviewed-by: Rowland Penny <rpenny@samba.org> Autobuild-User(master): David Mulder <dmulder@samba.org> Autobuild-Date(master): Thu Nov 4 20:43:32 UTC 2021 on sn-devel-184
Diffstat (limited to 'python')
-rw-r--r--python/samba/netcmd/domain.py31
1 files changed, 31 insertions, 0 deletions
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()