Promoting iManager Custom Plug-ins and Tasks
Novell Cool Solutions: Tip
Digg This -
Posted: 4 Jan 2005
If you haven't discovered it already, custom tasks and plug-ins in iManager can be pretty cool. But how do you easily transfer these tasks and plug-ins from development to test to production? A reader recently asked that very question:
"Has anyone out there come up with a way to automate the promotion of custom tasks/plug-ins from one environment to another? We have three identical environments (development, test, and production). We want to do all of the hard work (creation of tasks, assignment of roles, etc.) in development, then automatically promote the changes to test, and eventually to production. I can easily copy the JSP's, but what about the directory changes/updates? Is that as simple as a series of LDIFs? Any help would be appreciated."
And the answer ...
When you create a custom plug-in with the plug-in studio, a custom.npm containing all of the custom plug-ins is automatically created in the webapps/nps/packages directory. To move plug-ins to test and prod,
- Install the custom.npm in these iManager installations.
- Run the RBS Wizard (Configure iManager under the RBS Configuration role in the Configure view) so it can find the new custom module that was just installed and install the tasks into eDirectory.
Another reader asked a follow-up question about using custom.npm:
"I'd like do deploy a plug-in I've created to a customer's environment. But if he has own custom plug-ins, I can't copy my custom.npm. Can I create an own .npm file for my plug-in? How can this be done?"
And the answer ...
The custom.npm is just a .zip file with a certain directory structure. Here are the steps you need to follow:
- Unzip the custom.npm to a location on your hard drive.
- Rename the currentwebappsportalmodulescustominstallinstall.xml file to something unique, like install_20040929.xml.
- Rename the currentwebappsportalmodulescustompluginsplugins.xml file to something unique, like plugins_20040929.xml.
- Re-zip the contents of the .npm and you should be good to go.
When you install an .npm, you need to update Role Based Services so it will read the new .xml files and create eDirectory Role and Task objects representing the roles and tasks in the .xml files. If you are creating a brand new role, the <role-assignment> in the .xml must exist in your .xml file.
You can also edit these files and remove any extra custom tasks that you do not want to ship with your .npm.