asset profile upgrade improvements
This commit is contained in:
parent
0849aa722f
commit
71d26ba18b
@ -41,6 +41,7 @@ import org.thingsboard.server.dao.device.DeviceProfileService;
|
|||||||
import org.thingsboard.server.dao.device.DeviceService;
|
import org.thingsboard.server.dao.device.DeviceService;
|
||||||
import org.thingsboard.server.dao.model.sql.TbPair;
|
import org.thingsboard.server.dao.model.sql.TbPair;
|
||||||
import org.thingsboard.server.dao.queue.QueueService;
|
import org.thingsboard.server.dao.queue.QueueService;
|
||||||
|
import org.thingsboard.server.dao.sql.tenant.TenantRepository;
|
||||||
import org.thingsboard.server.dao.tenant.TenantService;
|
import org.thingsboard.server.dao.tenant.TenantService;
|
||||||
import org.thingsboard.server.dao.usagerecord.ApiUsageStateService;
|
import org.thingsboard.server.dao.usagerecord.ApiUsageStateService;
|
||||||
import org.thingsboard.server.queue.settings.TbRuleEngineQueueConfiguration;
|
import org.thingsboard.server.queue.settings.TbRuleEngineQueueConfiguration;
|
||||||
@ -111,6 +112,9 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TenantService tenantService;
|
private TenantService tenantService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TenantRepository tenantRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DeviceService deviceService;
|
private DeviceService deviceService;
|
||||||
|
|
||||||
@ -628,29 +632,41 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService
|
|||||||
PageLink pageLink = new PageLink(1000);
|
PageLink pageLink = new PageLink(1000);
|
||||||
PageData<TbPair<UUID, String>> pageData;
|
PageData<TbPair<UUID, String>> pageData;
|
||||||
List<ListenableFuture<?>> futures = new ArrayList<>();
|
List<ListenableFuture<?>> futures = new ArrayList<>();
|
||||||
Set<TenantId> tenants = new HashSet<>();
|
Set<UUID> tenants = new HashSet<>();
|
||||||
do {
|
do {
|
||||||
pageData = assetDao.getAllAssetTypes(pageLink);
|
pageData = assetDao.getAllAssetTypes(pageLink);
|
||||||
for (TbPair<UUID, String> pair : pageData.getData()) {
|
for (TbPair<UUID, String> pair : pageData.getData()) {
|
||||||
TenantId tenantId = new TenantId(pair.getFirst());
|
TenantId tenantId = new TenantId(pair.getFirst());
|
||||||
String assetType = pair.getSecond();
|
String assetType = pair.getSecond();
|
||||||
if (tenants.add(tenantId)) {
|
if (tenants.add(pair.getFirst())) {
|
||||||
|
futures.add(dbUpgradeExecutor.submit(() -> {
|
||||||
try {
|
try {
|
||||||
futures.add(dbUpgradeExecutor.submit(() ->
|
assetProfileService.createDefaultAssetProfile(tenantId);
|
||||||
assetProfileService.createDefaultAssetProfile(tenantId)));
|
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!"default".equals(assetType)) {
|
if (!"default".equals(assetType)) {
|
||||||
|
futures.add(dbUpgradeExecutor.submit(() -> {
|
||||||
try {
|
try {
|
||||||
futures.add(dbUpgradeExecutor.submit(() ->
|
assetProfileService.findOrCreateAssetProfile(tenantId, assetType);
|
||||||
assetProfileService.findOrCreateAssetProfile(tenantId, assetType)));
|
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pageLink = pageLink.nextPageLink();
|
pageLink = pageLink.nextPageLink();
|
||||||
} while (pageData.hasNext());
|
} while (pageData.hasNext());
|
||||||
|
|
||||||
|
List<UUID> tenantsWithoutProfiles = tenantRepository.getIdsNotIn(tenants);
|
||||||
|
|
||||||
|
tenantsWithoutProfiles.forEach(uuid ->
|
||||||
|
futures.add(dbUpgradeExecutor.submit(() -> {
|
||||||
|
try {
|
||||||
|
assetProfileService.createDefaultAssetProfile(TenantId.fromUUID(uuid));
|
||||||
|
} catch (Exception e) {}
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
Futures.allAsList(futures).get();
|
Futures.allAsList(futures).get();
|
||||||
|
|
||||||
log.info("Updating asset profiles...");
|
log.info("Updating asset profiles...");
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import org.thingsboard.server.dao.model.sql.TenantEntity;
|
|||||||
import org.thingsboard.server.dao.model.sql.TenantInfoEntity;
|
import org.thingsboard.server.dao.model.sql.TenantInfoEntity;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,4 +55,7 @@ public interface TenantRepository extends JpaRepository<TenantEntity, UUID> {
|
|||||||
@Query("SELECT t.id FROM TenantEntity t where t.tenantProfileId = :tenantProfileId")
|
@Query("SELECT t.id FROM TenantEntity t where t.tenantProfileId = :tenantProfileId")
|
||||||
List<UUID> findTenantIdsByTenantProfileId(@Param("tenantProfileId") UUID tenantProfileId);
|
List<UUID> findTenantIdsByTenantProfileId(@Param("tenantProfileId") UUID tenantProfileId);
|
||||||
|
|
||||||
|
@Query("SELECT t.id FROM TenantEntity t WHERE t.id NOT IN :ids")
|
||||||
|
List<UUID> getIdsNotIn(@Param("ids")Set<UUID> ids);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user