|
|
|
@ -30,7 +30,6 @@ import org.thingsboard.rule.engine.flow.TbRuleChainInputNode; |
|
|
|
import org.thingsboard.rule.engine.flow.TbRuleChainInputNodeConfiguration; |
|
|
|
import org.thingsboard.rule.engine.profile.TbDeviceProfileNode; |
|
|
|
import org.thingsboard.rule.engine.profile.TbDeviceProfileNodeConfiguration; |
|
|
|
import org.thingsboard.server.common.data.DashboardInfo; |
|
|
|
import org.thingsboard.server.common.data.DataConstants; |
|
|
|
import org.thingsboard.server.common.data.EntityView; |
|
|
|
import org.thingsboard.server.common.data.Tenant; |
|
|
|
@ -39,7 +38,6 @@ import org.thingsboard.server.common.data.alarm.Alarm; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmInfo; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmQuery; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmSeverity; |
|
|
|
import org.thingsboard.server.common.data.id.DashboardId; |
|
|
|
import org.thingsboard.server.common.data.id.EntityViewId; |
|
|
|
import org.thingsboard.server.common.data.id.RuleChainId; |
|
|
|
import org.thingsboard.server.common.data.id.RuleNodeId; |
|
|
|
@ -209,10 +207,6 @@ public class DefaultDataUpdateService implements DataUpdateService { |
|
|
|
log.info("Skipping edge events migration"); |
|
|
|
} |
|
|
|
break; |
|
|
|
case "3.4.4": |
|
|
|
log.info("Updating data from version 3.4.4 to 3.5.0 ..."); |
|
|
|
tenantsDashboardsFiltersUpdater.updateEntities(); |
|
|
|
break; |
|
|
|
default: |
|
|
|
throw new RuntimeException("Unable to update data, unsupported fromVersion: " + fromVersion); |
|
|
|
} |
|
|
|
@ -690,73 +684,4 @@ public class DefaultDataUpdateService implements DataUpdateService { |
|
|
|
return Boolean.parseBoolean(env); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private final PaginatedUpdater<String, Tenant> tenantsDashboardsFiltersUpdater = |
|
|
|
new PaginatedUpdater<>() { |
|
|
|
|
|
|
|
@Override |
|
|
|
protected String getName() { |
|
|
|
return "Tenants dashboards filters updater"; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected boolean forceReportTotal() { |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected PageData<Tenant> findEntities(String region, PageLink pageLink) { |
|
|
|
return tenantService.findTenants(pageLink); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void updateEntity(Tenant tenant) { |
|
|
|
updateTenantDashboardsFilters(tenant.getId()); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
private void updateTenantDashboardsFilters(TenantId tenantId) { |
|
|
|
for (String filterTypeForUpdate : DataConstants.DASHBOARD_FILTER_TYPES_FOR_UPDATE) { |
|
|
|
PageLink pageLink = new PageLink(100); |
|
|
|
PageData<DashboardInfo> pageData = dashboardService.findDashboardsByTenantIdAndConfigurationText(tenantId, filterTypeForUpdate, pageLink); |
|
|
|
boolean hasNext = true; |
|
|
|
while (hasNext) { |
|
|
|
List<ListenableFuture<List<Void>>> updateFutures = new ArrayList<>(); |
|
|
|
for (DashboardInfo dashboardInfo : pageData.getData()) { |
|
|
|
updateFutures.add(updateDashboardFilters(tenantId, dashboardInfo)); |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
Futures.allAsList(updateFutures).get(); |
|
|
|
} catch (InterruptedException | ExecutionException e) { |
|
|
|
log.error("Failed to update dashboards filters", e); |
|
|
|
} |
|
|
|
|
|
|
|
if (pageData.hasNext()) { |
|
|
|
pageLink = pageLink.nextPageLink(); |
|
|
|
pageData = dashboardService.findDashboardsByTenantIdAndConfigurationText(tenantId, filterTypeForUpdate, pageLink); |
|
|
|
} else { |
|
|
|
hasNext = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private ListenableFuture<List<Void>> updateDashboardFilters(TenantId tenantId, DashboardInfo dashboardInfo) { |
|
|
|
DashboardId dashboardId = dashboardInfo.getId(); |
|
|
|
return Futures.transform(dashboardService.findDashboardByIdAsync(tenantId, dashboardId), dashboard -> { |
|
|
|
if (dashboard == null || dashboard.getConfiguration() == null) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
try { |
|
|
|
dashboardService.saveDashboard(dashboard); |
|
|
|
} catch (Exception e) { |
|
|
|
log.warn("Failed to update dashboard filters. Dashboard {} ", dashboard, e); |
|
|
|
} |
|
|
|
return null; |
|
|
|
}, MoreExecutors.directExecutor()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|