From 6332aed9ba67e2ee759a9d988ba92139486469d4 Mon Sep 17 00:00:00 2001
From: François Cami <fcami@redhat.com>
Date: Feb 14 2020 16:38:19 +0000
Subject: ipa-client-automount: call save_domain() for each change
Call sssdconfig.save_domain(domain) after each configuration
change during ipa-client-automount --uninstall.
Previously, sssdconfig.save_domain(domain) was called only
outside of the domain detection loop which changed the domain
configuration. This introduced issues as this method's behavior
is only consistent when configuration items are removed in a
certain order: https://pagure.io/SSSD/sssd/issue/4149
Plus, it is more correct to save the configuration from within
the loop if ever we support multiple domains.
Fixes: https://pagure.io/freeipa/issue/8190
Signed-off-by: François Cami <fcami@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
---
diff --git a/ipaclient/install/ipa_client_automount.py b/ipaclient/install/ipa_client_automount.py
index 3ef257a..fdf974d 100644
--- a/ipaclient/install/ipa_client_automount.py
+++ b/ipaclient/install/ipa_client_automount.py
@@ -355,9 +355,10 @@ def uninstall(fstore, statestore):
continue
if provider == "ipa":
domain.remove_option('ipa_automount_location')
+ sssdconfig.save_domain(domain)
domain.remove_provider('autofs')
+ sssdconfig.save_domain(domain)
break
- sssdconfig.save_domain(domain)
sssdconfig.write(paths.SSSD_CONF)
sssd = services.service('sssd', api)
sssd.restart()
From 7ae804c726970ae467a7f76efa21bae40405551d Mon Sep 17 00:00:00 2001
From: François Cami <fcami@redhat.com>
Date: Feb 14 2020 16:38:19 +0000
Subject: ipatests: make sure ipa-client-automount reverts sssd.conf
Due to https://pagure.io/SSSD/sssd/issue/4149 ipa-client-automount
fails to remove the ipa_automount_location entry from sssd.conf.
Test that autofs_provider and ipa_automount_location are removed.
Fixes: https://pagure.io/freeipa/issue/8190
Signed-off-by: François Cami <fcami@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
---
diff --git a/ipatests/test_integration/test_nfs.py b/ipatests/test_integration/test_nfs.py
index 7d29836..532dd61 100644
--- a/ipatests/test_integration/test_nfs.py
+++ b/ipatests/test_integration/test_nfs.py
@@ -332,6 +332,20 @@ class TestIpaClientAutomountFileRestore(IntegrationTest):
"ipa-client-automount", "--uninstall", "-U"
])
+ if not no_sssd:
+ # https://pagure.io/freeipa/issue/8190
+ # check that no ipa_automount_location is left in sssd.conf
+ # also check for autofs_provider for good measure
+ grep_automount_in_sssdconf_cmd = \
+ "egrep ipa_automount_location\\|autofs_provider " \
+ "/etc/sssd/sssd.conf"
+ cmd = self.clients[0].run_command(
+ grep_automount_in_sssdconf_cmd, raiseonerr=False
+ )
+ assert cmd.returncode == 1, \
+ "PG8190 regression found: ipa_automount_location still " \
+ "present in sssd.conf"
+
cmd = self.clients[0].run_command(grep_automount_command)
assert cmd.stdout_text.split() == after_ipa_client_install