I'm new to this one. I've got it up and running and it's creating users,
but I'm having trouble with two of the more advanced features that we may
or may not want to use. I've heavily customized the driver policies
already, so they're very unlike the standard distribution. I don't think
that's where my problem lies, but I could be wrong.

I have Google domain "niu.edu" here. Under this, I've created a "Test"
Organizational Unit in which to place some test accounts. I can create,
update, and delete accounts (via the IDM driver) without errors, as long
as I stick to Given Name, Surname, Login Disabled, and Password. The
created account can log in to Google, using the supplied password, so the
basics are working ok.

Now I'm attempting to set the GmailSettingsSendAs attribute. That's not
working. Picking up the trace of the <add> event as it is being submitted
to the driver shim:


[07/24/12 11:02:30.451]:Google ST:Stripping operation data from input
document
[07/24/12 11:02:30.451]:Google ST:execute
[07/24/12 11:02:30.452]:Google ST:
<nds dtdversion="3.5" ndsversion="8.x">
<source>
<product version="3.6.10.4747">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<add class-name="UserEntry" dest-dn="test\Z025853" event-id="sles10-
cluster-2#20120724155203#3#1" qualified-src-dn="O=NIU\OU=Users
\CN=Z025853" src-dn="\NIU-FLAT-DEVELOPMENT\NIU\Users\Z025853" src-entry-
id="57370">
<add-attr attr-name="GivenName">
<value timestamp="1342116942#2" type="string">David</value>
</add-attr>
<add-attr attr-name="IsSuspended">
<value timestamp="1267810103#2" type="state">false</value>
</add-attr>
<add-attr attr-name="FamilyName">
<value timestamp="1343145123#2" type="string">Gersic</value>
</add-attr>
<add-attr attr-name="UserName">
<value type="string">Z025853@test.niu.edu</value>
</add-attr>
<add-attr attr-name="GmailSettingsSendAs">
<value type="structured">
<component name="Name">David Gersic</component>
<component name="SendAs">gersics@niu.edu</component>
<component name="ReplyTo">gersics@niu.edu</component>
<component name="IsDefault">True</component>
</value>
</add-attr>
<password><!-- content suppressed --></password>
</add>
</input>
</nds>
[07/24/12 11:02:30.458]:Google ST:connect
[07/24/12 11:02:30.458]:Google ST:dispatch
[07/24/12 11:02:30.458]:Google ST:addHandler
[07/24/12 11:02:30.458]:Google ST:addHandler: class-name == 'UserEntry'
[07/24/12 11:02:30.459]:Google ST:calling addUserHandler
[07/24/12 11:02:30.459]:Google ST:addUserHandler
[07/24/12 11:02:30.459]:Google ST:Subscriber addUserHandler: Derived
Google OU name test from dest-dn test\Z025853
[07/24/12 11:02:30.460]:Google ST:addHandler: attr-name == 'GivenName'
[07/24/12 11:02:30.460]:Google ST:addHandler: value == 'David'
[07/24/12 11:02:30.460]:Google ST:addHandler: attr-name == 'IsSuspended'
[07/24/12 11:02:30.461]:Google ST:addHandler: attr-name == 'FamilyName'
[07/24/12 11:02:30.461]:Google ST:addHandler: value == 'Gersic'
[07/24/12 11:02:30.461]:Google ST:addHandler: attr-name == 'UserName'
[07/24/12 11:02:30.462]:Google ST:addHandler: value ==
'Z025853@test.niu.edu'
[07/24/12 11:02:30.462]:Google ST:addHandler: attr-name ==
'GmailSettingsSendAs'
[07/24/12 11:02:30.462]:Google ST:createUser with 4 Parameters
[07/24/12 11:02:30.463]:Google ST:Creating user 'Z025853'. Target Domain:
'test.niu.edu'. Given Name: 'David' Family Name: 'Gersic' Hash Function:
'MD5'.
[07/24/12 11:02:30.464]:Google ST:New URL https://apps-apis.google.com/a/
feeds/test.niu.edu/user/2.0
[07/24/12 11:02:31.911]:Google ST:createUser succeeded
[07/24/12 11:02:31.911]:Google ST:addUserHandler attempting to set
OrganizationUnit for new UserEntry
[07/24/12 11:02:31.912]:Google ST:appsForYourDomain.retrieveCustomerId:
sDomain = niu.edu
[07/24/12 11:02:32.292]:Google
ST:appsForYourDomain.updateOrganizationUser: CustomerId = XXXXXXXX
[07/24/12 11:02:32.293]:Google
ST:appsForYourDomain.updateOrganizationUser: OrgUserEmail =
Z025853@test.niu.edu
[07/24/12 11:02:32.293]:Google
ST:appsForYourDomain.updateOrganizationUser: OldOrgUnitPath = /
[07/24/12 11:02:32.294]:Google
ST:appsForYourDomain.updateOrganizationUser: NewOrgUnitPath = test
[07/24/12 11:02:36.090]:Google ST:addHandler: attr-name == 'GivenName'
[07/24/12 11:02:36.090]:Google ST:getSingleValueElement: == 'David'
[07/24/12 11:02:36.091]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.091]:Google ST:Unrecognized attribute GivenName; value
= David on object Z025853
[07/24/12 11:02:36.092]:Google ST:addHandler: attr-name == 'IsSuspended'
[07/24/12 11:02:36.092]:Google ST:getSingleValueElement: == 'false'
[07/24/12 11:02:36.093]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.093]:Google ST:Unrecognized attribute IsSuspended;
value = false on object Z025853
[07/24/12 11:02:36.093]:Google ST:addHandler: attr-name == 'FamilyName'
[07/24/12 11:02:36.094]:Google ST:getSingleValueElement: == 'Gersic'
[07/24/12 11:02:36.094]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.095]:Google ST:Unrecognized attribute FamilyName;
value = Gersic on object Z025853
[07/24/12 11:02:36.095]:Google ST:addHandler: attr-name == 'UserName'
[07/24/12 11:02:36.095]:Google ST:getSingleValueElement: ==
'Z025853@test.niu.edu'
[07/24/12 11:02:36.096]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.096]:Google ST:Unrecognized attribute UserName; value
= Z025853@test.niu.edu on object Z025853
[07/24/12 11:02:36.097]:Google ST:addHandler: attr-name ==
'GmailSettingsSendAs'
[07/24/12 11:02:36.097]:Google ST:getSingleValueElement: Caught
NullPointerException. Message = null
[07/24/12 11:02:36.097]:Google ST:Unrecognized attribute
GmailSettingsSendAs; value = Z025853@test.niu.edu on object Z025853
[07/24/12 11:02:36.098]:Google ST:addHandler: attr-name == 'GivenName'
[07/24/12 11:02:36.098]:Google ST:getSingleValueElement: == 'David'
[07/24/12 11:02:36.099]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.099]:Google ST:addHandler: attr-name == 'IsSuspended'
[07/24/12 11:02:36.099]:Google ST:getSingleValueElement: == 'false'
[07/24/12 11:02:36.100]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.100]:Google ST:Restoring user.
[07/24/12 11:02:36.100]:Google ST:Updating user 'null'.
[07/24/12 11:02:36.321]:Google ST:addHandler: attr-name == 'FamilyName'
[07/24/12 11:02:36.322]:Google ST:getSingleValueElement: == 'Gersic'
[07/24/12 11:02:36.322]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.322]:Google ST:addHandler: attr-name == 'UserName'
[07/24/12 11:02:36.323]:Google ST:getSingleValueElement: ==
'Z025853@test.niu.edu'
[07/24/12 11:02:36.323]:Google ST:getValueAssociationRef: assoc-ref
received a null Association-Ref
[07/24/12 11:02:36.324]:Google ST:addHandler: attr-name ==
'GmailSettingsSendAs'
[07/24/12 11:02:36.324]:Google ST:getStructuredValueElement
[07/24/12 11:02:36.324]:Google ST:GmailSettingsService.createSendAs:
Creating send-as alias ( name: David Gersic, address: gersics@niu.edu,
replyTo: gersics@niu.edu, makeDefault: true ) for user Z025853 ...
[07/24/12 11:02:36.541]:Google ST:ServiceException: EntityDoesNotExist
(1301):
[07/24/12 11:02:36.541]:Google ST:Restoring operation data to output
document
[07/24/12 11:02:36.542]:Google ST:SubscriptionShim.execute() returned:
[07/24/12 11:02:36.542]:Google ST:
<nds dtdversion="3.0">
<source>
<product build="20120207_0907" instance="Google"
version="4.0.1.3">GoogleApps Driver</product>
<contact>Novell, Inc.</contact>
</source>
<output>
<status event-id="sles10-cluster-2#20120724155203#3#1"
level="success" type="driver-general">
<operation-data>
<password-subscribe-status>
<association/>
</password-subscribe-status>
</operation-data>
</status>
<add-association dest-dn="\NIU-FLAT-DEVELOPMENT\NIU\Users\Z025853"
event-id="sles10-cluster-2#20120724155203#3#1">https://apps-
apis.google.com/a/feeds/test.niu.edu/user/2.0/z025853<operation-data>
<password-subscribe-status>
<association/>
</password-subscribe-status>
</operation-data>
</add-association>
<status event-id="sles10-cluster-2#20120724155203#3#1" level="fatal"
type="driver-status">
<description>Service Exception: EntityDoesNotExist(1301): </
description>
<exception class-
name="com.google.gdata.data.appsforyourdomain.Apps ForYourDomainException">
<message>AppsForYourDomainException</message>
</exception>
<operation-data>
<password-subscribe-status>
<association/>
</password-subscribe-status>
</operation-data>
</status>
</output>
</nds>


