From 51bd68eaf5e2b21ce79f6b848a67f88abe9f7e11 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 11 May 2012 04:00:30 -0400 Subject: Provide a better error message when deleting nonexistent attributes If --delattr is used on an attribute that's not present on an entry, and --{set,add}attr isn't being used on that same attribute, say that there's "no such attribute" instead of " does not contain ". https://fedorahosted.org/freeipa/ticket/2699 --- ipalib/plugins/baseldap.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'ipalib/plugins/baseldap.py') diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py index 7664928b..58d53fd0 100644 --- a/ipalib/plugins/baseldap.py +++ b/ipalib/plugins/baseldap.py @@ -906,6 +906,16 @@ last, after all sets and adds."""), ) except errors.NotFound: self.obj.handle_not_found(*keys) + + # Provide a nice error message when user tries to delete an + # attribute that does not exist on the entry (and user is not + # adding it) + names = set(n.lower() for n in old_entry) + del_nonexisting = delattrs - (names | setattrs | addattrs) + if del_nonexisting: + raise errors.ValidationError(name=del_nonexisting.pop(), + error=_('No such attribute on this entry')) + for attr in needldapattrs: entry_attrs[attr] = old_entry.get(attr, []) -- cgit