ad_mu process members in chunks
Created by: balcirakpeter
- updating members in ordinary groups and groups for additional licenses was reworked.
Now it uses subroutine update_group_membership which handles categorizing members,
calling new add and remove subtroutines and updating counters.
- subroutines add_members_to_entry and remove_members_from_entry just
performe these operations in chunks of max 4999 members, logs results
for each chunk and return 0 if there was no error and 1 if at least one
chunk could not been updated.
- updating members in main licence groups had to be rewritten
differently. It is because for the all main licence groups need to be
firstly performed adding operation and after that can be performed removing operation.
It is because these groups are hooked to some external process in AD
which can be run in the middle of the update.
- In order to keep this behaviour, updating main licence groups is using
the same add and remove subroutins as before, but these subroutins were changed.
They now use subroutins which works with chunks. They then return messages
based on the result of the chunk subrtoutins. "unchanged" means that nothing changed.
"errors" mean that update process was called but there was some errors.
"changed" means that update was performed without any problems.
According to these messages are updated counters.
- All these changes were made because LDAP could not perform update with
more than 5000 changes.