Add '--use-ntvfs' option to 'samba-tool domain join'
authorAndriy Syrovenko <andriys@gmail.com>
Mon, 4 Jun 2012 22:32:42 +0000 (01:32 +0300)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 5 Jun 2012 02:27:36 +0000 (04:27 +0200)
source4/scripting/python/samba/join.py
source4/scripting/python/samba/netcmd/domain.py

index fddb61b494e3ff8bb948880f540da9fabe06d624..a683ee6963e3d118ed3602364ab3fc3988294c98 100644 (file)
@@ -47,12 +47,13 @@ class dc_join(object):
 
     def __init__(ctx, server=None, creds=None, lp=None, site=None,
             netbios_name=None, targetdir=None, domain=None,
-            machinepass=None):
+            machinepass=None, use_ntvfs=False):
         ctx.creds = creds
         ctx.lp = lp
         ctx.site = site
         ctx.netbios_name = netbios_name
         ctx.targetdir = targetdir
+        ctx.use_ntvfs = use_ntvfs
 
         ctx.creds.set_gensec_features(creds.get_gensec_features() | gensec.FEATURE_SEAL)
         ctx.net = Net(creds=ctx.creds, lp=ctx.lp)
@@ -595,7 +596,7 @@ class dc_join(object):
                 hostname=ctx.myname, domainsid=ctx.domsid,
                 machinepass=ctx.acct_pass, serverrole="domain controller",
                 sitename=ctx.site, lp=ctx.lp, ntdsguid=ctx.ntds_guid,
-                dns_backend="NONE")
+                use_ntvfs=ctx.use_ntvfs, dns_backend="NONE")
         print "Provision OK for domain DN %s" % presult.domaindn
         ctx.local_samdb = presult.samdb
         ctx.lp          = presult.lp
@@ -882,11 +883,11 @@ class dc_join(object):
 
 def join_RODC(server=None, creds=None, lp=None, site=None, netbios_name=None,
               targetdir=None, domain=None, domain_critical_only=False,
-              machinepass=None):
+              machinepass=None, use_ntvfs=False):
     """join as a RODC"""
 
     ctx = dc_join(server, creds, lp, site, netbios_name, targetdir, domain,
-                  machinepass)
+                  machinepass, use_ntvfs)
 
     lp.set("workgroup", ctx.domain_name)
     print("workgroup is %s" % ctx.domain_name)
@@ -936,10 +937,10 @@ def join_RODC(server=None, creds=None, lp=None, site=None, netbios_name=None,
 
 def join_DC(server=None, creds=None, lp=None, site=None, netbios_name=None,
             targetdir=None, domain=None, domain_critical_only=False,
-            machinepass=None):
+            machinepass=None, use_ntvfs=False):
     """join as a DC"""
     ctx = dc_join(server, creds, lp, site, netbios_name, targetdir, domain,
-                  machinepass)
+                  machinepass, use_ntvfs)
 
     lp.set("workgroup", ctx.domain_name)
     print("workgroup is %s" % ctx.domain_name)
@@ -966,10 +967,10 @@ def join_DC(server=None, creds=None, lp=None, site=None, netbios_name=None,
 
 def join_subdomain(server=None, creds=None, lp=None, site=None, netbios_name=None,
                    targetdir=None, parent_domain=None, dnsdomain=None, netbios_domain=None,
-                   machinepass=None):
+                   machinepass=None, use_ntvfs=False):
     """join as a DC"""
     ctx = dc_join(server, creds, lp, site, netbios_name, targetdir, parent_domain,
-                  machinepass)
+                  machinepass, use_ntvfs)
     ctx.subdomain = True
     ctx.parent_domain_name = ctx.domain_name
     ctx.domain_name = netbios_domain
index a53c06acd9381737a9ae46fe97ae1c90840a1f01..02b30c35b3bf3943c872f66bf36ba2cb0800f563 100644 (file)
@@ -146,14 +146,17 @@ class cmd_domain_join(Command):
                help="only replicate critical domain objects",
                action="store_true"),
         Option("--machinepass", type=str, metavar="PASSWORD",
-               help="choose machine password (otherwise random)")
+               help="choose machine password (otherwise random)"),
+        Option("--use-ntvfs", help="Use NTVFS for the fileserver (default = no)",
+               action="store_true")
         ]
 
     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, machinepass=None):
+            domain_critical_only=False, parent_domain=None, machinepass=None,
+            use_ntvfs=False):
         lp = sambaopts.get_loadparm()
         creds = credopts.get_credentials(lp)
         net = Net(creds, lp, server=credopts.ipaddress)
@@ -178,13 +181,13 @@ class cmd_domain_join(Command):
             join_DC(server=server, creds=creds, lp=lp, domain=domain,
                     site=site, netbios_name=netbios_name, targetdir=targetdir,
                     domain_critical_only=domain_critical_only,
-                    machinepass=machinepass)
+                    machinepass=machinepass, use_ntvfs=use_ntvfs)
             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,
-                      machinepass=machinepass)
+                      machinepass=machinepass, use_ntvfs=use_ntvfs)
             return
         elif role == "SUBDOMAIN":
             netbios_domain = lp.get("workgroup")
@@ -192,7 +195,7 @@ class cmd_domain_join(Command):
                 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,
-                           machinepass=machinepass)
+                           machinepass=machinepass, use_ntvfs=use_ntvfs)
             return
         else:
             raise CommandError("Invalid role '%s' (possible values: MEMBER, DC, RODC, SUBDOMAIN)" % role)