s4:python: add --machinepass option to 'samba-tool domain join'
authorStefan Metzmacher <metze@samba.org>
Wed, 16 Nov 2011 14:32:47 +0000 (15:32 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 29 Nov 2011 08:21:25 +0000 (09:21 +0100)
metze

source4/scripting/python/samba/netcmd/domain.py

index 88d0d70320196bce3c13fe0aedc7997dfeef2a76..bd73b6cab11a10c1455fd047804df770ae126b8b 100644 (file)
@@ -115,13 +115,15 @@ class cmd_domain_join(Command):
         Option("--domain-critical-only",
                help="only replicate critical domain objects",
                action="store_true"),
+        Option("--machinepass", type=str, metavar="PASSWORD",
+               help="choose machine password (otherwise random)")
         ]
 
     takes_args = ["domain", "role?"]
 
     def run(self, domain, role=None, sambaopts=None, credopts=None,
             versionopts=None, server=None, site=None, targetdir=None,
-            domain_critical_only=False, parent_domain=None):
+            domain_critical_only=False, parent_domain=None, machinepass=None):
         lp = sambaopts.get_loadparm()
         creds = credopts.get_credentials(lp)
         net = Net(creds, lp, server=credopts.ipaddress)
@@ -137,26 +139,30 @@ class cmd_domain_join(Command):
         if role is None or role == "MEMBER":
             (join_password, sid, domain_name) = net.join_member(domain,
                                                                 netbios_name,
-                                                                LIBNET_JOIN_AUTOMATIC)
+                                                                LIBNET_JOIN_AUTOMATIC,
+                                                                machinepass=machinepass)
 
             self.outf.write("Joined domain %s (%s)\n" % (domain_name, sid))
             return
         elif role == "DC":
             join_DC(server=server, creds=creds, lp=lp, domain=domain,
                     site=site, netbios_name=netbios_name, targetdir=targetdir,
-                    domain_critical_only=domain_critical_only)
+                    domain_critical_only=domain_critical_only,
+                    machinepass=machinepass)
             return
         elif role == "RODC":
             join_RODC(server=server, creds=creds, lp=lp, domain=domain,
                       site=site, netbios_name=netbios_name, targetdir=targetdir,
-                      domain_critical_only=domain_critical_only)
+                      domain_critical_only=domain_critical_only,
+                      machinepass=machinepass)
             return
         elif role == "SUBDOMAIN":
             netbios_domain = lp.get("workgroup")
             if parent_domain is None:
                 parent_domain = ".".join(domain.split(".")[1:])
             join_subdomain(server=server, creds=creds, lp=lp, dnsdomain=domain, parent_domain=parent_domain,
-                           site=site, netbios_name=netbios_name, netbios_domain=netbios_domain, targetdir=targetdir)
+                           site=site, netbios_name=netbios_name, netbios_domain=netbios_domain, targetdir=targetdir,
+                           machinepass=machinepass)
             return
         else:
             raise CommandError("Invalid role '%s' (possible values: MEMBER, DC, RODC, SUBDOMAIN)" % role)