I tried doing something like this, but kept hitting various walls, when using hook::alarmstatechange
function main()
{
webhook = "https://my.host.hstgr.cloud/webhook-test/netxms-alarm";
payload = "{"
+ "\"id\":\"" + ToString($alarm->id) + "\","
+ "\"state\":\"" + ToString($alarm->state) + "\","
+ "\"severity\":\"" + ToString($alarm->severity) + "\","
+ "\"message\":\"" + EscapeString(($alarm->message != null) ? $alarm->message : "") + "\","
+ "\"source\":\"" + (($alarm->sourceObject != null) ? EscapeString($alarm->sourceObject->name) : "") + "\","
+ "\"eventCode\":\"" + ToString($alarm->eventCode) + "\","
+ "\"eventName\":\"" + EscapeString(($alarm->eventName != null) ? $alarm->eventName : "") + "\""
+ "}";
WriteLog(0, "Alarm JSON: " + payload);
cmd = "curl -s -X POST -H 'Content-Type: application/json' -d '" + payload + "' " + webhook;
Execute(cmd);
}
function EscapeString(s)
{
if (s == null)
return "";
s = Replace(s, "\\", "\\\\");
s = Replace(s, "\"", "\\\"");
return s;
}
function main()
{
webhook = "https://my.host.hstgr.cloud/webhook-test/netxms-alarm";
payload = "{"
+ "\"id\":\"" + ToString($alarm->id) + "\","
+ "\"state\":\"" + ToString($alarm->state) + "\","
+ "\"severity\":\"" + ToString($alarm->severity) + "\","
+ "\"message\":\"" + EscapeString(($alarm->message != null) ? $alarm->message : "") + "\","
+ "\"source\":\"" + (($alarm->sourceObject != null) ? EscapeString($alarm->sourceObject->name) : "") + "\","
+ "\"eventCode\":\"" + ToString($alarm->eventCode) + "\","
+ "\"eventName\":\"" + EscapeString(($alarm->eventName != null) ? $alarm->eventName : "") + "\""
+ "}";
WriteLog(0, "Alarm JSON: " + payload);
cmd = "curl -s -X POST -H 'Content-Type: application/json' -d '" + payload + "' " + webhook;
Execute(cmd);
}
function EscapeString(s)
{
if (s == null)
return "";
s = Replace(s, "\\", "\\\\");
s = Replace(s, "\"", "\\\"");
return s;
}