Fixed alarm details on alarm clear
This commit is contained in:
parent
f1be847bfb
commit
8311017b92
@ -249,15 +249,17 @@ public class ThingsboardInstallService {
|
|||||||
case "3.4.4":
|
case "3.4.4":
|
||||||
log.info("Upgrading ThingsBoard from version 3.4.4 to 3.5.0 ...");
|
log.info("Upgrading ThingsBoard from version 3.4.4 to 3.5.0 ...");
|
||||||
databaseEntitiesUpgradeService.upgradeDatabase("3.4.4");
|
databaseEntitiesUpgradeService.upgradeDatabase("3.4.4");
|
||||||
entityDatabaseSchemaService.createOrUpdateViewsAndFunctions();
|
|
||||||
entityDatabaseSchemaService.createOrUpdateDeviceInfoView(persistToTelemetry);
|
|
||||||
log.info("Updating system data...");
|
|
||||||
systemDataLoaderService.updateSystemWidgets();
|
|
||||||
if (!getEnv("SKIP_DEFAULT_NOTIFICATION_CONFIGS_CREATION", false)) {
|
if (!getEnv("SKIP_DEFAULT_NOTIFICATION_CONFIGS_CREATION", false)) {
|
||||||
systemDataLoaderService.createDefaultNotificationConfigs();
|
systemDataLoaderService.createDefaultNotificationConfigs();
|
||||||
} else {
|
} else {
|
||||||
log.info("Skipping default notification configs creation");
|
log.info("Skipping default notification configs creation");
|
||||||
}
|
}
|
||||||
|
case "3.5.0":
|
||||||
|
log.info("Upgrading ThingsBoard from version 3.5.0 to 3.5.1 ...");
|
||||||
|
entityDatabaseSchemaService.createOrUpdateViewsAndFunctions();
|
||||||
|
entityDatabaseSchemaService.createOrUpdateDeviceInfoView(persistToTelemetry);
|
||||||
|
log.info("Updating system data...");
|
||||||
|
systemDataLoaderService.updateSystemWidgets();
|
||||||
installScripts.loadSystemLwm2mResources();
|
installScripts.loadSystemLwm2mResources();
|
||||||
break;
|
break;
|
||||||
//TODO update CacheCleanupService on the next version upgrade
|
//TODO update CacheCleanupService on the next version upgrade
|
||||||
|
|||||||
@ -84,7 +84,8 @@ public class DefaultCacheCleanupService implements CacheCleanupService {
|
|||||||
break;
|
break;
|
||||||
case "3.4.4":
|
case "3.4.4":
|
||||||
log.info("Clearing cache to upgrade from version 3.4.4 to 3.5.0");
|
log.info("Clearing cache to upgrade from version 3.4.4 to 3.5.0");
|
||||||
clearCacheByName("deviceProfiles");
|
clearAll();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
//Do nothing, since cache cleanup is optional.
|
//Do nothing, since cache cleanup is optional.
|
||||||
}
|
}
|
||||||
|
|||||||
@ -348,7 +348,7 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlarmApiCallResult clearAlarm(TenantId tenantId, AlarmId id, long clearTs, JsonNode details) {
|
public AlarmApiCallResult clearAlarm(TenantId tenantId, AlarmId id, long clearTs, JsonNode details) {
|
||||||
return toAlarmApiResult(alarmRepository.clearAlarm(tenantId.getId(), id.getId(), clearTs, getDetailsAsString(details)));
|
return toAlarmApiResult(alarmRepository.clearAlarm(tenantId.getId(), id.getId(), clearTs, details != null ? getDetailsAsString(details) : null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -226,8 +226,12 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
IF NOT(existing.cleared) THEN
|
IF NOT(existing.cleared) THEN
|
||||||
cleared = TRUE;
|
cleared = TRUE;
|
||||||
|
IF a_details IS NULL THEN
|
||||||
|
UPDATE alarm a SET cleared = true, clear_ts = a_ts WHERE a.id = a_id AND a.tenant_id = t_id;
|
||||||
|
ELSE
|
||||||
UPDATE alarm a SET cleared = true, clear_ts = a_ts, additional_info = a_details WHERE a.id = a_id AND a.tenant_id = t_id;
|
UPDATE alarm a SET cleared = true, clear_ts = a_ts, additional_info = a_details WHERE a.id = a_id AND a.tenant_id = t_id;
|
||||||
END IF;
|
END IF;
|
||||||
|
END IF;
|
||||||
SELECT * INTO result FROM alarm_info a WHERE a.id = a_id AND a.tenant_id = t_id;
|
SELECT * INTO result FROM alarm_info a WHERE a.id = a_id AND a.tenant_id = t_id;
|
||||||
RETURN json_build_object('success', true, 'cleared', cleared, 'alarm', row_to_json(result))::text;
|
RETURN json_build_object('success', true, 'cleared', cleared, 'alarm', row_to_json(result))::text;
|
||||||
END
|
END
|
||||||
|
|||||||
@ -202,7 +202,34 @@ public class JpaAlarmDaoTest extends AbstractJpaDaoTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testClearAlarmProcedure() {
|
public void testClearAlarmProcedure() {
|
||||||
UUID tenantId = UUID.randomUUID();
|
UUID tenantId = UUID.randomUUID();
|
||||||
;
|
UUID originator1Id = UUID.fromString("d4b68f41-3e96-11e7-a884-898080180d6b");
|
||||||
|
UUID alarm1Id = UUID.fromString("d4b68f43-3e96-11e7-a884-898080180d6b");
|
||||||
|
Alarm alarm = saveAlarm(alarm1Id, tenantId, originator1Id, "TEST_ALARM");
|
||||||
|
long clearTs = System.currentTimeMillis();
|
||||||
|
var details = JacksonUtil.newObjectNode().put("test", 123);
|
||||||
|
AlarmApiCallResult result = alarmDao.clearAlarm(alarm.getTenantId(), alarm.getId(), clearTs, details);
|
||||||
|
AlarmInfo afterSave = alarmDao.findAlarmInfoById(alarm.getTenantId(), alarm.getUuidId());
|
||||||
|
assertNotNull(result);
|
||||||
|
assertTrue(result.isSuccessful());
|
||||||
|
assertTrue(result.isCleared());
|
||||||
|
assertNotNull(result.getAlarm());
|
||||||
|
assertEquals(afterSave, result.getAlarm());
|
||||||
|
assertEquals(clearTs, result.getAlarm().getClearTs());
|
||||||
|
assertTrue(result.getAlarm().isCleared());
|
||||||
|
assertEquals(details, result.getAlarm().getDetails());
|
||||||
|
result = alarmDao.clearAlarm(alarm.getTenantId(), alarm.getId(), clearTs + 1, JacksonUtil.newObjectNode());
|
||||||
|
assertNotNull(result);
|
||||||
|
assertNotNull(result.getAlarm());
|
||||||
|
assertEquals(afterSave, result.getAlarm());
|
||||||
|
assertTrue(result.isSuccessful());
|
||||||
|
assertFalse(result.isCleared());
|
||||||
|
assertEquals(clearTs, result.getAlarm().getClearTs());
|
||||||
|
assertTrue(result.getAlarm().isCleared());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testClearAlarmWithoutDetailsProcedure() {
|
||||||
|
UUID tenantId = UUID.randomUUID();
|
||||||
UUID originator1Id = UUID.fromString("d4b68f41-3e96-11e7-a884-898080180d6b");
|
UUID originator1Id = UUID.fromString("d4b68f41-3e96-11e7-a884-898080180d6b");
|
||||||
UUID alarm1Id = UUID.fromString("d4b68f43-3e96-11e7-a884-898080180d6b");
|
UUID alarm1Id = UUID.fromString("d4b68f43-3e96-11e7-a884-898080180d6b");
|
||||||
Alarm alarm = saveAlarm(alarm1Id, tenantId, originator1Id, "TEST_ALARM");
|
Alarm alarm = saveAlarm(alarm1Id, tenantId, originator1Id, "TEST_ALARM");
|
||||||
@ -216,6 +243,7 @@ public class JpaAlarmDaoTest extends AbstractJpaDaoTest {
|
|||||||
assertEquals(afterSave, result.getAlarm());
|
assertEquals(afterSave, result.getAlarm());
|
||||||
assertEquals(clearTs, result.getAlarm().getClearTs());
|
assertEquals(clearTs, result.getAlarm().getClearTs());
|
||||||
assertTrue(result.getAlarm().isCleared());
|
assertTrue(result.getAlarm().isCleared());
|
||||||
|
assertEquals(alarm.getDetails(), result.getAlarm().getDetails());
|
||||||
result = alarmDao.clearAlarm(alarm.getTenantId(), alarm.getId(), clearTs + 1, JacksonUtil.newObjectNode());
|
result = alarmDao.clearAlarm(alarm.getTenantId(), alarm.getId(), clearTs + 1, JacksonUtil.newObjectNode());
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
assertNotNull(result.getAlarm());
|
assertNotNull(result.getAlarm());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user