]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
samba-tool: Add domain member leave
authorDavid Mulder <dmulder@suse.com>
Thu, 4 Nov 2021 14:42:06 +0000 (08:42 -0600)
committerDavid Mulder <dmulder@samba.org>
Thu, 4 Nov 2021 20:43:32 +0000 (20:43 +0000)
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

python/samba/netcmd/domain.py

index de6f2b0ca1d22933ed1d42e977c60012794bbe6a..eb52557212e0d3ae77bfef92d9a7a9706f999bca 100644 (file)
@@ -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()