[midPoint] Exception when adding second group to user in via Google connector

Jonathan Hill jhill at exclamationlabs.com
Thu Jan 30 16:09:25 CET 2020


Hey Ethan,

I noticed your metarole is missing the intent and kind in the 2nd order inducement, hopefully this helps:

<inducement id="5">
    <construction>
        <resourceRef oid="df40c130-2b46-4f5c-8db1-c8cd8e059c62" relation="org:default" type="c:ResourceType">
            <!-- google-apps -->
        </resourceRef>
        <kind>account</kind>
        <intent>default</intent>
        ...
    </construction>
    <order>2</order>
</inducement>

Good luck,
Jonathan


Jonathan Hill
Exclamation Labs
www.exclamationlabs.com <http://www.exclamationlabs.com/>

> On Jan 30, 2020, at 8:57 AM, Kromhout, Ethan A. <ethan at unc.edu> wrote:
> 
> I'm getting an set of two exceptions, when adding a second group to a user to be synced via the Google connector. In my configuration, I maintain a role for each Google group, and each of those groups have a meta-role which induces the creation of groups and then memberships as a second order inducements. Membership is configured as an association on the accountObjectClass. I'll attach configs with the details, but that's a simple description of it. Many thanks to Oleksandr Nekriach for an example on which my Google resource config is based.
> 
> The first exception which happens appears to be caused when the connector, after successfully creating the membership I want it to create, then attempts to create a group with the name of the user, since an object (user) already exists with that name in Google, Google throws a 409. The connector does not attempt to create a group with the name of the user when a first group membership is added to the user, only when adding additional group memberships. The second exception happens when midPoint tries to resolve the AlreadyExistsException in its standard way, by doing a search for existing groups with that name (again the user's name), but this results in the second exception, an UnsupportedOperationException, the search is getting the attribute __NAME__ and the connector code is designed to throw an exception as "Only EqualsFilter(['domain','customer','userKey']) and ContainsFilter('members') are supported". Ironically the value of the user __NAME__ passed in is a valid userKey, but it doesn't seem to be tagged as one, and I haven't found a way to configure what would get tagged as a userKey.
> 
> I'll put more detailed debug / traces below, but the basic difference in operations between a first group membership being added, and the second one being added are as follows:
> 
> First group addition:
> 
> User gets created if they don't exist on the resource, UID is returned to midPoint, in the below log the user is created on this first membership addition.
> MidPoint sends a update operation for the group and membership
> Group gets searched for to verify existence, for the below log, the group is found and therefore not created.
> Group membership is listed showing lack of this user in membership.
> Update operation adds membership to group.
> Group membership is listed again, showing user added.
> MidPoint updates shadow information.
> Second group addition:
> 
> User gets created if they don't exist on the resource,  in the below log the user is unchanged on second  membership addition.
> midPoint notes "Shadow exists"
> MidPoint sends a update operation for the group and membership
> Group gets searched for to verify existence, for the below log, the group is found and therefore not created.
> Group membership is listed showing lack of this user in membership.
> Update operation adds membership to group.
> Group membership is listed again, showing user added.
> MidPoint updates shadow information.
> Midpoint sends an add operation for the a group named the same as the user.
> Google returns a 409 error, duplicate, entity already exists.
> Connector throws a AlreadyExistsException
> Connector issues a search for objectClass __GROUP__ with __NAME__ set to the users name
> Connector throws second exception (UnsupportedOperationException) as __NAME__ isn't supported by the filter for groups.
> 
> 
> Thanks,
> 
> Ethan
> 
> Detailed debug / trace for first group addition:
> 
> 2020-01-29 20:17:23,718 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter): PROVISIONING ADD operation on resource resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps) <resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps)>
>  ADD object:
> shadow: (null, ShadowType)
>     intent: default
>     kind: ACCOUNT
>     objectClass: {...resource/instance-3}AccountObjectClass
>     resourceRef: oid=df40c130-2b46-4f5c-8db1-c8cd8e059c62(ResourceType)
>     attributes:
>         name: fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>
>         givenName: Fred
>         familyName: Anderson
>     association:
>       id=null
>         name: Group
>         shadowRef: oid=78a10b33-f71e-49d9-b7f7-9bc60f0d57f0(ShadowType)
>         identifiers:
>             uid: 01ci93xb1fcb9aw
>             name: its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>
>     iteration: 0
>     iterationToken:
>     credentials:
>         password:
>             value: ProtectedStringType([encrypted data])
>             metadata:
>                 createChannel: http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user <http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user>
>                 createTimestamp: 2020-01-29T20:17:23.646Z
>                 creatorRef: oid=ad43806c-6d25-42af-806e-48a2bfa0772b(UserType)('ekromhout')[default]
>     metadata:
>         requestTimestamp: 2020-01-29T20:17:23.514Z
>         requestorRef: oid=ad43806c-6d25-42af-806e-48a2bfa0772b(UserType)('ekromhout')[default]
>         createChannel: http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user <http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user>
>         createTimestamp: 2020-01-29T20:17:23.715Z
>         creatorRef: oid=ad43806c-6d25-42af-806e-48a2bfa0772b(UserType)('ekromhout')[default]
>  additional operations:
>     []
> 2020-01-29 20:17:23,721 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.api.operations.CreateApiOp): method: create msg:instance='google-apps' Enter: create(ObjectClass: __ACCOUNT__, [Attribute: {Name=__PASSWORD__, Value=[org.identityconnectors.common.security.GuardedString at 1f3ddddb]}, Attribute: {Name=__NAME__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}, Attribute: {Name=givenName, Value=[Fred]}, Attribute: {Name=familyName, Value=[Anderson]}], OperationOptions: {})
> 2020-01-29 20:17:23,721 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.CreateOp): method: create msg:instance='google-apps' Enter: create(ObjectClass: __ACCOUNT__, [Attribute: {Name=__PASSWORD__, Value=[org.identityconnectors.common.security.GuardedString at 1f3ddddb]}, Attribute: {Name=__NAME__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}, Attribute: {Name=givenName, Value=[Fred]}, Attribute: {Name=familyName, Value=[Anderson]}], OperationOptions: {})
> 2020-01-29 20:17:25,259 [] [pool-5-thread-133] TRACE (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:New User is created:106482002799746251566
> 2020-01-29 20:17:25,259 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.CreateOp): method: create msg:instance='google-apps' Return: Attribute: {Name=__UID__, Value=[106482002799746251566], Revision="enlFCt4L0-k8PoIKzRNl5h_fsrc/15rT99s7esTv4yZeGHafndfCvtM"}
> 
> 2020-01-29 20:17:25,260 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter): PROVISIONING ADD successful, returned attributes:
> {RA({.../connector/icf-1/resource-schema-3}uid):[PPV(String:106482002799746251566)],RA({.../resource/instance-3}givenName):[PPV(String:Fred)],RA({.../resource/instance-3}familyName):[PPV(String:Anderson)],RA({.../connector/icf-1/resource-schema-3}name):[PPV(String:fanderson at test.unc.edu <mailto:String:fanderson at test.unc.edu>)]}
> 2020-01-29 20:17:25,261 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter): PROVISIONING MODIFY operation on resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps) <resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps)>
>  MODIFY object, object class ENTITLEMENT:Group, identified by:
>   {
>     name: its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>
>     uid: 01ci93xb1fcb9aw
>   }
>  changes:
>   [
>     PropertyModificationOperation:
>       delta:
>         attributes/__MEMBERS__
>           ADD: fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>
>       matchingRule: {http://prism.evolveum.com/xml/ns/public/matching-rule-3 <http://prism.evolveum.com/xml/ns/public/matching-rule-3>}stringIgnoreCase
>   ]
> 2020-01-29 20:17:25,262 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.api.operations.UpdateApiOp): method: addAttributeValues msg:instance='google-apps' Enter: addAttributeValues(ObjectClass: __GROUP__, Attribute: {Name=__UID__, Value=[01ci93xb1fcb9aw], NameHint=Attribute: {Name=__NAME__, Value=[its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>]}}, [Attribute: {Name=__MEMBERS__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}], OperationOptions: {})
> 2020-01-29 20:17:25,263 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.SearchOp): method: executeQuery msg:instance='google-apps' Enter: executeQuery(ObjectClass: __GROUP__, EQUALS: Attribute: {Name=__UID__, Value=[01ci93xb1fcb9aw], NameHint=Attribute: {Name=__NAME__, Value=[its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>]}}, org.identityconnectors.framework.impl.api.local.operations.SearchImpl$1 at 7c6f9fff)
> 2020-01-29 20:17:25,270 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:executeQuery() - objectClass: ObjectClass: __GROUP__, uid: 01ci93xb1fcb9aw
> 2020-01-29 20:17:25,525 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:listAllMembers() - finished in 162 ms
> 2020-01-29 20:17:25,525 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.common.objects.ResultsHandler): method: handle msg:instance='google-apps' Enter: handle({Uid=Attribute: {Name=__UID__, Value=[01ci93xb1fcb9aw], Revision="enlFCt4L0-k8PoIKzRNl5h_fsrc/oyPTKfAMIoHkk4mhCT3-Fu4Ju_M"}, ObjectClass=ObjectClass: __GROUP__, Attributes=[Attribute: {Name=__MEMBERS__, Value=[banderson at test.unc.edu <mailto:banderson at test.unc.edu>, canderson at test.unc.edu <mailto:canderson at test.unc.edu>, kromhout at test.unc.edu <mailto:kromhout at test.unc.edu>]}, Attribute: {Name=__NAME__, Value=[its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>]}, Attribute: {Name=__UID__, Value=[01ci93xb1fcb9aw], Revision="enlFCt4L0-k8PoIKzRNl5h_fsrc/oyPTKfAMIoHkk4mhCT3-Fu4Ju_M"}], Name=Attribute: {Name=__NAME__, Value=[its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>]}})
> 2020-01-29 20:17:25,526 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.common.objects.ResultsHandler): method: handle msg:instance='google-apps' Return: false
> 2020-01-29 20:17:25,526 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:executeQuery() - finished in 256 ms
> 2020-01-29 20:17:25,526 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.SearchOp): method: executeQuery msg:instance='google-apps' Return
> 2020-01-29 20:17:25,526 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.UpdateOp): method: update msg:instance='google-apps' Enter: update(ObjectClass: __GROUP__, Attribute: {Name=__UID__, Value=[01ci93xb1fcb9aw], NameHint=Attribute: {Name=__NAME__, Value=[its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>]}}, [Attribute: {Name=__MEMBERS__, Value=[banderson at test.unc.edu <mailto:banderson at test.unc.edu>, canderson at test.unc.edu <mailto:canderson at test.unc.edu>, kromhout at test.unc.edu <mailto:kromhout at test.unc.edu>, fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}], OperationOptions: {})
> 2020-01-29 20:17:25,649 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:listAllMembers() - finished in 123 ms
> 2020-01-29 20:17:26,659 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.UpdateOp): method: update msg:instance='google-apps' Return: Attribute: {Name=__UID__, Value=[01ci93xb1fcb9aw], NameHint=Attribute: {Name=__NAME__, Value=[its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>]}}
> 2020-01-29 20:17:26,659 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.api.operations.UpdateApiOp): method: addAttributeValues msg:Return: Attribute: {Name=__UID__, Value=[01ci93xb1fcb9aw], NameHint=Attribute: {Name=__NAME__, Value=[its-ethan-test0 at test.unc.edu <mailto:its-ethan-test0 at test.unc.edu>]}}
> 2020-01-29 20:17:26,659 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter): PROVISIONING MODIFY successful, inProgress=false, side-effect changes {
> 2020-01-29 20:17:26,659 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ShadowCache): ADD shadow:null(null): resource operation executed, operation state: COMPLETED, result: status=SUCCESS: shadow:null(null)
> 2020-01-29 20:17:26,693 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ShadowCache): MODIFY shadow:bed3186d-ee5c-475b-956d-4249a223163f(fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>): repository-only modification
> 2020-01-29 20:17:26,693 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.shadowmanager.ShadowManager): Metadata not found, adding minimal metadata. Modifications:
>   [
>     synchronizationSituationDescription
>       ADD: SyncDesc(LINKED,2020-01-29T20:17:26.693Z,http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user,full <http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user,full>)
>     synchronizationTimestamp
>       REPLACE: 2020-01-29T20:17:26.693Z
>     fullSynchronizationTimestamp
>       REPLACE: 2020-01-29T20:17:26.693Z
>     synchronizationSituation
>       REPLACE: LINKED
>   ]
> 2020-01-29 20:17:43,090 [PROVISIONING] [ajp-nio-9090-exec-1] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceCache): HIT(returning clone) for resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps) <resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps)>
> Detailed debug / trace for second group addition:
> 
> 2020-01-29 20:17:59,181 [MODEL] [pool-5-thread-133] INFO (com.evolveum.midpoint.model.common.mapping.MappingImpl): Mapping trace:
> ---[ MAPPING  in outbound mapping for {.../connector/icf-1/resource-schema-3}name in resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps) <resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps)>]---------------------------
> Strength: NORMAL
> Source name:
>   old: PP({.../common/common-3}name):[PPV(PolyString:fanderson at test.unc.edu <mailto:PolyString:fanderson at test.unc.edu>)]
>   delta: null
>   new: PP({.../common/common-3}name):[PPV(PolyString:fanderson at test.unc.edu <mailto:PolyString:fanderson at test.unc.edu>)]
> Source domain:
>   old: PP({.../connector/icf-1/bundle/com.evolveum.polygon.connector-googleapps/com.evolveum.polygon.connector.googleapps.GoogleAppsConnector}domain):[PPV(String:test.unc.edu)]
>   delta: null
>   new: PP({.../connector/icf-1/bundle/com.evolveum.polygon.connector-googleapps/com.evolveum.polygon.connector.googleapps.GoogleAppsConnector}domain):[PPV(String:test.unc.edu)]
> Target: rRAD:{.../connector/icf-1/resource-schema-3}name {xsd:}string[1,1],RAM framework=__NAME__,Disp,OUT,IN:MODEL
> Expression: script: ScriptExpression( return name.toString().toLowerCase() )
> Condition: true -> true
> Result: unchanged: fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>
> ------------------------------------------------------
> 2020-01-29 20:17:59,187 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceCache): HIT(returning clone) for resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps) <resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps)>
> 2020-01-29 20:17:59,215 [PROVISIONING] [pool-5-thread-133] INFO (com.evolveum.midpoint.provisioning.impl.ShadowCache): Shadow exists:
> 2020-01-29 20:17:59,216 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter): PROVISIONING MODIFY operation on resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps) <resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps)>
>  MODIFY object, object class ENTITLEMENT:Group, identified by:
>   {
>     uid: 01tuee7443vltzf
>     name: test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>
>   }
>  changes:
>   [
>     PropertyModificationOperation:
>       delta:
>         attributes/__MEMBERS__
>           ADD: fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>
>       matchingRule: {http://prism.evolveum.com/xml/ns/public/matching-rule-3 <http://prism.evolveum.com/xml/ns/public/matching-rule-3>}stringIgnoreCase
>   ]
> 2020-01-29 20:17:59,217 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.api.operations.UpdateApiOp): method: addAttributeValues msg:instance='google-apps' Enter: addAttributeValues(ObjectClass: __GROUP__, Attribute: {Name=__UID__, Value=[01tuee7443vltzf], NameHint=Attribute: {Name=__NAME__, Value=[test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>]}}, [Attribute: {Name=__MEMBERS__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}], OperationOptions: {})
> 2020-01-29 20:17:59,217 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.SearchOp): method: executeQuery msg:instance='google-apps' Enter: executeQuery(ObjectClass: __GROUP__, EQUALS: Attribute: {Name=__UID__, Value=[01tuee7443vltzf], NameHint=Attribute: {Name=__NAME__, Value=[test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>]}}, org.identityconnectors.framework.impl.api.local.operations.SearchImpl$1 at 700e414e)
> 2020-01-29 20:17:59,217 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:executeQuery() - objectClass: ObjectClass: __GROUP__, uid: 01tuee7443vltzf
> 2020-01-29 20:17:59,447 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:listAllMembers() - finished in 129 ms
> 2020-01-29 20:17:59,447 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.common.objects.ResultsHandler): method: handle msg:instance='google-apps' Enter: handle({Uid=Attribute: {Name=__UID__, Value=[01tuee7443vltzf], Revision="enlFCt4L0-k8PoIKzRNl5h_fsrc/Eapaek_efnCBIKGBTnR_3x-UJa0"}, ObjectClass=ObjectClass: __GROUP__, Attributes=[Attribute: {Name=__MEMBERS__, Value=[banderson at test.unc.edu <mailto:banderson at test.unc.edu>, canderson at test.unc.edu <mailto:canderson at test.unc.edu>, eanderson at test.unc.edu <mailto:eanderson at test.unc.edu>, kromhout at test.unc.edu <mailto:kromhout at test.unc.edu>]}, Attribute: {Name=__NAME__, Value=[test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>]}, Attribute: {Name=__UID__, Value=[01tuee7443vltzf], Revision="enlFCt4L0-k8PoIKzRNl5h_fsrc/Eapaek_efnCBIKGBTnR_3x-UJa0"}], Name=Attribute: {Name=__NAME__, Value=[test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>]}})
> 2020-01-29 20:17:59,447 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.common.objects.ResultsHandler): method: handle msg:instance='google-apps' Return: false
> 2020-01-29 20:17:59,447 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:executeQuery() - finished in 230 ms
> 2020-01-29 20:17:59,447 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.SearchOp): method: executeQuery msg:instance='google-apps' Return
> 2020-01-29 20:17:59,447 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.UpdateOp): method: update msg:instance='google-apps' Enter: update(ObjectClass: __GROUP__, Attribute: {Name=__UID__, Value=[01tuee7443vltzf], NameHint=Attribute: {Name=__NAME__, Value=[test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>]}}, [Attribute: {Name=__MEMBERS__, Value=[banderson at test.unc.edu <mailto:banderson at test.unc.edu>, canderson at test.unc.edu <mailto:canderson at test.unc.edu>, eanderson at test.unc.edu <mailto:eanderson at test.unc.edu>, kromhout at test.unc.edu <mailto:kromhout at test.unc.edu>, fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}], OperationOptions: {})
> 2020-01-29 20:17:59,570 [] [pool-5-thread-133] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:listAllMembers() - finished in 123 ms
> 2020-01-29 20:18:00,405 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.UpdateOp): method: update msg:instance='google-apps' Return: Attribute: {Name=__UID__, Value=[01tuee7443vltzf], NameHint=Attribute: {Name=__NAME__, Value=[test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>]}}
> 2020-01-29 20:18:00,405 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.api.operations.UpdateApiOp): method: addAttributeValues msg:Return: Attribute: {Name=__UID__, Value=[01tuee7443vltzf], NameHint=Attribute: {Name=__NAME__, Value=[test-midpoint-role at test.unc.edu <mailto:test-midpoint-role at test.unc.edu>]}}
> 2020-01-29 20:18:00,405 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter): PROVISIONING MODIFY successful, inProgress=false, side-effect changes {
> }
> 2020-01-29 20:18:00,405 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ShadowCache): MODIFY shadow:bed3186d-ee5c-475b-956d-4249a223163f(fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>): resource operation executed, operation state: COMPLETED, result: status=SUCCESS: []
> 2020-01-29 20:18:00,540 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ShadowCache): MODIFY shadow:bed3186d-ee5c-475b-956d-4249a223163f(fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>): repository-only modification
> 2020-01-29 20:18:00,541 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.shadowmanager.ShadowManager): Metadata not found, adding minimal metadata. Modifications:
>   [
>     synchronizationSituationDescription
>       ADD: SyncDesc(LINKED,2020-01-29T20:18:00.540Z,http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user <http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user>)
>       DELETE: SyncDesc(LINKED,2020-01-29T20:17:26.693Z,http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user,full <http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user,full>)
>     synchronizationTimestamp
>       REPLACE: 2020-01-29T20:18:00.540Z
>     synchronizationSituation
>       REPLACE: LINKED
>   ]
> 2020-01-29 20:18:00,556 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter): PROVISIONING ADD operation on resource resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps) <resource:df40c130-2b46-4f5c-8db1-c8cd8e059c62(google-apps)>
>  ADD object:
> shadow: (null, ShadowType)
>     intent: Group
>     kind: ENTITLEMENT
>     objectClass: {...resource/instance-3}GroupObjectClass
>     resourceRef: oid=df40c130-2b46-4f5c-8db1-c8cd8e059c62(ResourceType)
>     attributes:
>         name: fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>
>     iteration: 0
>     iterationToken:
>     metadata:
>         requestTimestamp: 2020-01-29T20:17:59.014Z
>         requestorRef: oid=ad43806c-6d25-42af-806e-48a2bfa0772b(UserType)('ekromhout')[default]
>         createChannel: http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user <http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user>
>         createTimestamp: 2020-01-29T20:18:00.555Z
>         creatorRef: oid=ad43806c-6d25-42af-806e-48a2bfa0772b(UserType)('ekromhout')[default]
>  additional operations:
>     []
> 2020-01-29 20:18:00,556 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.api.operations.CreateApiOp): method: create msg:instance='google-apps' Enter: create(ObjectClass: __GROUP__, [Attribute: {Name=__NAME__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}], OperationOptions: {})
> 2020-01-29 20:18:00,556 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.CreateOp): method: create msg:instance='google-apps' Enter: create(ObjectClass: __GROUP__, [Attribute: {Name=__NAME__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}], OperationOptions: {})
> 2020-01-29 20:18:00,628 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.spi.operations.CreateOp): method: [create, instance='google-apps' Exception: ] msg:{}
> org.identityconnectors.framework.common.exceptions.AlreadyExistsException: 409 Conflict
> {
>   "code" : 409,
>   "errors" : [ {
>     "domain" : "global",
>     "message" : "Entity already exists.",
>     "reason" : "duplicate"
>   } ],
>   "message" : "Entity already exists."
> }
>         at com.evolveum.polygon.connector.googleapps.RequestResultHandler.handleDuplicate(RequestResultHandler.java:49)----
> 
> ------Skipping some stack  trace informatino-----------
> 
>  (class org.identityconnectors.framework.common.exceptions.AlreadyExistsException)
> 2020-01-29 20:18:00,629 [PROVISIONING] [pool-5-thread-133] DEBUG (com.evolveum.midpoint.provisioning.impl.ShadowCache): Handling provisioning ADD exception class com.evolveum.midpoint.util.exception.ObjectAlreadyExistsException: Object already exists on the resource: org.identityconnectors.framework.common.exceptions.AlreadyExistsException(409 Conflict?{?  "code" : 409,?  "errors" : [ {?    "domain" : "global",?    "message" : "Entity already exists.",?    "reason" : "duplicate"?  } ],?  "message" : "Entity already exists."?})->com.google.api.client.googleapis.json.GoogleJsonResponseException(409 Conflict?{?  "code" : 409,?  "errors" : [ {?    "domain" : "global",?    "message" : "Entity already exists.",?    "reason" : "duplicate"?  } ],?  "message" : "Entity already exists."?})
> 2020-01-29 20:18:00,636 [] [pool-5-thread-133] TRACE (org.identityconnectors.framework.api.operations.SearchApiOp): method: search msg:instance='google-apps' Enter: search(ObjectClass: __GROUP__, EQUALS: Attribute: {Name=__NAME__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}, (midPoint searching result handler), OperationOptions: {ALLOW_PARTIAL_ATTRIBUTE_VALUES:true,ATTRS_TO_GET:[__DESCRIPTION__,__MEMBERS__,nonEditableAliases,directMembersCount,adminCreated,aliases,__NAME__,name,__UID__,__PASSWORD__]})
> 2020-01-29 20:18:00,637 [] [Thread-161] TRACE (org.identityconnectors.framework.spi.operations.SearchOp): method: executeQuery msg:instance='google-apps' Enter: executeQuery(ObjectClass: __GROUP__, EQUALS: Attribute: {Name=__NAME__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}, org.identityconnectors.framework.impl.api.local.operations.SearchImpl$1 at 41056fb)
> 2020-01-29 20:18:00,637 [] [Thread-161] DEBUG (com.evolveum.polygon.connector.googleapps.GoogleAppsConnector): method: null msg:executeQuery() - objectClass: ObjectClass: __GROUP__, uid: null
> 2020-01-29 20:18:00,638 [] [Thread-161] TRACE (org.identityconnectors.framework.spi.operations.SearchOp): method: [executeQuery, instance='google-apps' Exception: ] msg:{}
> java.lang.UnsupportedOperationException: filter is:EQUALS: Attribute: {Name=__NAME__, Value=[fanderson at test.unc.edu <mailto:fanderson at test.unc.edu>]}Only EqualsFilter(['domain','customer','userKey']) and ContainsFilter('members') are supported
>         at com.evolveum.polygon.connector.googleapps.GroupHandler.getException(GroupHandler.java:78)
> 
> ---------Several more stack traces follow, but I don't think those details are relavent, can certainly share if helpful.-----------
> 
> 
> 
> <google-metarole.xml><google-resource.xml>_______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20200130/680a63f2/attachment.htm>


More information about the midPoint mailing list