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

Kromhout, Ethan A. ethan at unc.edu
Thu Jan 30 14:57:34 CET 2020


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)
 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
                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
        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)
 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}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)
    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)

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)]---------------------------
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)
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)
 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}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)
      DELETE: SyncDesc(LINKED,2020-01-29T20:17:26.693Z,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)
 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
        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.-----------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20200130/7ec01fef/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: google-metarole.xml
Type: text/xml
Size: 8611 bytes
Desc: google-metarole.xml
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20200130/7ec01fef/attachment.xml>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: google-resource.xml
Type: text/xml
Size: 59397 bytes
Desc: google-resource.xml
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20200130/7ec01fef/attachment-0001.xml>


More information about the midPoint mailing list