Skip to content

Commit

Permalink
Do cleanup widgets in case fqn duplicated
Browse files Browse the repository at this point in the history
  • Loading branch information
volodymyr-babak committed Nov 23, 2023
1 parent d137071 commit 1e6e793
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ public ListenableFuture<Void> processWidgetTypeMsgFromCloud(TenantId tenantId, W
widgetTypeService.saveWidgetType(widgetTypeDetails, false);
} catch (Exception e) {
if (e instanceof DataValidationException && e.getMessage().contains("fqn already exists")) {
deleteSystemWidgetBundlesAndTypes();
deleteWidgetBundlesAndTypes(TenantId.SYS_TENANT_ID);
deleteWidgetBundlesAndTypes(tenantId);
widgetTypeService.saveWidgetType(widgetTypeDetails, false);
} else {
throw new RuntimeException(e);
Expand All @@ -97,20 +98,20 @@ public ListenableFuture<Void> processWidgetTypeMsgFromCloud(TenantId tenantId, W
return Futures.immediateFuture(null);
}

private void deleteSystemWidgetBundlesAndTypes() {
List<WidgetsBundle> systemWidgetsBundles = widgetsBundleService.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID);
private void deleteWidgetBundlesAndTypes(TenantId tenantId) {
List<WidgetsBundle> systemWidgetsBundles = widgetsBundleService.findSystemWidgetsBundles(tenantId);
for (WidgetsBundle systemWidgetsBundle : systemWidgetsBundles) {
if (systemWidgetsBundle != null) {
PageData<WidgetTypeInfo> widgetTypes;
var pageLink = new PageLink(1024);
do {
widgetTypes = widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID, systemWidgetsBundle.getId(), false, DeprecatedFilter.ALL, null, pageLink);
widgetTypes = widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(tenantId, systemWidgetsBundle.getId(), false, DeprecatedFilter.ALL, null, pageLink);
for (var widgetType : widgetTypes.getData()) {
widgetTypeService.deleteWidgetType(TenantId.SYS_TENANT_ID, widgetType.getId());
widgetTypeService.deleteWidgetType(tenantId, widgetType.getId());
}
pageLink.nextPageLink();
} while (widgetTypes.hasNext());
widgetsBundleService.deleteWidgetsBundle(TenantId.SYS_TENANT_ID, systemWidgetsBundle.getId());
widgetsBundleService.deleteWidgetsBundle(tenantId, systemWidgetsBundle.getId());
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,28 +266,35 @@ public void updateData(String fromVersion) throws Exception {
// reset full sync required - to upload latest widgets from cloud
tenantsFullSyncRequiredUpdater.updateEntities(null);

deleteSystemWidgetBundlesAndTypes();

deleteAllWidgetBundlesAndTypes();
break;
default:
throw new RuntimeException("Unable to update data, unsupported fromVersion: " + fromVersion);
}
}

private void deleteSystemWidgetBundlesAndTypes() {
List<WidgetsBundle> systemWidgetsBundles = widgetsBundleService.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID);
private void deleteAllWidgetBundlesAndTypes() {
PageData<Tenant> tenants = tenantService.findTenants(new PageLink(Integer.MAX_VALUE));
for (Tenant tenant : tenants.getData()) {
deleteWidgetBundlesAndTypes(tenant.getId());
}
deleteWidgetBundlesAndTypes(TenantId.SYS_TENANT_ID);
}

private void deleteWidgetBundlesAndTypes(TenantId tenantId) {
List<WidgetsBundle> systemWidgetsBundles = widgetsBundleService.findSystemWidgetsBundles(tenantId);
for (WidgetsBundle systemWidgetsBundle : systemWidgetsBundles) {
if (systemWidgetsBundle != null) {
PageData<WidgetTypeInfo> widgetTypes;
var pageLink = new PageLink(1024);
do {
widgetTypes = widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID, systemWidgetsBundle.getId(), false, DeprecatedFilter.ALL, null, pageLink);
widgetTypes = widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(tenantId, systemWidgetsBundle.getId(), false, DeprecatedFilter.ALL, null, pageLink);
for (var widgetType : widgetTypes.getData()) {
widgetTypeService.deleteWidgetType(TenantId.SYS_TENANT_ID, widgetType.getId());
widgetTypeService.deleteWidgetType(tenantId, widgetType.getId());
}
pageLink.nextPageLink();
} while (widgetTypes.hasNext());
widgetsBundleService.deleteWidgetsBundle(TenantId.SYS_TENANT_ID, systemWidgetsBundle.getId());
widgetsBundleService.deleteWidgetsBundle(tenantId, systemWidgetsBundle.getId());
}
}
}
Expand Down

0 comments on commit 1e6e793

Please sign in to comment.