> On Jan 8, 2018, at 7:32 PM, Sam Ruby <ru...@intertwingly.net> wrote: > > On Mon, Jan 8, 2018 at 7:07 PM, Craig Russell <apache....@gmail.com> wrote: >> /Users/clr/apache/git/whimsy/lib/whimsy/asf/ldap.rb:260:in `modify': Object >> class violation (LDAP::ResultError) >> >> And error reporting is not great. I guess more checking is needed but Object >> class violation is not very informative. > > Oh, and AGREED! > > LDAP sucks. You want to add zero members: Object class violation. > You want to add somebody who is already a member: Object class > violation. You want to remove somebody who is not a member: Object > class violation. > > That's why the action that caused the error is logged. In this case: > > LDAP_MOD_DELETE > {"member"=>[]}> > cn=pmc-chairs,ou=groups,ou=services,dc=apache,dc=org > > Here you are deleting nobody. That apparently is not allowed.
Seems like there is some error checking that could be done in the ldap.rb code. Here is the remove code from lib/whimsy/asf/ldap.rb : # remove people from this service in LDAP def remove(people) @members = nil people = (Array(people) & members).map(&:dn) ASF::LDAP.modify(self.dn, [ASF::Base.mod_delete('member', people)]) ensure @members = nil end Who wrote this code? Would it be possible for this code to check before calling ASF::LDAP.modify that the member actually exists already? Craig > - Sam Ruby > > - Sam Ruby Craig L Russell Secretary, Apache Software Foundation c...@apache.org http://db.apache.org/jdo