e8c7a2
From ff4152539b96d309dcceaf854a3e0a49f435acff Mon Sep 17 00:00:00 2001
e8c7a2
From: Florence Blanc-Renaud <flo@redhat.com>
e8c7a2
Date: Mon, 20 Jun 2022 09:09:11 +0200
e8c7a2
Subject: [PATCH] Preserve user: fix the confusing summary
e8c7a2
e8c7a2
When ipa user-del --preserve is called, the command output
e8c7a2
prints a summary with:
e8c7a2
    Deleted user: user1
e8c7a2
although the user was preserved.
e8c7a2
Replace the summary with
e8c7a2
    Preserved user: user1
e8c7a2
to reflect what was actually done.
e8c7a2
e8c7a2
Fixes: https://pagure.io/freeipa/issue/9187
e8c7a2
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
e8c7a2
Reviewed-By: Michal Polovka <mpolovka@redhat.com>
e8c7a2
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
e8c7a2
---
e8c7a2
 ipaserver/plugins/user.py | 4 ++++
e8c7a2
 1 file changed, 4 insertions(+)
e8c7a2
e8c7a2
diff --git a/ipaserver/plugins/user.py b/ipaserver/plugins/user.py
e8c7a2
index 25d2bb6aa..fa8a67d3d 100644
e8c7a2
--- a/ipaserver/plugins/user.py
e8c7a2
+++ b/ipaserver/plugins/user.py
e8c7a2
@@ -56,6 +56,7 @@ from .idviews import remove_ipaobject_overrides
e8c7a2
 from ipalib.plugable import Registry
e8c7a2
 from .baseldap import (
e8c7a2
     LDAPObject,
e8c7a2
+    pkey_to_unicode,
e8c7a2
     pkey_to_value,
e8c7a2
     LDAPCreate,
e8c7a2
     LDAPSearch,
e8c7a2
@@ -701,6 +702,7 @@ class user_del(baseuser_del):
e8c7a2
     __doc__ = _('Delete a user.')
e8c7a2
 
e8c7a2
     msg_summary = _('Deleted user "%(value)s"')
e8c7a2
+    msg_summary_preserved = _('Preserved user "%(value)s"')
e8c7a2
 
e8c7a2
     takes_options = baseuser_del.takes_options + (
e8c7a2
         Bool('preserve?',
e8c7a2
@@ -831,6 +833,8 @@ class user_del(baseuser_del):
e8c7a2
                     failed.append(pkey_to_value(pkey, options))
e8c7a2
 
e8c7a2
             val = dict(result=dict(failed=failed), value=preserved)
e8c7a2
+            val['summary'] = self.msg_summary_preserved % dict(
e8c7a2
+                value=pkey_to_unicode(preserved))
e8c7a2
             return val
e8c7a2
         else:
e8c7a2
             return super(user_del, self).execute(*keys, **options)
e8c7a2
-- 
e8c7a2
2.36.1
e8c7a2
e8c7a2
From 4984ff210a169129e4e56b10e54e9c795520855c Mon Sep 17 00:00:00 2001
e8c7a2
From: Florence Blanc-Renaud <flo@redhat.com>
e8c7a2
Date: Mon, 20 Jun 2022 09:12:14 +0200
e8c7a2
Subject: [PATCH] xmlrpc tests: updated expected output for preserved user
e8c7a2
e8c7a2
Update the expected summary for the command
e8c7a2
ipa user-del --preserve
e8c7a2
e8c7a2
The command now displays: Preserved user: user1
e8c7a2
instead of                Deleted user: user1
e8c7a2
e8c7a2
Related: https://pagure.io/freeipa/issue/9187
e8c7a2
e8c7a2
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
e8c7a2
Reviewed-By: Michal Polovka <mpolovka@redhat.com>
e8c7a2
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
e8c7a2
---
e8c7a2
 ipatests/test_xmlrpc/test_stageuser_plugin.py | 5 ++++-
e8c7a2
 ipatests/test_xmlrpc/tracker/user_plugin.py   | 7 ++++++-
e8c7a2
 2 files changed, 10 insertions(+), 2 deletions(-)
e8c7a2
e8c7a2
diff --git a/ipatests/test_xmlrpc/test_stageuser_plugin.py b/ipatests/test_xmlrpc/test_stageuser_plugin.py
e8c7a2
index bc606b093..fd146876c 100644
e8c7a2
--- a/ipatests/test_xmlrpc/test_stageuser_plugin.py
e8c7a2
+++ b/ipatests/test_xmlrpc/test_stageuser_plugin.py
e8c7a2
@@ -479,11 +479,12 @@ class TestActive(XMLRPC_test):
e8c7a2
 
e8c7a2
     def test_delete_preserve(self, user):
e8c7a2
         user.ensure_exists()
e8c7a2
-        user.track_delete()
e8c7a2
+        user.track_delete(preserve=True)
e8c7a2
         command = user.make_delete_command(no_preserve=False, preserve=True)
e8c7a2
         result = command()
e8c7a2
         user.check_delete(result)
e8c7a2
 
e8c7a2
+        user.track_delete(preserve=False)
e8c7a2
         command = user.make_delete_command()
e8c7a2
         result = command()
e8c7a2
         user.check_delete(result)
e8c7a2
@@ -622,6 +623,7 @@ class TestCustomAttr(XMLRPC_test):
e8c7a2
         assert 'BusinessCat' in result['result'][u'businesscategory']
e8c7a2
 
e8c7a2
         # delete the user with --preserve
e8c7a2
+        user_customattr.track_delete(preserve=True)
e8c7a2
         command = user_customattr.make_delete_command(no_preserve=False,
e8c7a2
                                                       preserve=True)
e8c7a2
         result = command()
e8c7a2
@@ -763,6 +765,7 @@ class TestGroups(XMLRPC_test):
e8c7a2
         result = command()
e8c7a2
         group.check_retrieve(result)
e8c7a2
 
e8c7a2
+        user.track_delete(preserve=True)
e8c7a2
         command = user.make_delete_command(no_preserve=False, preserve=True)
e8c7a2
         result = command()
e8c7a2
         user.check_delete(result)
e8c7a2
diff --git a/ipatests/test_xmlrpc/tracker/user_plugin.py b/ipatests/test_xmlrpc/tracker/user_plugin.py
e8c7a2
index 03c106250..b04be4c19 100644
e8c7a2
--- a/ipatests/test_xmlrpc/tracker/user_plugin.py
e8c7a2
+++ b/ipatests/test_xmlrpc/tracker/user_plugin.py
e8c7a2
@@ -273,9 +273,14 @@ class UserTracker(CertmapdataMixin, KerberosAliasMixin, Tracker):
e8c7a2
 
e8c7a2
     def check_delete(self, result):
e8c7a2
         """ Check 'user-del' command result """
e8c7a2
+        if u'preserved' in self.attrs and self.attrs[u'preserved']:
e8c7a2
+            summary = u'Preserved user "%s"' % self.uid
e8c7a2
+        else:
e8c7a2
+            summary = u'Deleted user "%s"' % self.uid
e8c7a2
+
e8c7a2
         assert_deepequal(dict(
e8c7a2
             value=[self.uid],
e8c7a2
-            summary=u'Deleted user "%s"' % self.uid,
e8c7a2
+            summary=summary,
e8c7a2
             result=dict(failed=[]),
e8c7a2
             ), result)
e8c7a2
 
e8c7a2
-- 
e8c7a2
2.36.1
e8c7a2