@ -39,9 +39,9 @@ import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView ;
import org.thingsboard.server.common.data.EntityView ;
import org.thingsboard.server.common.data.User ;
import org.thingsboard.server.common.data.User ;
import org.thingsboard.server.common.data.asset.Asset ;
import org.thingsboard.server.common.data.asset.Asset ;
import org.thingsboard.server.common.data.audit.ActionType ;
import org.thingsboard.server.common.data.edge.Edge ;
import org.thingsboard.server.common.data.edge.Edge ;
import org.thingsboard.server.common.data.edge.EdgeEvent ;
import org.thingsboard.server.common.data.edge.EdgeEvent ;
import org.thingsboard.server.common.data.edge.EdgeEventActionType ;
import org.thingsboard.server.common.data.edge.EdgeEventType ;
import org.thingsboard.server.common.data.edge.EdgeEventType ;
import org.thingsboard.server.common.data.id.AdminSettingsId ;
import org.thingsboard.server.common.data.id.AdminSettingsId ;
import org.thingsboard.server.common.data.id.DeviceId ;
import org.thingsboard.server.common.data.id.DeviceId ;
@ -164,7 +164,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
log . trace ( "[{}] [{}] rule chains(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
log . trace ( "[{}] [{}] rule chains(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
for ( RuleChain ruleChain : pageData . getData ( ) ) {
for ( RuleChain ruleChain : pageData . getData ( ) ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . RULE_CHAIN , ActionType . ADDED , ruleChain . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . RULE_CHAIN , EdgeEvent ActionType. ADDED , ruleChain . getId ( ) , null ) ;
}
}
}
}
}
}
@ -189,7 +189,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
log . trace ( "[{}] [{}] device(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
log . trace ( "[{}] [{}] device(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
for ( Device device : pageData . getData ( ) ) {
for ( Device device : pageData . getData ( ) ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . DEVICE , ActionType . ADDED , device . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . DEVICE , EdgeEvent ActionType. ADDED , device . getId ( ) , null ) ;
}
}
}
}
}
}
@ -213,7 +213,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
log . trace ( "[{}] [{}] asset(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
log . trace ( "[{}] [{}] asset(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
for ( Asset asset : pageData . getData ( ) ) {
for ( Asset asset : pageData . getData ( ) ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ASSET , ActionType . ADDED , asset . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ASSET , EdgeEvent ActionType. ADDED , asset . getId ( ) , null ) ;
}
}
}
}
}
}
@ -237,7 +237,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
log . trace ( "[{}] [{}] entity view(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
log . trace ( "[{}] [{}] entity view(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
for ( EntityView entityView : pageData . getData ( ) ) {
for ( EntityView entityView : pageData . getData ( ) ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ENTITY_VIEW , ActionType . ADDED , entityView . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ENTITY_VIEW , EdgeEvent ActionType. ADDED , entityView . getId ( ) , null ) ;
}
}
}
}
}
}
@ -261,7 +261,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
log . trace ( "[{}] [{}] dashboard(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
log . trace ( "[{}] [{}] dashboard(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
for ( DashboardInfo dashboardInfo : pageData . getData ( ) ) {
for ( DashboardInfo dashboardInfo : pageData . getData ( ) ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . DASHBOARD , ActionType . ADDED , dashboardInfo . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . DASHBOARD , EdgeEvent ActionType. ADDED , dashboardInfo . getId ( ) , null ) ;
}
}
}
}
}
}
@ -281,7 +281,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
TextPageData < User > pageData = userService . findTenantAdmins ( edge . getTenantId ( ) , new TextPageLink ( Integer . MAX_VALUE ) ) ;
TextPageData < User > pageData = userService . findTenantAdmins ( edge . getTenantId ( ) , new TextPageLink ( Integer . MAX_VALUE ) ) ;
pushUsersToEdge ( pageData , edge ) ;
pushUsersToEdge ( pageData , edge ) ;
if ( edge . getCustomerId ( ) ! = null & & ! EntityId . NULL_UUID . equals ( edge . getCustomerId ( ) . getId ( ) ) ) {
if ( edge . getCustomerId ( ) ! = null & & ! EntityId . NULL_UUID . equals ( edge . getCustomerId ( ) . getId ( ) ) ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . CUSTOMER , ActionType . ADDED , edge . getCustomerId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . CUSTOMER , EdgeEvent ActionType. ADDED , edge . getCustomerId ( ) , null ) ;
pageData = userService . findCustomerUsers ( edge . getTenantId ( ) , edge . getCustomerId ( ) , new TextPageLink ( Integer . MAX_VALUE ) ) ;
pageData = userService . findCustomerUsers ( edge . getTenantId ( ) , edge . getCustomerId ( ) , new TextPageLink ( Integer . MAX_VALUE ) ) ;
pushUsersToEdge ( pageData , edge ) ;
pushUsersToEdge ( pageData , edge ) ;
}
}
@ -297,11 +297,11 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
widgetsBundlesToPush . addAll ( widgetsBundleService . findSystemWidgetsBundles ( edge . getTenantId ( ) ) ) ;
widgetsBundlesToPush . addAll ( widgetsBundleService . findSystemWidgetsBundles ( edge . getTenantId ( ) ) ) ;
try {
try {
for ( WidgetsBundle widgetsBundle : widgetsBundlesToPush ) {
for ( WidgetsBundle widgetsBundle : widgetsBundlesToPush ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . WIDGETS_BUNDLE , ActionType . ADDED , widgetsBundle . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . WIDGETS_BUNDLE , EdgeEvent ActionType. ADDED , widgetsBundle . getId ( ) , null ) ;
widgetTypesToPush . addAll ( widgetTypeService . findWidgetTypesByTenantIdAndBundleAlias ( widgetsBundle . getTenantId ( ) , widgetsBundle . getAlias ( ) ) ) ;
widgetTypesToPush . addAll ( widgetTypeService . findWidgetTypesByTenantIdAndBundleAlias ( widgetsBundle . getTenantId ( ) , widgetsBundle . getAlias ( ) ) ) ;
}
}
for ( WidgetType widgetType : widgetTypesToPush ) {
for ( WidgetType widgetType : widgetTypesToPush ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . WIDGET_TYPE , ActionType . ADDED , widgetType . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . WIDGET_TYPE , EdgeEvent ActionType. ADDED , widgetType . getId ( ) , null ) ;
}
}
} catch ( Exception e ) {
} catch ( Exception e ) {
log . error ( "Exception during loading widgets bundle(s) and widget type(s) on sync!" , e ) ;
log . error ( "Exception during loading widgets bundle(s) and widget type(s) on sync!" , e ) ;
@ -311,13 +311,13 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
private void syncAdminSettings ( Edge edge ) {
private void syncAdminSettings ( Edge edge ) {
try {
try {
AdminSettings systemMailSettings = adminSettingsService . findAdminSettingsByKey ( TenantId . SYS_TENANT_ID , "mail" ) ;
AdminSettings systemMailSettings = adminSettingsService . findAdminSettingsByKey ( TenantId . SYS_TENANT_ID , "mail" ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , ActionType . UPDATED , null , mapper . valueToTree ( systemMailSettings ) ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , EdgeEvent ActionType. UPDATED , null , mapper . valueToTree ( systemMailSettings ) ) ;
AdminSettings tenantMailSettings = convertToTenantAdminSettings ( systemMailSettings . getKey ( ) , ( ObjectNode ) systemMailSettings . getJsonValue ( ) ) ;
AdminSettings tenantMailSettings = convertToTenantAdminSettings ( systemMailSettings . getKey ( ) , ( ObjectNode ) systemMailSettings . getJsonValue ( ) ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , ActionType . UPDATED , null , mapper . valueToTree ( tenantMailSettings ) ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , EdgeEvent ActionType. UPDATED , null , mapper . valueToTree ( tenantMailSettings ) ) ;
AdminSettings systemMailTemplates = loadMailTemplates ( ) ;
AdminSettings systemMailTemplates = loadMailTemplates ( ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , ActionType . UPDATED , null , mapper . valueToTree ( systemMailTemplates ) ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , EdgeEvent ActionType. UPDATED , null , mapper . valueToTree ( systemMailTemplates ) ) ;
AdminSettings tenantMailTemplates = convertToTenantAdminSettings ( systemMailTemplates . getKey ( ) , ( ObjectNode ) systemMailTemplates . getJsonValue ( ) ) ;
AdminSettings tenantMailTemplates = convertToTenantAdminSettings ( systemMailTemplates . getKey ( ) , ( ObjectNode ) systemMailTemplates . getJsonValue ( ) ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , ActionType . UPDATED , null , mapper . valueToTree ( tenantMailTemplates ) ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . ADMIN_SETTINGS , EdgeEvent ActionType. UPDATED , null , mapper . valueToTree ( tenantMailTemplates ) ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
log . error ( "Can't load admin settings" , e ) ;
log . error ( "Can't load admin settings" , e ) ;
}
}
@ -379,7 +379,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
if ( pageData ! = null & & pageData . getData ( ) ! = null & & ! pageData . getData ( ) . isEmpty ( ) ) {
log . trace ( "[{}] [{}] user(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
log . trace ( "[{}] [{}] user(s) are going to be pushed to edge." , edge . getId ( ) , pageData . getData ( ) . size ( ) ) ;
for ( User user : pageData . getData ( ) ) {
for ( User user : pageData . getData ( ) ) {
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . USER , ActionType . ADDED , user . getId ( ) , null ) ;
saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . USER , EdgeEvent ActionType. ADDED , user . getId ( ) , null ) ;
}
}
}
}
}
}
@ -390,7 +390,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
if ( ruleChainMetadataRequestMsg . getRuleChainIdMSB ( ) ! = 0 & & ruleChainMetadataRequestMsg . getRuleChainIdLSB ( ) ! = 0 ) {
if ( ruleChainMetadataRequestMsg . getRuleChainIdMSB ( ) ! = 0 & & ruleChainMetadataRequestMsg . getRuleChainIdLSB ( ) ! = 0 ) {
RuleChainId ruleChainId =
RuleChainId ruleChainId =
new RuleChainId ( new UUID ( ruleChainMetadataRequestMsg . getRuleChainIdMSB ( ) , ruleChainMetadataRequestMsg . getRuleChainIdLSB ( ) ) ) ;
new RuleChainId ( new UUID ( ruleChainMetadataRequestMsg . getRuleChainIdMSB ( ) , ruleChainMetadataRequestMsg . getRuleChainIdLSB ( ) ) ) ;
ListenableFuture < EdgeEvent > future = saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . RULE_CHAIN_METADATA , ActionType . ADDED , ruleChainId , null ) ;
ListenableFuture < EdgeEvent > future = saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . RULE_CHAIN_METADATA , EdgeEvent ActionType. ADDED , ruleChainId , null ) ;
Futures . addCallback ( future , new FutureCallback < EdgeEvent > ( ) {
Futures . addCallback ( future , new FutureCallback < EdgeEvent > ( ) {
@Override
@Override
public void onSuccess ( @Nullable EdgeEvent result ) {
public void onSuccess ( @Nullable EdgeEvent result ) {
@ -441,7 +441,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
saveEdgeEvent ( edge . getTenantId ( ) ,
saveEdgeEvent ( edge . getTenantId ( ) ,
edge . getId ( ) ,
edge . getId ( ) ,
type ,
type ,
ActionType . ATTRIBUTES_UPDATED ,
EdgeEvent ActionType. ATTRIBUTES_UPDATED ,
entityId ,
entityId ,
body ) ;
body ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
@ -502,7 +502,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
saveEdgeEvent ( edge . getTenantId ( ) ,
saveEdgeEvent ( edge . getTenantId ( ) ,
edge . getId ( ) ,
edge . getId ( ) ,
EdgeEventType . RELATION ,
EdgeEventType . RELATION ,
ActionType . ADDED ,
EdgeEvent ActionType. ADDED ,
null ,
null ,
mapper . valueToTree ( relation ) ) ;
mapper . valueToTree ( relation ) ) ;
}
}
@ -531,7 +531,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
SettableFuture < Void > futureToSet = SettableFuture . create ( ) ;
SettableFuture < Void > futureToSet = SettableFuture . create ( ) ;
if ( deviceCredentialsRequestMsg . getDeviceIdMSB ( ) ! = 0 & & deviceCredentialsRequestMsg . getDeviceIdLSB ( ) ! = 0 ) {
if ( deviceCredentialsRequestMsg . getDeviceIdMSB ( ) ! = 0 & & deviceCredentialsRequestMsg . getDeviceIdLSB ( ) ! = 0 ) {
DeviceId deviceId = new DeviceId ( new UUID ( deviceCredentialsRequestMsg . getDeviceIdMSB ( ) , deviceCredentialsRequestMsg . getDeviceIdLSB ( ) ) ) ;
DeviceId deviceId = new DeviceId ( new UUID ( deviceCredentialsRequestMsg . getDeviceIdMSB ( ) , deviceCredentialsRequestMsg . getDeviceIdLSB ( ) ) ) ;
ListenableFuture < EdgeEvent > future = saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . DEVICE , ActionType . CREDENTIALS_UPDATED , deviceId , null ) ;
ListenableFuture < EdgeEvent > future = saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . DEVICE , EdgeEvent ActionType. CREDENTIALS_UPDATED , deviceId , null ) ;
Futures . addCallback ( future , new FutureCallback < EdgeEvent > ( ) {
Futures . addCallback ( future , new FutureCallback < EdgeEvent > ( ) {
@Override
@Override
public void onSuccess ( @Nullable EdgeEvent result ) {
public void onSuccess ( @Nullable EdgeEvent result ) {
@ -553,7 +553,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
SettableFuture < Void > futureToSet = SettableFuture . create ( ) ;
SettableFuture < Void > futureToSet = SettableFuture . create ( ) ;
if ( userCredentialsRequestMsg . getUserIdMSB ( ) ! = 0 & & userCredentialsRequestMsg . getUserIdLSB ( ) ! = 0 ) {
if ( userCredentialsRequestMsg . getUserIdMSB ( ) ! = 0 & & userCredentialsRequestMsg . getUserIdLSB ( ) ! = 0 ) {
UserId userId = new UserId ( new UUID ( userCredentialsRequestMsg . getUserIdMSB ( ) , userCredentialsRequestMsg . getUserIdLSB ( ) ) ) ;
UserId userId = new UserId ( new UUID ( userCredentialsRequestMsg . getUserIdMSB ( ) , userCredentialsRequestMsg . getUserIdLSB ( ) ) ) ;
ListenableFuture < EdgeEvent > future = saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . USER , ActionType . CREDENTIALS_UPDATED , userId , null ) ;
ListenableFuture < EdgeEvent > future = saveEdgeEvent ( edge . getTenantId ( ) , edge . getId ( ) , EdgeEventType . USER , EdgeEvent ActionType. CREDENTIALS_UPDATED , userId , null ) ;
Futures . addCallback ( future , new FutureCallback < EdgeEvent > ( ) {
Futures . addCallback ( future , new FutureCallback < EdgeEvent > ( ) {
@Override
@Override
public void onSuccess ( @Nullable EdgeEvent result ) {
public void onSuccess ( @Nullable EdgeEvent result ) {
@ -573,7 +573,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
private ListenableFuture < EdgeEvent > saveEdgeEvent ( TenantId tenantId ,
private ListenableFuture < EdgeEvent > saveEdgeEvent ( TenantId tenantId ,
EdgeId edgeId ,
EdgeId edgeId ,
EdgeEventType type ,
EdgeEventType type ,
ActionType action ,
EdgeEvent ActionType action ,
EntityId entityId ,
EntityId entityId ,
JsonNode body ) {
JsonNode body ) {
log . debug ( "Pushing edge event to edge queue. tenantId [{}], edgeId [{}], type [{}], action[{}], entityId [{}], body [{}]" ,
log . debug ( "Pushing edge event to edge queue. tenantId [{}], edgeId [{}], type [{}], action[{}], entityId [{}], body [{}]" ,
@ -583,7 +583,7 @@ public class DefaultSyncEdgeService implements SyncEdgeService {
edgeEvent . setTenantId ( tenantId ) ;
edgeEvent . setTenantId ( tenantId ) ;
edgeEvent . setEdgeId ( edgeId ) ;
edgeEvent . setEdgeId ( edgeId ) ;
edgeEvent . setType ( type ) ;
edgeEvent . setType ( type ) ;
edgeEvent . setAction ( action . name ( ) ) ;
edgeEvent . setAction ( action ) ;
if ( entityId ! = null ) {
if ( entityId ! = null ) {
edgeEvent . setEntityId ( entityId . getId ( ) ) ;
edgeEvent . setEntityId ( entityId . getId ( ) ) ;
}
}