grouper-users - Re: [grouper-users] AD Provisioning not working on delete
Subject: Grouper Users - Open Discussion List
List archive
- From: Oliver Trieu <>
- To: Jeffrey Williams <>
- Cc: "Hyzer, Chris" <>, Grouper-Users <>
- Subject: Re: [grouper-users] AD Provisioning not working on delete
- Date: Tue, 3 Dec 2019 15:35:56 +0100
- Organization: University of Vienna
Dear Grouper Users,
To solve my problem I download the grouper source-code and attached a remote debugger to my grouper instance to see where the problem is.
Here are my findings: In the class "edu.internet2.middleware.grouper.pspng.Provisioner" the variable "selectedGroups" contains all groups selected for provisioning and on each action, before they are sent to the actual LDAP-Provisioner a check is
being made if your group is in the "selectedGroups". If it isnt in the selectedGroups you get the famous message "Ignoring work item because (deleted) group was not provisioned before it was deleted" Here is the code snippet (function filterWorkItems): if ( group.hasGroupBeenDeleted() &&
!selectedGroups.get().contains(group) ) { As you can see a deleted group will be skipped if it is not
contained in the selectedGroups set.
The function "processAnyChangesInGroupSelection" is used to update this group-cache in the "selectedGroups". However this method is not called when a new group is created, even if it should be in the "selectedGroups" (because it is actually provisioned as you can see in my log snippets from my previous message). I dont see any check for this in the code.
The function "provisionItem" will check for this: if (
workItem.matchesChangelogType(ChangelogHandlingConfig.changelogTypesThatAreHandledIncrementally)
) { Incremental handling is used for the following types: ChangeLogTypeBuiltin.GROUP_ADD, So Group-Add and Group-Delete will only trigger an incremental sync not updating the seletedGroups cache (which thus does not yet contain our newly created or deleted group...).
I also found out why it sometimes works! If you alter any attribute the cache is rebuilt. Also a restart will rebuild the cache and then the delete will work too. The following change log types will trigger a rebuild of the selectedGroups Set: ChangeLogTypeBuiltin.ATTRIBUTE_ASSIGN_ADD,
How is that supposed to work or am i missing an important point here?
Kind Regards
Oliver
On 10/24/19 3:08 AM, Jeffrey Williams
wrote:
Hi Oliver,
That is all good information you've provided, including
that it is not consistently having the issue. I'm still
looking at your logs and wanted to ask about the URL that
Grouper uses to point to AD. If it's not pointed to a single
DC or a pool that balanced active/standby, can you point it to
a single DC and see if the error continues?
I don't believe that this will resolve the issue, I wanted
to make a side note:
Searching by CN and objectClass is fine if you're provisioning
flat and CN: ${group.name}. However, I would not
use CN=${group.extension} to search a bushy OU structure.
Bushy OU's can hold multiple groups with the same name
extension as their CN. In those cases, this will cause your
queries to return multiple objects, which neither PSPNG nor
you will like :). For bushy provisioning in AD, I've found
using gidNumber=${group.idIndex} works well because it's not
influenced by the end user and won't cause AD to create a new
AD object when all that was required was to update the name of
the old one. You can also use DN, but be warned that AD will
create a new object each time the group extension or its
location(i.e. its DN) changes.
On Wed, Oct 23, 2019 at 5:40
AM Oliver Trieu <>
wrote:
Hi Jeffrey,
thank you for your time, of course i can. I created a new Group using the grouper-gui (GROUP2). I waited until it was provisioned to AD and then deleted it in grouper. The attached log file shows the creation and deletion of the group (not_working.txt).
I should add that oddly enough on my first try it actually worked! It seems to be kind of random as i did the exact same thing (created group, waited for provisioning, then deleted). I also attached this logfile (worked_strange.txt). I did not change any settings between these tries...
Kind Regards
Oliver
On 10/22/19 11:41 PM, Jeffrey Williams wrote:
-- Oliver Trieu Managed Services Server and Data Management Universität Wien Zentraler Informatikdienst Universitätsstrasse 7, 1010 Wien T +43-1-4277-14161 M: +43-664-60277-14161 zid.univie.ac.at Jeffrey Williams
Identity Engineer
Identity & Access Services https://its.uncg.edu -- Oliver Trieu Managed Services Server and Data Management Universität Wien Zentraler Informatikdienst Universitätsstrasse 7, 1010 Wien T +43-1-4277-14161 M: +43-664-60277-14161 zid.univie.ac.at |
- Re: [grouper-users] AD Provisioning not working on delete, Oliver Trieu, 12/03/2019
- Re: [grouper-users] AD Provisioning not working on delete, Jeffrey Williams, 12/10/2019
Archive powered by MHonArc 2.6.19.