Environment
NetIQ Operations Center 5.0 running with a configured running App Manager adapter
Situation
There may be times when clients would like to be able to extract the contents of the Message Description field that resides on incoming App Manager Alarms. Professional Services has created a server-side operation script which allows this functionality to be performed.
Resolution
This script should be added to a server-side operation:
var details = "not found!";
if ( this.alarms[0]['ParentEventID'] != 0 )
{
details = this.alarms[0].element.getAlarmDetailedMessage(this.alarms[0].id);
}
else
{
var childAlarm = getChildAlarm( this.alarms[0].element, this.alarms[0].id );
if (childAlarm != null)
{
details = childAlarm.element.getAlarmDetailedMessage(childAlarm.id);
}
}
if ( details == undefined )
formula.log.info("DETAIL: undefined" );
if ( details == "" )
formula.log.info("DETAIL: emtpty" );
formula.log.info("DETAIL: " + details );
if ( details != undefined )
{
var transformedString = this.alarms[0].element.adapter.transformDetailMessageToHTML( details )
if ( details == "" )
this.session.sendMessage(" ");
else
this.session.sendMessage(transformedString);
}
else
this.session.sendMessage("undefined");
// returns one appManager child alarm for the given id
// or null if not found
function getChildAlarm ( theElement, parentID )
{
var childAlarm = null;
var allAlarms = theElement.alarms;
for (var i=0; i < allAlarms.length; i++)
{
if ( allAlarms[i]['ParentEventID'] == parentID )
{
childAlarm = allAlarms[i];
}
}
return childAlarm;
}