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>
This commit is contained in:
Florence Blanc-Renaud 2021-10-21 16:09:20 +02:00
parent 91334b271a
commit bbe554acf4

View File

@ -918,9 +918,16 @@ class ADTRUSTInstance(service.Service):
ipautil.remove_file(self.smb_conf) ipautil.remove_file(self.smb_conf)
# Remove samba's persistent and temporary tdb files # Remove samba's persistent and temporary tdb files
if os.path.isdir(paths.SAMBA_DIR): # in /var/lib/samba and /var/lib/samba/private
tdb_files = [tdb_file for tdb_file in os.listdir(paths.SAMBA_DIR) for smbpath in (paths.SAMBA_DIR,
if tdb_file.endswith(".tdb")] 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: for tdb_file in tdb_files:
ipautil.remove_file(tdb_file) ipautil.remove_file(tdb_file)