lithnet / googleapps-managementagent Goto Github PK
View Code? Open in Web Editor NEWGoogle Workspace Management Agent for MIM 2016
License: MIT License
Google Workspace Management Agent for MIM 2016
License: MIT License
Trusting you're fine.
I would like to double check with you that it is ok to remove following deprecated API - https://apps-apis.google.com/a/feeds/emailsettings/2.0/ (as per this article: https://gsuiteupdates.googleblog.com/2018/10/email-settings-api-shutdown.html) from Client Access API's. It appears that GoogleApps MA works just fine without it but wanted to check with you before implementing that change in the production environment. Can you think of any functionalities that may not be working properly without this API please?
Kind regards,
Lukasz
Hi @ryannewington,
during implementation of complex group members logic we faced a problem with sending users as externalMember to Google.
We get an error saying "The value [email protected] cannot be exported as externalMember as it is a known internal domain. It should be exported as Member". The error is completely clear, however we have multiple cases that we do not want to create user object in Google, but we want to include this user as externalMember to allow him to receive messages. From Google point of view it is doable since we are able to add such member through API using a script, so I suppose that there is a validation in MA which prevents such cases.
Is there any option to modify this behaviour and skip this check?
King regards,
Michal
Trying to export with a large change in external members..
Getting the error
at Google.Apis.Requests.BatchRequest.Queue[TResponse](IClientServiceRequest request, OnResponse
1 callback) in C:\Users\cloudsharp\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis\Apis\Requests\BatchRequest.cs:line 147 at Lithnet.GoogleApps.GroupMemberRequestFactory.RemoveMembers(String id, IList
1 members, Boolean throwOnMissingMember)
at Lithnet.GoogleApps.MA.ApiInterfaceGroupMembership.ApplyChanges(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroupMembership.cs:line 33
at Lithnet.GoogleApps.MA.ApiInterfaceGroup.ApplyChanges(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroup.cs:line 120
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeUpdate(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 144
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 65
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 16
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass33_0.b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 136
An exception has occurred in b__0
Type: System.InvalidOperationException
Message: A batch request cannot contain more than 1000 single requests
Source: Google.Apis
TargetSite: Void Queue[TResponse](Google.Apis.Requests.IClientServiceRequest, OnResponse1) StackTrace: at Google.Apis.Requests.BatchRequest.Queue[TResponse](IClientServiceRequest request, OnResponse
1 callback) in C:\Users\cloudsharp\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis\Apis\Requests\BatchRequest.cs:line 147
at Lithnet.GoogleApps.GroupMemberRequestFactory.RemoveMembers(String id, IList`1 members, Boolean throwOnMissingMember)
at Lithnet.GoogleApps.MA.ApiInterfaceGroupMembership.ApplyChanges(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroupMembership.cs:line 33
at Lithnet.GoogleApps.MA.ApiInterfaceGroup.ApplyChanges(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroup.cs:line 120
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeUpdate(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 144
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 65
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 16
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass33_0.b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 136
23/11/2016 6:50:51 AM: Starting export Update for contact:[email protected]
23/11/2016 6:50:51 AM: Performing FULL update operation for contact:[email protected]
23/11/2016 6:50:52 AM: Updating phones_work ->
23/11/2016 6:50:52 AM: An unexpected error occurred while processing contact:[email protected]
An exception has occurred in b__0
Type: Google.GData.Client.GDataRequestException
Message: Execution of request failed: https://www.google.com/m8/feeds/contacts/ga-staff-dev.monash.edu/full/1c739e8d8bfe7596
Source: Google.GData.Client
TargetSite: Void Execute()
StackTrace:
at Google.GData.Client.GDataRequest.Execute()
at Google.GData.Client.Service.EntrySend(Uri feedUri, AtomBase baseEntry, GDataRequestType type, AsyncSendData data)
at Google.GData.Client.Service.Update[TEntry](TEntry entry)
at Lithnet.GoogleApps.ContactRequestFactory.Update(ContactEntry c)
at Lithnet.GoogleApps.MA.ApiInterfaceContact.ApplyChanges(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceContact.cs:line 106
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeUpdate(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 140
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 61
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 16
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass34_0.b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 148
Inner exception details
Type: System.Net.WebException
Status: ProtocolError
Message: The remote server returned an error: (400) Bad Request.
Source: System
TargetSite: System.Net.WebResponse GetResponse()
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
at Google.GData.Client.GDataRequest.Execute()
23/11/2016 6:50:52 AM: Closing export connection: Normal
23/11/2016 6:50:52 AM: Writing 0 delta entries to file
In the log the phone_work is being written out as < null > (ignore spacing) but for a user it goes out as #null# <-- Don't know if that makes a difference.
Saying that < null > of a shared contact department works.
The MA currently requests permissions needed for all object classes, even if those are not needed.
I just noticed a pre-release has appeared - but it's version 1.0.7139 - aren't we on v2 now?
https://github.com/lithnet/googleapps-managementagent/releases/tag/v1.0.7139
Error on exporting to Google.. suspect is the maxMessageBytes attribute which is of type integer and trying to put the value "26214400"
****************************************
An exception has occurred in <PutExportEntries>b__0
Type: System.ArgumentException
Message: Object of type 'System.Int64' cannot be converted to type 'System.Nullable`1[System.Int32]'.
Source: mscorlib
TargetSite: System.Object TryChangeType(System.Object, System.Reflection.Binder, System.Globalization.CultureInfo, Boolean)
StackTrace:
at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast)
at System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig)
at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
at Lithnet.GoogleApps.MA.AdapterPropertyValue.UpdateField(CSEntryChange csentry, Object obj) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\AttributeAdapters\AdapterPropertyValue.cs:line 83
at Lithnet.GoogleApps.MA.ApiInterfaceGroupSettings.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroupSettings.cs:line 34
at Lithnet.GoogleApps.MA.ApiInterfaceGroup.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroup.cs:line 115
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeAdd(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 107
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 64
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 21
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass38_0.<PutExportEntries>b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 149
****************************************
Hi Ryan,
The attribute "maxMessageBytes" is deprecated, Can you please help to remove the reference.
Now google not accepting any change to this attribute.
Thanks,
Manju
Hello,
could you help me to understand why domain shared contacts are not provisioned on google as expected?
I'm only able to create it as below:
http://www.google.com/m8/feeds/contacts/test.fcagroup.com/base/5d4adfc70b7f3c80 2020-02-05T09:01:33.666Z <title type='text'>antani</title>As you can see I can't get email address element.
Even if I try to mapping attributes, I can only see "gd:extendedProperty" and "title".
Could you suggest me what is the correct mapping on GoogleMA?
Thanks
Delta file is not containing entry for when a feature is added (not tested with other new object classes yet).. Delete does show up in delta file.
Have to full import to confirm..
Role is not dropped from manager to member
Full Import confirms member is missing and adds it again.. But until then the member is missing from the group.
Delta import XML does not have any indication that member was also deleted. Just the manager
The API has changed (again) and now when a member delete occurs during the same operation as the delete of a resource, the following error appears in the sync engine, and is not ignored by the MA.
Google.Apis.Requests.RequestError Resource Not Found: 548280772221 [404] Errors [ Message[Resource Not Found: 548280772221] Location[ - ] Reason[notFound] Domain[global] ] Failed DeleteRequest: [email protected] Group: [email protected]
Hello,
we got some errors on import on last days, so we tried to re-create the MA from scratch and we get "unable to retrieve schema" issue. In the event viewer we can see the following:
The extensible extension returned an unsupported error.
The stack trace is:
"System.ArrayTypeMismatchException: Attempted to access an element as a type incompatible with the array.
at System.Collections.Generic.List1.Add(T item) at Lithnet.GoogleApps.GoogleJsonSerializer..ctor() at Lithnet.GoogleApps.SchemaRequestFactory.<>c__DisplayClass1_0.<.ctor>b__0() at Lithnet.GoogleApps.Pool
1.CreateAndAddItem()
at Lithnet.GoogleApps.Pool1.Take() at Lithnet.GoogleApps.BaseClientServicePool
1.Take(NullValueHandling nullValueHandling)
at Lithnet.GoogleApps.SchemaRequestFactory.ListSchemas(String customerID)
at Lithnet.GoogleApps.MA.SchemaBuilderUsers.AddUserCustomSchema(MASchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilderUsers.cs:line 846
at Lithnet.GoogleApps.MA.SchemaBuilderUsers.BuildBaseSchema(MASchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilderUsers.cs:line 338
at Lithnet.GoogleApps.MA.SchemaBuilderUsers.d__2.MoveNext() in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilderUsers.cs:line 27
at Lithnet.GoogleApps.MA.SchemaBuilder.GetSchema(IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilder.cs:line 25
at Lithnet.GoogleApps.MA.ManagementAgent.GetSchema(KeyedCollection`2 configParameters) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 483
Forefront Identity Manager 4.4.1302.0"
Error when exporting a user for add
at Google.Apis.Requests.ClientServiceRequest
1.Execute() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis\Apis\Requests\ClientServiceRequest.cs:line 102 at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest
1 request, Int32 retryAttemps)
at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest`1 request)
at Lithnet.GoogleApps.UserRequestFactory.Add(User item)
at Lithnet.GoogleApps.MA.ApiInterfaceUser.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceUser.cs:line 95
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeAdd(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 107
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 64
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 21
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass38_0.b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 149
Hi Ryan,
I know that there is a pre-release version of the MA that resolves the export hanging error. However, I don't feel comfortable with installing the pre-release. Could you provide me with a patch for just that issue? Or perhaps the next release is coming soon?
Error while exporting a user on add.. Not always the case for all exports
at Google.Apis.Requests.ClientServiceRequest
1.Execute() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis\Apis\Requests\ClientServiceRequest.cs:line 102 at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest
1 request, Int32 retryAttemps)
at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest`1 request)
at Lithnet.GoogleApps.UserRequestFactory.Add(User item)
at Lithnet.GoogleApps.MA.ApiInterfaceUser.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceUser.cs:line 95
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeAdd(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 107
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 64
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 21
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass38_0.b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 149
If I'm reading your instructions correctly, I should be able to add more than one type per box on the Schema tab of the MA. The instructions say to add one per line. How to you get another line? If I press the ENTER key after typing one entry in a box, it selects the OK box and goes to another tab. Am I missing something?
Hi,
I want to use this Google Apps MA in my project for provisioning the data from FIM to Google. My Google instance have suctom schema defined with some set of custom attributes and i want to provision these attribute values of an user from FIM to Google.
Can i achieve this from this Google MA? Could you let me know the procedure.
Thanks
Prasanthi.
Email : [email protected]
Using v2 of the MA and when adding Addresses and Relations fixed types to the Schema 1 tab they aren't available to use in attribute flows for Contacts. They show up in the Select Attributes tab and can be used for User attribute flows, just not Contacts. Any ideas why?
I can't seem to wrap my head around how to do this. I have users importing/exporting correctly. Now I want to make sure all my staff are automatically added to the classroom_teachers group. I've imported the group from Google to the MV but can't figure out how to add the users to the group. All my staff have an attribute in the metaverse (employeeType=Staff).
Do I need to add code in the extension dll while processing the group object or while processing the staff user object?
I'm pretty sure the code needed is something like:
csentry("members").values.add("[email protected]")
I just don't know where to put it.
I'm using this MA (1.1.6520.18856) with MIM 2016 SP1 (4.4.1749.0) and am trying to move users between OUs.
I can provision new users successfully without issue into an OU called "/MIMManagedAccounts/NoGmail", however if I have a sync-rule that is triggered which changes the OrgUnitPath value for a user to another OU that exists, in this case "/MIMManagedAccounts/MigrationState_Z", MIM attempts to export the update but the account does not move and remains in the original OU. A full import sees the failed export and reports that as an error.
I have tried various things, like removing the leading "/" (producing a rule violation) or adding a trailing "/" (no change) to the path value, I've also tried different text combination in case it was the "_" that was the issue, and removing that doesn't help either. In fact I don't seem to be able to get an account to ever move OU.
If I move an account manually and then do a full import the change is reported correctly.
Does this MA support changing the OU? We can do this with GAM of course and I have a script running elsewhere to do that for a different project, but I'd much rather do this with this excellent MA and MIM if I can.
My MA is running in a seperate process
I have a "work" schema addition for "Organizations" and "Email"
Only "user" object types are imported via this particularl MA
I have the following attributes selected in the MA:
Here's the export xml:
<delta operation="update" dn="zz99345@xxxxxxxxxxxx">
<anchor encoding="base64">LAAAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXAAAA</anchor>
<primary-objectclass>user</primary-objectclass>
<objectclass>
<oc-value>user</oc-value>
</objectclass>
<attr name="orgUnitPath" operation="update" type="string" multivalued="false">
<value operation="add">/MIMManagedAccounts/MigrationState_Z</value>
<value operation="delete">/MIMManagedAccounts/NoGmail</value>
</attr>
</delta>
Here's the full import xml:
<delta operation="add" dn="zz99345@xxxxxxxxxxxx">
<anchor encoding="base64">LAAAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXAAAA</anchor>
<primary-objectclass>user</primary-objectclass>
<objectclass>
<oc-value>user</oc-value>
</objectclass>
<attr name="creationTime" type="string" multivalued="false">
<value>2018-03-13T15:47:43.000</value>
</attr>
<attr name="id" type="string" multivalued="false">
<value>115061404213916952048</value>
</attr>
<attr name="includeInGlobalAddressList" type="boolean" multivalued="false">
<value>false</value>
</attr>
<attr name="isMailboxSetup" type="boolean" multivalued="false">
<value>false</value>
</attr>
<attr name="name_familyName" type="string" multivalued="false">
<value>Zoomer</value>
</attr>
<attr name="name_givenName" type="string" multivalued="false">
<value>Zoe</value>
</attr>
<attr name="nonEditableAliases" type="string" multivalued="true">
<value>zz99345@yyyyyyyyyyyy</value>
<value>zz99345@zzzzzzzzzzzz</value>
</attr>
<attr name="orgUnitPath" type="string" multivalued="false">
<value>/MIMManagedAccounts/NoGmail</value>
</attr>
<attr name="primaryEmail" type="string" multivalued="false">
<value>zz99345@xxxxxxxxxxxx</value>
</attr>
<attr name="suspended" type="boolean" multivalued="false">
<value>false</value>
</attr>
</delta>
A screenshot of the pending export:
A screenshot of the finished export:
The CS object after a full import:
Steps to reproduce:
I only had Users selected in the object type window and was not able to do a full sync. I then selected all of the object types except for domain and still a full sync would fail. Once I selected all of the object types, the full sync worked fine.
-Todd F.
Since the last week I'm unable to create MA as it returns 'Unable to retrieve schema. Error: Exception from HRESULT: 0x80231343'
This is the error from EventLog:
The extensible extension returned an unsupported error.
The stack trace is:
"Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Error:"unauthorized_client", Description:"Client is unauthorized to retrieve access tokens using this method.", Uri:""
at Google.Apis.Requests.ClientServiceRequest1.Execute() in C:\Apiary\v1.25\Src\Support\GoogleApis\Apis\Requests\ClientServiceRequest.cs:line 101 at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest
1 request, Int32 retryAttempts)
at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest1 request) at Lithnet.GoogleApps.SchemaRequestFactory.HasSchema(String customerID, String schemaName) at Lithnet.GoogleApps.MA.SchemaBuilder.GetSchema(IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilder.cs:line 31 at Lithnet.GoogleApps.MA.ManagementAgent.GetSchema(KeyedCollection
2 configParameters) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 405
Forefront Identity Manager 4.4.1642.0"
I've tried with two different instances of GSuite and MIM with no luck. It used to work without issues earlier, please assist.
Hi Ryan,
I am trying to fire up the MA and have followed - hopefully correctly - your instructions on creating the service account etc. but I am getting the error "Unable to retrieve schema". What I am not able to tell though is whether the problem is with my service account creation, firewall from within my organization or something else.
I realize this is rather vague, but I was wondering if you would have any connectivity/authentication troubleshooting tips you could share? For example, is there any way to validate the Google configuration is correct, or the communication with Google is working correctly?
Thanks,
Andy
After latest build v1.1.6089 on an export nothing is written to the log file. On import logs are being written.
28/02/2018 8:19:30 AM: Starting export Add for [email protected]
28/02/2018 8:19:30 AM: Updating buildingName -> FIM Building
28/02/2018 8:19:30 AM: Updating description -> Building Description
28/02/2018 8:19:30 AM: Updating floorNames -> System.Collections.Generic.List`1[System.String]
28/02/2018 8:19:30 AM: Updating coordinates_latitude -> REDACTED
28/02/2018 8:19:30 AM: Updating coordinates_longitude -> REDACTED
As you can see the floorNames is showing code instead of value.. the current value is being written as string to output
<attribute-change>
<name>floorNames</name>
<modification-type>Add</modification-type>
<data-type>String</data-type>
<value-changes>
<value-change>
<modification-type>Add</modification-type>
<value>G,1,2</value>
</value-change>
</value-changes>
</attribute-change>
Hello,
as per subject, seems that the run profile "Delta Import" doesn't work.
It starts, it lasts 1 second and no change are imported (even if change are made on Google side).
Are you aware about this issue? I got this behavior in two different environment, test and prod.
Thanks.
Event viewer log
Also during this export nothing was written to ma-operations.log but export did happen and group got created
ECMA2 MA export run caused an error.
Error Name: Specified cast is not valid.
Error Detail: at Lithnet.GoogleApps.MA.SchemaBuilder.<>c.b__13_2(Object value) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilder.cs:line 1307
at Lithnet.GoogleApps.MA.AdapterPropertyValue.UpdateField(CSEntryChange csentry, Object obj) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\AttributeAdapters\AdapterPropertyValue.cs:line 80
at Lithnet.GoogleApps.MA.ApiInterfaceGroupSettings.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroupSettings.cs:line 30
at Lithnet.GoogleApps.MA.ApiInterfaceGroup.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroup.cs:line 117
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeAdd(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 102
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 59
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 16
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass33_0.b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 136
If we create a group with an explicit member in it during creation, it fails to export to google. The group itself is created and on the next sync it joins up and exports the member fine.
If we create the same group without any member it exports fine. Adding the same explicit member after initial export to the group also works.
Error: The group member update operation failed.
*******************************************************************************
5/09/2016 7:37:08 AM: Opening export connection
-------------------------------------------------------------------------------
5/09/2016 7:37:18 AM: Starting export Add for user XXXXXXXXXXXXXXXXXXXXXXXX
5/09/2016 7:37:18 AM: Updating description -> distgroup
5/09/2016 7:37:18 AM: Updating name -> distgroup
5/09/2016 7:37:20 AM: An unexpected error occurred while processing XXXXXXXXXXXXXX
****************************************
An exception has occurred in <PutExportEntries>b__0
Type: Lithnet.GoogleApps.AggregateGroupUpdateException
Message: The group member update operation failed. Group ID XXXXXXXXXXXXXXXXXX
Source: Lithnet.GoogleApps
TargetSite: Void AddMembers(System.String, System.Collections.Generic.IList`1[Google.Apis.Admin.Directory.directory_v1.Data.Member], Boolean)
StackTrace:
at Lithnet.GoogleApps.GroupMemberRequestFactory.AddMembers(String id, IList`1 members, Boolean throwOnExistingMember)
at Lithnet.GoogleApps.MA.ApiInterfaceGroupMembership.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroupMembership.cs:line 108
at Lithnet.GoogleApps.MA.ApiInterfaceGroup.ApplyChanges(CSEntryChange csentry, SchemaType type, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroup.cs:line 117
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeAdd(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 102
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 59
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 16
at Lithnet.GoogleApps.MA.ManagementAgent.<>c__DisplayClass33_0.<PutExportEntries>b__0(CSEntryChange csentry) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 136
****************************************
-------------------------------------------------------------------------------
5/09/2016 7:37:20 AM: Closing export connection: Normal
5/09/2016 7:37:20 AM: Writing 0 delta entries to file
*******************************************************************************
Recently due to the security requirements we've configured the MIM server to use TLS 1.2 protocol. After applying the above, the MA is unable to connect to GSuite with the following error:
_The extensible extension returned an unsupported error.
The stack trace is:
"System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm
at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule, String package, CredentialUse intent, SecureCredential scc)
at System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential& secureCredential)
at System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint)
at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output)
at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback asyncCallback, Object asyncState)
at System.Net.ConnectStream.WriteHeaders(Boolean async)_
I'm using the following MA build - #26
Appreciate if you could look into this issue and if possible add code to allow enforcement of security protocol use.
Kind regards,
Lukasz
Hello,
I'm trying to sync to google groups and membership from an On-premises Active Directory.
Users are already created on Google and I need to provision new groups with fim and then add membership.
I'm able to create correctly new groups and add members that are already on Google but I'm not able to add external members (not of the domain defined on google tenant) defined on On-premises groups.
Could you suggest me how to distinguish membership type?
We upgraded our test environment today to v2 and we can't figure out how to see our schema's custom user attributes. We've read, and tried following the instructions on the "Custom schema" section of the Installation documentation but just aren't clear what we're doing wrong. We have four custom user attributes like this:
xxGoogleUser_xxeid
xxGoogleUser_xxEmail
xxGoogleUser_xxHierarchy
xxGoogleUser_xxcloudEA8
that we can no longer see on the select attributes screen. I hate asking a question like this but is it possible for someone to describe exactly how we get those attributes back? What exactly do we enter on the schema tab of the MA? And did we now have to create a new user object type LithnetGoogleAppsMA with a Text attribute called objectType? If so, can you describe what that does and how this works so we can understand it better? If no time for that, just any tips on troubleshooting or getting this working is much appreciated. Thanks so much for all the work on this. It's been working great for us.
Hello, do you know if is it possible to export photos to Gsuite? I saw that from the google schema I can get attributes thumbnailphotoetag and thumbnailphotourl but are string type and the photo attribute of the person is binary type.
Thank you.
It will be extremely helpful as GAM doesn't have good capabilities to get a calendar resource and its ACL together among other things (bulk print of all attributes etc...)
Error
21/09/2016 9:21:30 AM: Starting export Update for [email protected]
21/09/2016 9:21:30 AM: Performing FULL update operation for [email protected]
An exception has occurred in PutCSEntryChange
Type: Google.GoogleApiException
Message: Google.Apis.Requests.RequestError
Member already exists. [409]
Errors [
Message[Member already exists.] Location[ - ] Reason[duplicate] Domain[global]
]
Failed member add: [email protected]
Group: [email protected]
Source: Lithnet.GoogleApps
TargetSite: Void AddMembers(System.String, System.Collections.Generic.IList1[Google.Apis.Admin.Directory.directory_v1.Data.Member], Boolean) StackTrace: at Lithnet.GoogleApps.GroupMemberRequestFactory.AddMembers(String id, IList
1 members, Boolean throwOnExistingMember)
at Lithnet.GoogleApps.MA.ApiInterfaceGroupMembership.ApplyChanges(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroupMembership.cs:line 78
at Lithnet.GoogleApps.MA.ApiInterfaceGroup.ApplyChanges(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config, Object& target, Boolean patch) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceGroup.cs:line 120
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeUpdate(CSEntryChange csentry, CSEntryChange deltaCSEntry, MASchemaType maType, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 144
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChangeObject(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 65
at Lithnet.GoogleApps.MA.ExportProcessor.PutCSEntryChange(CSEntryChange csentry, SchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ExportProcessor.cs:line 16
21/09/2016 9:21:32 AM: Closing export connection: Normal
21/09/2016 9:21:32 AM: Writing 0 delta entries to file
Don't want to bother you with another one of these errors but your help on others' issues like this have been helpful to me. So maybe this will also help others.
I've got this working on our dev and production servers but on our test server I can't get past the Schema 1 screen when creating the MA.
It seems to be an SSL/TLS issue but I can't figure out, or find, an answer. The registry settings for SCHANNEL Ciphers and Protocols are the same on all three servers.
So I thought I'd ask you here after much gnashing of teeth and running out of other ideas. Just to see if you have any thoughts on where to look next for a solution. Thanks for any help.
The event log error is this:
The extensible extension returned an unsupported error.
The stack trace is:
"System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)
at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at Google.Apis.Http.ConfigurableMessageHandler.d__59.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Apis.Auth.OAuth2.Requests.TokenRequestExtenstions.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Apis.Auth.OAuth2.ServiceAccountCredential.d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Apis.Auth.OAuth2.ServiceCredential.d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Apis.Auth.OAuth2.ServiceAccountCredential.d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Apis.Auth.OAuth2.ServiceCredential.d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Apis.Http.ConfigurableMessageHandler.d__59.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Apis.Requests.ClientServiceRequest1.<ExecuteUnparsedAsync>d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Google.Apis.Requests.ClientServiceRequest
1.Execute()
at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest1 request, Int32 retryAttempts) at Lithnet.GoogleApps.ApiExtensions.ExecuteWithBackoff[T](ClientServiceRequest
1 request)
at Lithnet.GoogleApps.SchemaRequestFactory.ListSchemas(String customerID)
at Lithnet.GoogleApps.MA.SchemaBuilder.AddUserCustomSchema(MASchemaType type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilder.cs:line 2474
at Lithnet.GoogleApps.MA.SchemaBuilder.GetUserSchema(IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilder.cs:line 1293
at Lithnet.GoogleApps.MA.SchemaBuilder.GetSchema(String type, IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilder.cs:line 51
at Lithnet.GoogleApps.MA.SchemaBuilder.GetSchema(IManagementAgentParameters config) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\Schema\SchemaBuilder.cs:line 27
at Lithnet.GoogleApps.MA.ManagementAgent.GetSchema(KeyedCollection`2 configParameters) in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ManagementAgent.cs:line 405
Forefront Identity Manager 4.1.3766.0"
The RateLimit configuration item ("rate-limit") does not seem to be used in v2.0.6954 when creating the buckets.
(E.g. DirectoryApiElement.RateLimit)
This leads to default rate limits being used, and not configurable.
Could you please check?
It looks like if we do a new update of Google MA Binaries on sync server, it wipes existing log file and creates a new one instead of append.
Hi @ryannewington,
I am trying to verify if it would be possible to manage some additional attributes for group managers in Google. I am thinking about delivery settings attribute which seems to be tied to a specific instance of manager in a group, and not to group or user only.
Here is the API method: https://developers.google.com/admin-sdk/directory/v1/reference/members/update
Is it possible to handle this using Google Apps MA?
Michał
The following attributes have been added to the google group settings API, and should be added to the management agent
Operation works fine but changes (Add/update/delete) not recorded in log
21/03/2018 3:16:51 PM: Starting export Update for [email protected]
21/03/2018 3:16:51 PM: Performing FULL update operation for [email protected]
Not sure what this is - Google Bug or MA
Any change to OrgUnit Path is not being reported in the MA DI and always comes in as a delete and it is going in a loop. The actual change requested has been done on google side. GAM and Google GUI is also reporting it as the new OrgUnitPath
So GAM is reporting correct on API call but MA isin't.. Google GUI also showing correct information
Example: Changed orgunitpath to /AdditionalServices for "c-googleorgunit"
GAM : Google Org Unit Path: /AdditionalServices
After EALL to Google, the Delta File reports for OrgUnitPath as
<attribute-changes>
<attribute-change>
<name>orgUnitPath</name>
<modification-type>Delete</modification-type>
<data-type>String</data-type>
<value-changes />
</attribute-change>
Fiddler RAW Data
PUT /admin/directory/v1/users/xxxxxxxxxxxxxxxx HTTP/1.1
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Sun, 10 Sep 2017 23:46:36 GMT
Vary: X-Origin
Content-Type: application/json; charset=UTF-8
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alt-Svc: quic=":443"; ma=2592000; v="39,38,37,35"
Accept-Ranges: none
Vary: Origin,Accept-Encoding
Content-Length: 1003{
"kind": "admin#directory#user",
"id": "XXXXXXXXXXXXXXXXXX",
"etag": ""XXXXXXXXXXXXXXXXXXXXX"",
"primaryEmail": "c-googleorgunit@XXXXXXXXXX",
"name": {
"givenName": "Test",
"familyName": "OrgUnit",
"fullName": "Test OrgUnit"
},
"isAdmin": false,
"isDelegatedAdmin": false,
"lastLoginTime": "1970-01-01T00:00:00.000Z",
"creationTime": "2017-09-10T23:14:50.000Z",
"agreedToTerms": true,
"suspended": false,
"changePasswordAtNextLogin": false,
"ipWhitelisted": false,
"emails": [
{
"address": "c-googleorgunit@XXXXXXX",
"primary": true
}
],
"externalIds": [
{
"value": "XXXXXXXXXXXXXXXXXX",
"type": "custom",
"customType": "XXXXXX"
}
],
"organizations": [
{
"primary": true,
"type": "work",
"customType": "",
"department": "XXXXXXXXXXXX"
}
],
"customerId": "XXXXXXXXXXXXXXXXXXX",
"isMailboxSetup": true,
"includeInGlobalAddressList": false
}
Hi Ryan,
We found as issue with FI which had a successful run, but It deleted the contacts from connectorspace. There was an exception with Full import for contacts when this happened.
DLL Version : 2.0.6954
Exception :
****************************************
****************************************
Inner exception details
Type: Google.GData.Client.GDataRequestException
Message: Execution of request failed: https://www.google.com/m8/feeds/contacts/ga-staff-staging.monash.edu/full?start-index=5001&max-results=1000
Source: Google.GData.Client
TargetSite: Void Execute()
StackTrace:
at Google.GData.Client.GDataRequest.Execute()
at Google.GData.Client.Service.Query(Uri queryUri, DateTime ifModifiedSince, String etag, Int64& contentLength)
at Google.GData.Client.Service.Query(FeedQuery feedQuery)
at Google.GData.Contacts.ContactsService.Query(ContactsQuery feedQuery)
at Lithnet.GoogleApps.ContactRequestFactory.<>c__DisplayClass3_1.<GetContacts>b__0()
at Lithnet.GoogleApps.ApiExtensions.InvokeWithRateLimit[T](Func`1 t, String bucketName, Int32 consumeTokens)
at Lithnet.GoogleApps.ContactRequestFactory.<GetContacts>d__3.MoveNext()
at Lithnet.GoogleApps.MA.ApiInterfaceContact.<>c__DisplayClass21_0.<GetObjectImportTask>b__0() in D:\github\lithnet\googleapps-managementagent\src\Lithnet.GoogleApps.MA\ApiInterfaces\ApiInterfaceContact.cs:line 200
at System.Threading.Tasks.Task.Execute()
****************************************
****************************************
Inner exception details
Type: System.Net.WebException
Status: ProtocolError
Message: The remote server returned an error: (500) Internal Server Error.
Source: System
TargetSite: System.Net.WebResponse GetResponse()
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
at Google.GData.Client.GDataRequest.Execute()
****************************************
Thanks,
Manju
Not sure if this is a MA bug.
Scenario
But on Delta Import we get "exported-change-not-reimported" as it thinks we still need to delete mail alias
delta XML
<?xml version="1.0" encoding="utf-8"?>
<cs-entry-changes>
<object-change>
<modification-type>Update</modification-type>
<dn>[email protected]</dn>
<object-class>group</object-class>
<anchor-attributes>
<anchor-attribute>
<name>id</name>
<value>03o7alnk0xktbdz</value>
</anchor-attribute>
</anchor-attributes>
<attribute-changes>
<attribute-change>
<name>description</name>
<modification-type>Replace</modification-type>
<data-type>String</data-type>
<value-changes>
<value-change>
<modification-type>Add</modification-type>
<value>distgroup</value>
</value-change>
</value-changes>
</attribute-change>
<attribute-change>
<name>primaryEmail</name>
<modification-type>Replace</modification-type>
<data-type>String</data-type>
<value-changes>
<value-change>
<modification-type>Add</modification-type>
<value>[email protected]</value>
</value-change>
</value-changes>
</attribute-change>
<attribute-change>
<name>name</name>
<modification-type>Replace</modification-type>
<data-type>String</data-type>
<value-changes>
<value-change>
<modification-type>Add</modification-type>
<value>distgroup</value>
</value-change>
</value-changes>
</attribute-change>
<attribute-change>
<name>aliases</name>
<modification-type>Update</modification-type>
<data-type>String</data-type>
<value-changes>
<value-change>
<modification-type>Delete</modification-type>
<value>[email protected]</value>
</value-change>
</value-changes>
</attribute-change>
</attribute-changes>
</object-change>
</cs-entry-changes>
On subsequent export it fails again as it is trying to delete an already deleted alias. Only Full Import Delta Sync clears the error as it confirms the delete
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.