Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Passing service attributes to IDI

156 views
Skip to first unread message

Warren Begas

unread,
Feb 28, 2006, 12:19:28 PM2/28/06
to
I am trying to use ITIM to provision accounts in an application using IDI. I
am using DSMLV2 and created an event handler in IDI. What I can not figure
out is how to pass a service instance attribute to the Assembly line.

My schema.dsml file defines "cqmasterdbname" in the service schema. I would
like to pass this attribute to my IDI AL. Here is the schema.dsml file:

<directory-schema>
<attribute-type single-value = "false" >
<name>cqgroupmembership</name>
<description>Membership to a ClearQuest group</description>
<object-identifier>cqgroupmembership-oid</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.15</syntax>
</attribute-type>

<attribute-type single-value = "false" >
<name>cqgroupname</name>
<description>Membership to a ClearQuest group</description>
<object-identifier>cqgroupname-oid</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.15</syntax>
</attribute-type>

<attribute-type single-value = "true" >
<name>cqmasterdbname</name>
<description>Master database name</description>
<object-identifier>cqmasterdbname-oid</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.15</syntax>
</attribute-type>

<class superior="top">
<name>ercqservice</name>
<description>Class representing a ClearQuest service</description>
<object-identifier>1.3.6.1.4.1.6054.3.122.1.100</object-identifier>
<attribute ref="eritdicategory" required="true" />
<attribute ref="erservicename" required="true" />
<attribute ref="erurl" required="true" />
<attribute ref="eruid" required="true" />
<attribute ref="erpassword" required="true" />
<attribute ref="ernamingattribute" required="false" />
<attribute ref="namingcontexts" required="true" />
<attribute ref="cqmasterdbname" required="true" />
</class>
<class superior="top">
<name>ercqaccount</name>
<description>Class representing a ClearQuest account</description>
<object-identifier>1.3.6.1.4.1.6054.3.122.1.101</object-identifier>
<attribute ref="eruid" required="true" />
<attribute ref="erpassword" required="false" />
<attribute ref="cqgroupmembership" required="false" />
<attribute ref="owner" required="true" />
</class>

<class superior="top">
<name>ercqgroup</name>
<description>Class representing a ClearQuest group</description>
<object-identifier>1.3.6.1.4.1.6054.3.122.1.102</object-identifier>
<attribute ref="cqgroupname" required="true" />
</class>

</directory-schema>


Juan Paulo Cabezas

unread,
Feb 28, 2006, 2:02:37 PM2/28/06
to
I think you can do what you want if you modify the resource.def file
inside the install-dir/data/remote_resources/IDIAgentProfile directory.

On the resource.def file you define the way how itim comunicate with the
agent. For example if you take a look to the Active Directory resource.def:

<ProtocolProperties>
<Property Name = "java.naming.provider.url"
LDAPName = "erURL"/>
<Property Name = "com.ibm.daml.jndi.DAMLContext.DEFAULT_PORT"
Value = "45580"/>
<Property Name = "com.ibm.daml.jndi.DAMLContext.CLIENT_CERT"
LDAPName = "erCertFile"/>
<Property Name = "com.ibm.daml.jndi.DAMLContext.CLIENT_CERT_KEY"
LDAPName = "erPrivateKeyFile" />
<Property Name = "com.ibm.daml.jndi.DAMLContext.CA_CERT_DIR"
LDAPName = "erCACertStore" />
<Property Name = "java.naming.security.principal"
LDAPName = "eruid" />
<Property Name = "java.naming.security.credentials"
LDAPName = "erPassword" />
<Property Name = "erADBasePoint"
LDAPName = "erADBasePoint" />
<Property Name = "erADDomainUser"
LDAPName = "erADDomainUser" />
<Property Name = "erADDomainPassword"
LDAPName = "erADDomainPassword" />
</ProtocolProperties>

After you modify your resource.def file, you must reconfigure the itim
server, using the command:

install-dir/bin/{unix|win}/config_remote_services.sh IDIAgentProfile
-update

best regards


eso no mas

Warren Begas

unread,
Feb 28, 2006, 4:17:32 PM2/28/06
to
OK, but how do you access this property in the IDI?
conn.getParam("cqmasterdbname") in some map or hook?


Eddie Hartman

unread,
Mar 1, 2006, 3:30:45 PM3/1/06
to
I'm gonna show my ITIM ignorance here, but I would
think that since you define this as an attribute, it
would be available in the DSML message sent by TIM
to TDI. That means it should also be passed to the
called AL. Have you tried dumping out the work Entry
object to see if there is Attribute called "cmqmasterdbname"?

-Eddie

Warren Begas

unread,
Mar 1, 2006, 4:26:50 PM3/1/06
to
I dumped the work entry in the connector as well as the event object in the
Event Handler. It is not there. I can see the DSML XML in the event dump and
it does not contain the service attribute, only the account attributes.

I added the attribute in the resource.def file as suggested here and re-ran
the config.
Still no attribute in the DSML content.

"Eddie Hartman" <eddie....@no.ibm.com> wrote in message
news:du509m$4ag3a$1...@news.boulder.ibm.com...

Brian Davis

unread,
Mar 1, 2006, 10:01:16 PM3/1/06
to
I don't think there is any way to do this with the current implementation
of TDI based adapters. TIM's standard DAML adapters can get service
attributes by configuring them correctly in the adapter profile's
xforms.xml file. But this file doesn't seem to be supported by the TIM
server code that communicates with TDI based adapters.

"Warren Begas" <be...@us.ibm.com> wrote in
news:du53j2$7887k$1...@news.boulder.ibm.com:

Rudy Sutjiato

unread,
Mar 2, 2006, 12:20:32 PM3/2/06
to
There is an indirect way to pass the service attribute to IDI. Below are the
steps that you need to do:
1. Add the "cqmasterdbname" attribute to your account object class
(schema.dsml) and reconfigure the agent profile
2. Depends on which provisioning operation you want this attribute to be
passed to IDI, modify the operational workflow and add a script node before
the operation
3. In the script node, use the following script to add the service attribute
to the account attribute:

var acct = account.get();
var svc = service.get();
acct.setProperty("cqmasterdbname", svc.getProperty("cqmasterdbname")[0]);
account.set(acct);

4. The "cqmasterdbname" should now available in IDI.

Hope this helps.

Regards,
Rudy Sutjiato

"Brian Davis" <davi...@us.ibm.com> wrote in message
news:Xns9779C17EF...@207.25.253.14...

0 new messages