[Freeipa-devel] [PATCH] 157 Add --delattr option to complement --setattr/--addattr
Martin Kosek
mkosek at redhat.com
Tue Nov 29 09:11:33 UTC 2011
On Mon, 2011-11-28 at 23:24 -0500, Rob Crittenden wrote:
> Martin Kosek wrote:
> > On Sat, 2011-11-05 at 13:43 +0100, Martin Kosek wrote:
> >> On Fri, 2011-11-04 at 09:23 -0400, Rob Crittenden wrote:
> >>> Martin Kosek wrote:
> >>>> Add a --delattr option to round out multi-valued attribute manipulation.
> >>>> The new option is be available for all LDAPUpdate based commands.
> >>>>
> >>>> --delattr is evaluated last, it can remove any value present either
> >>>> in --addattr/--setattr options or stored in LDAP.
> >>>>
> >>>> https://fedorahosted.org/freeipa/ticket/1929
> >>>
> >>> Should --delattr raise an error if the value doesn't exist?
> >>>
> >>> I think it probably should.
> >>>
> >>> rob
> >>
> >> You are right, it would be more expected behavior. I fixed that. In the
> >> process of implementing the change I found that current --*attr
> >> processing is not good, so I refactored it completely to one function
> >> available for all baseldap.py commands.
> >>
> >> In the process I found out that we don't have any common class for all
> >> baseldap.py commands and the result is BaseLDAPCommand which can now
> >> handle attribute processing and provide it to other LDAP commands.
> >>
> >> And I also fixed one group unit test. Now all unit tests were OK.
> >>
> >> Martin
> >
> > I rebased the patch (API.txt format was changed) and tested that it
> > still works ok.
> >
> > Martin
>
> ACK but some of the comments need to be cleaned up before pushing. It
> will also require a minor rebase in frontend.py.
>
> process_attr_options() should probably read:
>
> Process all --setattr, --addattr, and --delattr options and add the
> resulting value to the list of attributes. --setattr is processed first,
> then --addattr and finally --delattr.
>
> When --setattr is not used then the original LDAP object is looked up
> (of course, not when dn is None) and the changes are applied to old
> object values.
>
> ...
> AttrValueNotFound exception may be raised when an attribute value was
> not found either by --setattr and --addattr nor in existing LDAP object.
>
> rob
I fixed the comment, it is now much more readable. I see you improved
__convert_2_dict function (which is moved to baseldap.py in this patch)
in your update plugin framework patch. This has been properly merged.
Pushed to master.
Martin
More information about the Freeipa-devel
mailing list