samba-tool: Correct handling of default value for use_ntvfs and use_xattrs
authorAndrew Bartlett <abartlet@samba.org>
Mon, 30 Jan 2017 02:34:09 +0000 (15:34 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 11 Feb 2017 06:49:16 +0000 (07:49 +0100)
Because these options are optional based on build-time rules, we need to encode the
default value from the additonal Option() blocks in the run() declaration.

Then we can correctly check only for the expected options, and not inconsistently for
None (causing classicupgrade to fail).

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12543
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
python/samba/netcmd/domain.py

index 966182869a38692671fa04901159d2b81bb9264d..b4081e63911ff81cb37acaea46a6557fb256e284 100644 (file)
@@ -298,9 +298,9 @@ class cmd_domain_provision(Command):
             partitions_only=None,
             targetdir=None,
             ol_mmr_urls=None,
-            use_xattrs=None,
+            use_xattrs="auto",
             slapd_path=None,
-            use_ntvfs=None,
+            use_ntvfs=False,
             use_rfc2307=None,
             ldap_backend_nosync=None,
             ldap_backend_extra_port=None,
@@ -413,9 +413,9 @@ class cmd_domain_provision(Command):
 
         if use_xattrs == "yes":
             eadb = False
-        elif use_xattrs == "auto" and use_ntvfs == False or use_ntvfs == None:
+        elif use_xattrs == "auto" and use_ntvfs == False:
             eadb = False
-        elif use_ntvfs == False or use_ntvfs == None:
+        elif use_ntvfs == False:
             raise CommandError("--use-xattrs=no requires --use-ntvfs (not supported for production use).  "
                                "Please re-run with --use-xattrs omitted.")
         elif use_xattrs == "auto" and not lp.get("posix:eadb"):
@@ -1491,7 +1491,7 @@ class cmd_domain_classicupgrade(Command):
     takes_args = ["smbconf"]
 
     def run(self, smbconf=None, targetdir=None, dbdir=None, testparm=None,
-            quiet=False, verbose=False, use_xattrs=None, sambaopts=None, versionopts=None,
+            quiet=False, verbose=False, use_xattrs="auto", sambaopts=None, versionopts=None,
             dns_backend=None, use_ntvfs=False):
 
         if not os.path.exists(smbconf):
@@ -1532,9 +1532,9 @@ class cmd_domain_classicupgrade(Command):
         eadb = True
         if use_xattrs == "yes":
             eadb = False
-        elif use_xattrs == "auto" and use_ntvfs == False or use_ntvfs == None:
+        elif use_xattrs == "auto" and use_ntvfs == False:
             eadb = False
-        elif use_ntvfs == False or use_ntvfs == None:
+        elif use_ntvfs == False:
             raise CommandError("--use-xattrs=no requires --use-ntvfs (not supported for production use).  "
                                "Please re-run with --use-xattrs omitted.")
         elif use_xattrs == "auto" and not s3conf.get("posix:eadb"):