Browse Source
Create Alarm Node add originator and status when using message data (#1503)
pull/1519/head
Valerii Sosliuk
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
15 additions and
2 deletions
-
application/src/main/java/org/thingsboard/server/controller/AlarmController.java
-
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java
|
|
|
@ -103,6 +103,7 @@ public class AlarmController extends BaseController { |
|
|
|
checkParameter(ALARM_ID, strAlarmId); |
|
|
|
try { |
|
|
|
AlarmId alarmId = new AlarmId(toUUID(strAlarmId)); |
|
|
|
checkAlarmId(alarmId, Operation.WRITE); |
|
|
|
return alarmService.deleteAlarm(getTenantId(), alarmId); |
|
|
|
} catch (Exception e) { |
|
|
|
throw handleException(e); |
|
|
|
|
|
|
|
@ -69,8 +69,7 @@ public class TbCreateAlarmNode extends TbAbstractAlarmNode<TbCreateAlarmNodeConf |
|
|
|
msgAlarm = null; |
|
|
|
} else { |
|
|
|
try { |
|
|
|
msgAlarm = mapper.readValue(msg.getData(), Alarm.class); |
|
|
|
msgAlarm.setTenantId(ctx.getTenantId()); |
|
|
|
msgAlarm = getAlarmFromMessage(ctx, msg); |
|
|
|
alarmType = msgAlarm.getType(); |
|
|
|
} catch (IOException e) { |
|
|
|
ctx.tellFailure(msg, e); |
|
|
|
@ -89,6 +88,19 @@ public class TbCreateAlarmNode extends TbAbstractAlarmNode<TbCreateAlarmNodeConf |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private Alarm getAlarmFromMessage(TbContext ctx, TbMsg msg) throws IOException { |
|
|
|
Alarm msgAlarm; |
|
|
|
msgAlarm = mapper.readValue(msg.getData(), Alarm.class); |
|
|
|
msgAlarm.setTenantId(ctx.getTenantId()); |
|
|
|
if (msgAlarm.getOriginator() == null) { |
|
|
|
msgAlarm.setOriginator(msg.getOriginator()); |
|
|
|
} |
|
|
|
if (msgAlarm.getStatus() == null) { |
|
|
|
msgAlarm.setStatus(AlarmStatus.ACTIVE_UNACK); |
|
|
|
} |
|
|
|
return msgAlarm; |
|
|
|
} |
|
|
|
|
|
|
|
private ListenableFuture<AlarmResult> createNewAlarm(TbContext ctx, TbMsg msg, Alarm msgAlarm) { |
|
|
|
ListenableFuture<Alarm> asyncAlarm; |
|
|
|
if (msgAlarm != null ) { |
|
|
|
|