testparm: do not fail if /run/samba does not exist
authorMichael Tokarev <mjt@tls.msk.ru>
Tue, 26 Apr 2022 13:14:38 +0000 (16:14 +0300)
committerMichael Tokarev <mjt@tls.msk.ru>
Mon, 2 Sep 2024 14:48:34 +0000 (17:48 +0300)
testparm explicitly fails if $piddir or $lockdir does not exist.
However, the daemons which actually use these directories, will
create it on demand, there is no need to fail even simple testparm
operations if the dirs are not there.

This change lets to (pre)configure samba without bothering to
pre-create the directories which are overwise needed only to fulfil
testparm criteria.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Gbp-Pq: Name testparm-do-not-fail-if-pid-dir-does-not-exist.patch

python/samba/netcmd/testparm.py
source3/utils/testparm.c

index a419ddf126064de8bb6da2660f8dc08781aabee6..6fbde635a7dd022ff88cd0a56dbb251f13208be1 100644 (file)
@@ -145,14 +145,12 @@ class cmd_testparm(Command):
         lockdir = lp.get("lockdir")
 
         if not os.path.isdir(lockdir):
-            logger.error("lock directory %s does not exist", lockdir)
-            valid = False
+            logger.warning("lock directory %s does not exist", lockdir)
 
         piddir = lp.get("pid directory")
 
         if not os.path.isdir(piddir):
-            logger.error("pid directory %s does not exist", piddir)
-            valid = False
+            logger.warning("pid directory %s does not exist", piddir)
 
         winbind_separator = lp.get("winbind separator")
 
index e3ed336a79a1ec35341d9d46dc84322804675a2d..607ce3a552547aeea3d51193eb5d225f942d4a79 100644 (file)
@@ -420,9 +420,8 @@ static int do_global_checks(void)
        }
 
        if (!directory_exist_stat(lp_lock_directory(), &st)) {
-               fprintf(stderr, "ERROR: lock directory %s does not exist\n\n",
+               fprintf(stderr, "WARNING: lock directory %s does not exist\n\n",
                       lp_lock_directory());
-               ret = 1;
        } else if ((st.st_ex_mode & 0777) != 0755) {
                fprintf(stderr, "WARNING: lock directory %s should have "
                                "permissions 0755 for browsing to work\n\n",
@@ -450,9 +449,8 @@ static int do_global_checks(void)
        }
 
        if (!directory_exist_stat(lp_pid_directory(), &st)) {
-               fprintf(stderr, "ERROR: pid directory %s does not exist\n\n",
+               fprintf(stderr, "WARNING: pid directory %s does not exist\n\n",
                       lp_pid_directory());
-               ret = 1;
        }
 
        if (lp_passdb_expand_explicit()) {