Sunday, May 6, 2012

Notifications in Hyperic HQApi

Normally in the HQ GUI you can setup an email notification, in this example the user "pippo" would be notified:

AlertDefinition d = new AlertDefinition();
AlertAction emailAlertAction = new AlertAction();

emailAlertAction.setClassName("com.hyperic.hq.bizapp.server.action.email.EmailAction");

AlertActionConfig alertActionConfigNotifyTypes = new AlertActionConfig();
alertActionConfigNotifyTypes.setKey("notifyType");
alertActionConfigNotifyTypes.setValue("users");

AlertActionConfig alertActionConfigNames = new AlertActionConfig();
alertActionConfigNotifyTypes.setKey("names");
alertActionConfigNotifyTypes.setValue("pippo");

emailAlertAction.getAlertActionConfig().add(alertActionConfigNotifyTypes);
emailAlertAction.getAlertActionConfig().add(alertActionConfigNames);

d.getAlertAction().add(emailAlertAction);

Unfortunately in Hyperic 4.5.3 this doesn't seem to work (see also https://jira.hyperic.com/browse/HQAPI-147)

The only way which seems to work in HQApi is by escalation:

    <AlertDefinition mtime="1336305843209" ctime="1336305430467" id="10745" name="[Down]" description="[Down]" priority="2" enabled="true" active="true" frequency="0" count="0" range="0" willRecover="true" notifyFiltered="false" controlFiltered="false">
        <Resource id="12473" name="/tmp/hyperictestdir"/>
        <Escalation id="10001" name="ACME Project Team Escalation" description="" pauseAllowed="true" maxPauseTime="9223372036854775807" notifyAll="false" repeat="true"/>
        <AlertCondition required="true" type="1" thresholdValue="0.0" thresholdComparator="=" thresholdMetric="Availability"/>
    </AlertDefinition>


The escalation "ACME Project Team Escalation" must have been previously setup in Administration / Escalation Schemes Configuration
or with the org.hyperic.hq.hqapi1.EscalationApi.createEscalation() API

You can also retrieve existing escalations by name with EscalationApi.getEscalation(String name)

No comments: