83 lines
3.3 KiB
Diff
83 lines
3.3 KiB
Diff
|
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
|
||
|
|
||
|
|