Questions:

1. Those various "Unrecognized attribute" and "getValueAssociationRef:
assoc-ref received a null Association-Ref" messages seem ominous, but the
object creates and updates work correctly. Are these just internal
artifacts from the shim that I should ignore? Or do they indicate some
problem I should be investigating?


2. The message:

[07/24/12 11:02:36.097]:Google ST:Unrecognized attribute
GmailSettingsSendAs; value = Z025853@test.niu.edu on object Z025853

also seems strange, as the shim clearly *does* recognize the attribute
GmailSettingsSendAs. Is this a problem I should be looking at further?


3. Another oddity is the part that says:

[07/24/12 11:02:36.100]:Google ST:Restoring user.
[07/24/12 11:02:36.100]:Google ST:Updating user 'null'.

That just looks wrong. But, again, it works, so maybe that's normal?


4. Finally, it looks to me like the shim tries to create the
GmailSettingsSendAs attribute:

[07/24/12 11:02:36.324]:Google ST:GmailSettingsService.createSendAs:
Creating send-as alias ( name: David Gersic, address:
gersics@niu.edu, replyTo: gersics@niu.edu, makeDefault: true ) for user
Z025853 ...

and from the Java docs, that looks correct to me, but the shim then
replies with:

[07/24/12 11:02:36.541]:Google ST:ServiceException: EntityDoesNotExist
(1301):

Any ideas what "entity" it is looking for that it is claiming does not
exist?


I'm also trying to set the NickNames attribute, and getting a similar
"EntityDoesNotExist" from that, which makes me suspect that I'm doing
something fundamentally wrong here, but I'm not seeing what it is. The
docs for NickNames seem to indicate that only the left side of the email
address (gersics) should be specified. I've tried that, and the full
email alias (gersics@niu.edu), and both return "EntityDoesNotExist".

The Google management page allows creation of NickNames using any
subdomain I have, so I'm thinking that the docs don't match what Google
is actually supporting, but I can't prove that yet.


--
--------------------------------------------------------------------------
David Gersic dgersic_@_niu.edu
Knowledge Partner http://forums.novell.com

Please post questions in the forums. No support provided via email.