Blob Blame History Raw
From 6302769b83af75f267c76fe6f854d5b42b6b80f5 Mon Sep 17 00:00:00 2001
From: Florence Blanc-Renaud <flo@redhat.com>
Date: Oct 21 2021 19:58:19 +0000
Subject: ipa-server-install uninstall: remove tdb files


ipa-server-install uninstaller must remove samba *.tdb files
in /var/lib/samba, /var/lib/samba/private and /var/lib/samba/lock.
The current code calls rm on the relative path filename
instead of building an absolute path filename,
resulting in failure to remove the tdb files.

Related: https://pagure.io/freeipa/issue/8687
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>

---

diff --git a/ipaserver/install/adtrustinstance.py b/ipaserver/install/adtrustinstance.py
index 24e90f3..e034fab 100644
--- a/ipaserver/install/adtrustinstance.py
+++ b/ipaserver/install/adtrustinstance.py
@@ -918,11 +918,18 @@ class ADTRUSTInstance(service.Service):
         ipautil.remove_file(self.smb_conf)
 
         # Remove samba's persistent and temporary tdb files
-        if os.path.isdir(paths.SAMBA_DIR):
-            tdb_files = [tdb_file for tdb_file in os.listdir(paths.SAMBA_DIR)
-                         if tdb_file.endswith(".tdb")]
-            for tdb_file in tdb_files:
-                ipautil.remove_file(tdb_file)
+        # in /var/lib/samba and /var/lib/samba/private
+        for smbpath in (paths.SAMBA_DIR,
+                        os.path.join(paths.SAMBA_DIR, "private"),
+                        os.path.join(paths.SAMBA_DIR, "lock")):
+            if os.path.isdir(smbpath):
+                tdb_files = [
+                    os.path.join(smbpath, tdb_file)
+                    for tdb_file in os.listdir(smbpath)
+                    if tdb_file.endswith(".tdb")
+                ]
+                for tdb_file in tdb_files:
+                    ipautil.remove_file(tdb_file)
 
         # Remove our keys from samba's keytab
         self.clean_samba_keytab()

From 82eaa2eac454aed75a498d2c6ccd9e921f9c8a89 Mon Sep 17 00:00:00 2001
From: Florence Blanc-Renaud <flo@redhat.com>
Date: Oct 21 2021 19:58:19 +0000
Subject: ipa-client-samba uninstall: remove tdb files


ipa-client-samba uninstaller must remove samba *.tdb files
in /var/lib/samba, /var/lib/samba/private and /var/lib/samba/lock.
The current code calls rm on the relative path filename
instead of building an absolute path filename,
resulting in failure to remove the tdb files.

Fixes: https://pagure.io/freeipa/issue/8687
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>

---

diff --git a/ipaclient/install/ipa_client_samba.py b/ipaclient/install/ipa_client_samba.py
index fd89e59..222ff31 100755
--- a/ipaclient/install/ipa_client_samba.py
+++ b/ipaclient/install/ipa_client_samba.py
@@ -446,13 +446,17 @@ def uninstall(fstore, statestore, options):
         fstore.restore_file(paths.SMB_CONF)
 
     # Remove samba's persistent and temporary tdb files
-    tdb_files = [
-        tdb_file
-        for tdb_file in os.listdir(paths.SAMBA_DIR)
-        if tdb_file.endswith(".tdb")
-    ]
-    for tdb_file in tdb_files:
-        ipautil.remove_file(tdb_file)
+    # in /var/lib/samba and /var/lib/samba/private
+    for smbpath in (paths.SAMBA_DIR,
+                    os.path.join(paths.SAMBA_DIR, "private"),
+                    os.path.join(paths.SAMBA_DIR, "lock")):
+        tdb_files = [
+            os.path.join(smbpath, tdb_file)
+            for tdb_file in os.listdir(smbpath)
+            if tdb_file.endswith(".tdb")
+        ]
+        for tdb_file in tdb_files:
+            ipautil.remove_file(tdb_file)
 
     # Remove our keys from samba's keytab
     if os.path.exists(paths.SAMBA_KEYTAB):