On 04/23/2013 01:23 PM, Petr Viktorin wrote:
On 04/23/2013 12:25 PM, Tomas Babej wrote:
Hi,

This patch makes sure that sss is not removed from nsswitch.conf
which causes probles with later uses of sssd. Makes sure that
authconfig with --disablesssd option is not executed during
ipa client uninstall.

https://fedorahosted.org/freeipa/ticket/3577

Tomas

This works well, ACK.

I would also link to the bug in a comment to help people reading the code in the future -- it's not immediately clear why 'sssd' is excluded. But that's probably nitpicking too much.

Not at all, I'm all for readability. Updated patch attached, no functional changes.

Tomas
>From 527cd7bf10fbee31af8020dbf4bcaee7adec7d24 Mon Sep 17 00:00:00 2001
From: Tomas Babej <tba...@redhat.com>
Date: Mon, 22 Apr 2013 11:37:33 +0200
Subject: [PATCH] Avoid removing sss from nssswitch.conf during client
 uninstall

This patch makes sure that sss is not removed from nsswitch.conf
which causes probles with later uses of sssd. Makes sure that
authconfig with --disablesssd option is not executed during
ipa client uninstall.

https://fedorahosted.org/freeipa/ticket/3577
---
 ipa-client/ipa-install/ipa-client-install | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/ipa-client/ipa-install/ipa-client-install b/ipa-client/ipa-install/ipa-client-install
index 29adc93f3bcb3ccc81c31237af314af0ba61b8c9..3f27303898aa7be895268d28023c050c282baf85 100755
--- a/ipa-client/ipa-install/ipa-client-install
+++ b/ipa-client/ipa-install/ipa-client-install
@@ -445,7 +445,10 @@ def uninstall(options, env):
             # disable only those configurations that we enabled during install
             for conf in ('ldap', 'krb5', 'sssd', 'sssdauth', 'mkhomedir'):
                 cnf = statestore.restore_state('authconfig', conf)
-                if cnf:
+                # Do not disable sssd, as this can cause issues with its later
+                # uses. Remove it from statestore however, so that it becomes
+                # empty at the end of uninstall process.
+                if cnf and conf != 'sssd':
                     auth_config.disable(conf)
         else:
             # There was no authconfig status store
@@ -454,10 +457,9 @@ def uninstall(options, env):
             auth_config.disable("ldap").\
                         disable("krb5")
             if not(was_sssd_installed and was_sssd_configured):
-                # assume there was sssd.conf before install and there were more than one domain in it
-                # In such case restoring sssd.conf will require us to keep SSSD running
-                auth_config.disable("sssd").\
-                            disable("sssdauth")
+                # Only disable sssdauth. Disabling sssd would cause issues
+                # with its later uses.
+                auth_config.disable("sssdauth")
             auth_config.disable("mkhomedir")
 
         auth_config.add_option("update")
-- 
1.8.1.4

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to