Merge branch 'master' into develop/3.5.1
This commit is contained in:
commit
b869f39722
@ -20,6 +20,7 @@ import org.apache.commons.collections.CollectionUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.server.common.data.DataConstants;
|
import org.thingsboard.server.common.data.DataConstants;
|
||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
import org.thingsboard.server.common.data.notification.info.DeviceActivityNotificationInfo;
|
import org.thingsboard.server.common.data.notification.info.DeviceActivityNotificationInfo;
|
||||||
@ -41,6 +42,9 @@ public class DeviceActivityTriggerProcessor implements RuleEngineMsgNotification
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matchesFilter(RuleEngineMsgTrigger trigger, DeviceActivityNotificationRuleTriggerConfig triggerConfig) {
|
public boolean matchesFilter(RuleEngineMsgTrigger trigger, DeviceActivityNotificationRuleTriggerConfig triggerConfig) {
|
||||||
|
if (trigger.getMsg().getOriginator().getEntityType() != EntityType.DEVICE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
DeviceEvent event = trigger.getMsg().getType().equals(DataConstants.ACTIVITY_EVENT) ? DeviceEvent.ACTIVE : DeviceEvent.INACTIVE;
|
DeviceEvent event = trigger.getMsg().getType().equals(DataConstants.ACTIVITY_EVENT) ? DeviceEvent.ACTIVE : DeviceEvent.INACTIVE;
|
||||||
if (!triggerConfig.getNotifyOn().contains(event)) {
|
if (!triggerConfig.getNotifyOn().contains(event)) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -607,6 +607,7 @@ spring:
|
|||||||
username: "${SPRING_DATASOURCE_USERNAME:postgres}"
|
username: "${SPRING_DATASOURCE_USERNAME:postgres}"
|
||||||
password: "${SPRING_DATASOURCE_PASSWORD:postgres}"
|
password: "${SPRING_DATASOURCE_PASSWORD:postgres}"
|
||||||
hikari:
|
hikari:
|
||||||
|
leakDetectionThreshold: "${SPRING_DATASOURCE_HIKARI_LEAK_DETECTION_THRESHOLD:0}"
|
||||||
maximumPoolSize: "${SPRING_DATASOURCE_MAXIMUM_POOL_SIZE:16}"
|
maximumPoolSize: "${SPRING_DATASOURCE_MAXIMUM_POOL_SIZE:16}"
|
||||||
registerMbeans: "${SPRING_DATASOURCE_HIKARI_REGISTER_MBEANS:false}" # true - enable MBean to diagnose pools state via JMX
|
registerMbeans: "${SPRING_DATASOURCE_HIKARI_REGISTER_MBEANS:false}" # true - enable MBean to diagnose pools state via JMX
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,6 @@ import org.springframework.data.domain.Page;
|
|||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.jpa.repository.query.Procedure;
|
|
||||||
import org.springframework.data.repository.query.Param;
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.thingsboard.server.common.data.alarm.AlarmSeverity;
|
import org.thingsboard.server.common.data.alarm.AlarmSeverity;
|
||||||
import org.thingsboard.server.dao.model.sql.AlarmEntity;
|
import org.thingsboard.server.dao.model.sql.AlarmEntity;
|
||||||
@ -316,7 +315,9 @@ public interface AlarmRepository extends JpaRepository<AlarmEntity, UUID> {
|
|||||||
@Query(value = "SELECT a FROM AlarmInfoEntity a WHERE a.tenantId = :tenantId AND a.id = :alarmId")
|
@Query(value = "SELECT a FROM AlarmInfoEntity a WHERE a.tenantId = :tenantId AND a.id = :alarmId")
|
||||||
AlarmInfoEntity findAlarmInfoById(@Param("tenantId") UUID tenantId, @Param("alarmId") UUID alarmId);
|
AlarmInfoEntity findAlarmInfoById(@Param("tenantId") UUID tenantId, @Param("alarmId") UUID alarmId);
|
||||||
|
|
||||||
@Procedure(procedureName = "create_or_update_active_alarm")
|
@Query(value = "SELECT create_or_update_active_alarm(:t_id, :c_id, :a_id, :a_created_ts, :a_o_id, :a_o_type, :a_type, :a_severity, " +
|
||||||
|
":a_start_ts, :a_end_ts, :a_details, :a_propagate, :a_propagate_to_owner, " +
|
||||||
|
":a_propagate_to_tenant, :a_propagation_types, :a_creation_enabled)", nativeQuery = true)
|
||||||
String createOrUpdateActiveAlarm(@Param("t_id") UUID tenantId, @Param("c_id") UUID customerId,
|
String createOrUpdateActiveAlarm(@Param("t_id") UUID tenantId, @Param("c_id") UUID customerId,
|
||||||
@Param("a_id") UUID alarmId, @Param("a_created_ts") long createdTime,
|
@Param("a_id") UUID alarmId, @Param("a_created_ts") long createdTime,
|
||||||
@Param("a_o_id") UUID originatorId, @Param("a_o_type") int originatorType,
|
@Param("a_o_id") UUID originatorId, @Param("a_o_type") int originatorType,
|
||||||
@ -326,21 +327,22 @@ public interface AlarmRepository extends JpaRepository<AlarmEntity, UUID> {
|
|||||||
@Param("a_propagate_to_tenant") boolean propagateToTenant, @Param("a_propagation_types") String propagationTypes,
|
@Param("a_propagate_to_tenant") boolean propagateToTenant, @Param("a_propagation_types") String propagationTypes,
|
||||||
@Param("a_creation_enabled") boolean alarmCreationEnabled);
|
@Param("a_creation_enabled") boolean alarmCreationEnabled);
|
||||||
|
|
||||||
@Procedure(procedureName = "update_alarm")
|
@Query(value = "SELECT update_alarm(:t_id, :a_id, :a_severity, :a_start_ts, :a_end_ts, :a_details, :a_propagate, :a_propagate_to_owner, " +
|
||||||
|
":a_propagate_to_tenant, :a_propagation_types)", nativeQuery = true)
|
||||||
String updateAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_severity") String severity,
|
String updateAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_severity") String severity,
|
||||||
@Param("a_start_ts") long startTs, @Param("a_end_ts") long endTs, @Param("a_details") String detailsAsString,
|
@Param("a_start_ts") long startTs, @Param("a_end_ts") long endTs, @Param("a_details") String detailsAsString,
|
||||||
@Param("a_propagate") boolean propagate, @Param("a_propagate_to_owner") boolean propagateToOwner,
|
@Param("a_propagate") boolean propagate, @Param("a_propagate_to_owner") boolean propagateToOwner,
|
||||||
@Param("a_propagate_to_tenant") boolean propagateToTenant, @Param("a_propagation_types") String propagationTypes);
|
@Param("a_propagate_to_tenant") boolean propagateToTenant, @Param("a_propagation_types") String propagationTypes);
|
||||||
|
|
||||||
@Procedure(procedureName = "acknowledge_alarm")
|
@Query(value = "SELECT acknowledge_alarm(:t_id, :a_id, :a_ts)", nativeQuery = true)
|
||||||
String acknowledgeAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_ts") long ts);
|
String acknowledgeAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_ts") long ts);
|
||||||
|
|
||||||
@Procedure(procedureName = "clear_alarm")
|
@Query(value = "SELECT clear_alarm(:t_id, :a_id, :a_ts, :a_details)", nativeQuery = true)
|
||||||
String clearAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_ts") long ts, @Param("a_details") String details);
|
String clearAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_ts") long ts, @Param("a_details") String details);
|
||||||
|
|
||||||
@Procedure(procedureName = "assign_alarm")
|
@Query(value = "SELECT assign_alarm(:t_id, :a_id, :u_id, :a_ts)", nativeQuery = true)
|
||||||
String assignAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("u_id") UUID userId, @Param("a_ts") long assignTime);
|
String assignAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("u_id") UUID userId, @Param("a_ts") long assignTime);
|
||||||
|
|
||||||
@Procedure(procedureName = "unassign_alarm")
|
@Query(value = "SELECT unassign_alarm(:t_id, :a_id, :a_ts)", nativeQuery = true)
|
||||||
String unassignAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_ts") long unassignTime);
|
String unassignAlarm(@Param("t_id") UUID tenantId, @Param("a_id") UUID alarmId, @Param("a_ts") long unassignTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,9 +110,12 @@ public class SqlPartitioningRepository {
|
|||||||
|
|
||||||
String tablePartition = table + "_" + partitionTs;
|
String tablePartition = table + "_" + partitionTs;
|
||||||
String detachPsqlStmtStr = "ALTER TABLE " + table + " DETACH PARTITION " + tablePartition;
|
String detachPsqlStmtStr = "ALTER TABLE " + table + " DETACH PARTITION " + tablePartition;
|
||||||
if (getCurrentServerVersion() >= PSQL_VERSION_14) {
|
|
||||||
detachPsqlStmtStr += " CONCURRENTLY";
|
// hotfix of ERROR: partition "integration_debug_event_1678323600000" already pending detach in partitioned table "public.integration_debug_event"
|
||||||
}
|
// https://github.com/thingsboard/thingsboard/issues/8271
|
||||||
|
// if (getCurrentServerVersion() >= PSQL_VERSION_14) {
|
||||||
|
// detachPsqlStmtStr += " CONCURRENTLY";
|
||||||
|
// }
|
||||||
|
|
||||||
String dropStmtStr = "DROP TABLE " + tablePartition;
|
String dropStmtStr = "DROP TABLE " + tablePartition;
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user