chore: removal of transfer solution (#25288)
This commit is contained in:
parent
fe59f0196e
commit
e9dae0102d
|
|
@ -4,7 +4,6 @@ import com.appsmith.server.helpers.PluginExecutorHelper;
|
|||
import com.appsmith.server.repositories.DatasourceStorageRepository;
|
||||
import com.appsmith.server.services.ce.DatasourceStorageServiceCEImpl;
|
||||
import com.appsmith.server.solutions.DatasourcePermission;
|
||||
import com.appsmith.server.solutions.DatasourceStorageTransferSolution;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -13,17 +12,10 @@ import org.springframework.stereotype.Service;
|
|||
public class DatasourceStorageServiceImpl extends DatasourceStorageServiceCEImpl implements DatasourceStorageService {
|
||||
public DatasourceStorageServiceImpl(
|
||||
DatasourceStorageRepository repository,
|
||||
DatasourceStorageTransferSolution datasourceStorageTransferSolution,
|
||||
DatasourcePermission datasourcePermission,
|
||||
PluginService pluginService,
|
||||
PluginExecutorHelper pluginExecutorHelper,
|
||||
AnalyticsService analyticsService) {
|
||||
super(
|
||||
repository,
|
||||
datasourceStorageTransferSolution,
|
||||
datasourcePermission,
|
||||
pluginService,
|
||||
pluginExecutorHelper,
|
||||
analyticsService);
|
||||
super(repository, datasourcePermission, pluginService, pluginExecutorHelper, analyticsService);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,11 +16,7 @@ import com.appsmith.server.repositories.DatasourceStorageRepository;
|
|||
import com.appsmith.server.services.AnalyticsService;
|
||||
import com.appsmith.server.services.PluginService;
|
||||
import com.appsmith.server.solutions.DatasourcePermission;
|
||||
import com.appsmith.server.solutions.DatasourceStorageTransferSolution;
|
||||
import com.mongodb.MongoServerException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.data.mongodb.UncategorizedMongoDbException;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
import reactor.core.publisher.Flux;
|
||||
|
|
@ -39,7 +35,6 @@ import static java.lang.Boolean.TRUE;
|
|||
public class DatasourceStorageServiceCEImpl implements DatasourceStorageServiceCE {
|
||||
|
||||
protected final DatasourceStorageRepository repository;
|
||||
private final DatasourceStorageTransferSolution datasourceStorageTransferSolution;
|
||||
private final DatasourcePermission datasourcePermission;
|
||||
private final PluginService pluginService;
|
||||
private final PluginExecutorHelper pluginExecutorHelper;
|
||||
|
|
@ -47,13 +42,11 @@ public class DatasourceStorageServiceCEImpl implements DatasourceStorageServiceC
|
|||
|
||||
public DatasourceStorageServiceCEImpl(
|
||||
DatasourceStorageRepository repository,
|
||||
DatasourceStorageTransferSolution datasourceStorageTransferSolution,
|
||||
DatasourcePermission datasourcePermission,
|
||||
PluginService pluginService,
|
||||
PluginExecutorHelper pluginExecutorHelper,
|
||||
AnalyticsService analyticsService) {
|
||||
this.repository = repository;
|
||||
this.datasourceStorageTransferSolution = datasourceStorageTransferSolution;
|
||||
this.datasourcePermission = datasourcePermission;
|
||||
this.pluginService = pluginService;
|
||||
this.pluginExecutorHelper = pluginExecutorHelper;
|
||||
|
|
@ -86,21 +79,8 @@ public class DatasourceStorageServiceCEImpl implements DatasourceStorageServiceC
|
|||
datasourceStorage.prepareTransientFields(datasource);
|
||||
return datasourceStorage;
|
||||
})
|
||||
// TODO: This is a temporary call being made till storage transfer migrations are done
|
||||
.switchIfEmpty(Mono.defer(() ->
|
||||
datasourceStorageTransferSolution.transferAndGetDatasourceStorage(datasource, environmentId)))
|
||||
.onErrorResume(
|
||||
e -> e instanceof DuplicateKeyException
|
||||
|| e instanceof MongoServerException
|
||||
|| e instanceof UncategorizedMongoDbException,
|
||||
error -> {
|
||||
if (error.getMessage() != null
|
||||
&& error.getMessage().contains("datasource_storage_compound_index")) {
|
||||
// The duplicate key error is because of the `name` field.
|
||||
return findByDatasourceAndEnvironmentId(datasource, environmentId);
|
||||
}
|
||||
return Mono.error(error);
|
||||
});
|
||||
.switchIfEmpty(
|
||||
Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.DATASOURCE)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -112,22 +92,12 @@ public class DatasourceStorageServiceCEImpl implements DatasourceStorageServiceC
|
|||
@Override
|
||||
public Flux<DatasourceStorage> findByDatasource(Datasource datasource) {
|
||||
return this.findByDatasourceId(datasource.getId())
|
||||
// TODO: This is a temporary call being made till storage transfer migrations are done
|
||||
.switchIfEmpty(Mono.defer(
|
||||
() -> datasourceStorageTransferSolution.transferToFallbackEnvironmentAndGetDatasourceStorage(
|
||||
datasource)))
|
||||
.onErrorResume(
|
||||
e -> e instanceof DuplicateKeyException
|
||||
|| e instanceof MongoServerException
|
||||
|| e instanceof UncategorizedMongoDbException,
|
||||
error -> {
|
||||
if (error.getMessage() != null
|
||||
&& error.getMessage().contains("datasource_storage_compound_index")) {
|
||||
// The duplicate key error is because of the `name` field.
|
||||
return findByDatasource(datasource);
|
||||
}
|
||||
return Mono.error(error);
|
||||
});
|
||||
.map(datasourceStorage -> {
|
||||
datasourceStorage.prepareTransientFields(datasource);
|
||||
return datasourceStorage;
|
||||
})
|
||||
.switchIfEmpty(
|
||||
Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.DATASOURCE)));
|
||||
}
|
||||
|
||||
protected Mono<DatasourceStorage> findByDatasourceIdAndEnvironmentId(String datasourceId, String environmentId) {
|
||||
|
|
|
|||
|
|
@ -35,8 +35,7 @@ public class ActionExecutionSolutionImpl extends ActionExecutionSolutionCEImpl i
|
|||
AuthenticationValidator authenticationValidator,
|
||||
DatasourcePermission datasourcePermission,
|
||||
AnalyticsService analyticsService,
|
||||
DatasourceStorageService datasourceStorageService,
|
||||
DatasourceStorageTransferSolution datasourceStorageTransferSolution) {
|
||||
DatasourceStorageService datasourceStorageService) {
|
||||
super(
|
||||
newActionService,
|
||||
actionPermission,
|
||||
|
|
@ -53,7 +52,6 @@ public class ActionExecutionSolutionImpl extends ActionExecutionSolutionCEImpl i
|
|||
authenticationValidator,
|
||||
datasourcePermission,
|
||||
analyticsService,
|
||||
datasourceStorageService,
|
||||
datasourceStorageTransferSolution);
|
||||
datasourceStorageService);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
package com.appsmith.server.solutions;
|
||||
|
||||
import com.appsmith.server.solutions.ce.DatasourceStorageTransferSolutionCE;
|
||||
|
||||
public interface DatasourceStorageTransferSolution extends DatasourceStorageTransferSolutionCE {}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
package com.appsmith.server.solutions;
|
||||
|
||||
import com.appsmith.server.repositories.DatasourceRepository;
|
||||
import com.appsmith.server.repositories.DatasourceStorageRepository;
|
||||
import com.appsmith.server.services.WorkspaceService;
|
||||
import com.appsmith.server.solutions.ce.DatasourceStorageTransferSolutionCEImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DatasourceStorageTransferSolutionImpl extends DatasourceStorageTransferSolutionCEImpl
|
||||
implements DatasourceStorageTransferSolution {
|
||||
public DatasourceStorageTransferSolutionImpl(
|
||||
DatasourceRepository datasourceRepository,
|
||||
DatasourceStorageRepository datasourceStorageRepository,
|
||||
WorkspaceService workspaceService) {
|
||||
super(datasourceRepository, datasourceStorageRepository, workspaceService);
|
||||
}
|
||||
}
|
||||
|
|
@ -41,7 +41,6 @@ import com.appsmith.server.services.PluginService;
|
|||
import com.appsmith.server.services.SessionUserService;
|
||||
import com.appsmith.server.solutions.ActionPermission;
|
||||
import com.appsmith.server.solutions.DatasourcePermission;
|
||||
import com.appsmith.server.solutions.DatasourceStorageTransferSolution;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
|
|
@ -122,7 +121,6 @@ public class ActionExecutionSolutionCEImpl implements ActionExecutionSolutionCE
|
|||
static final String EXECUTE_ACTION_DTO = "executeActionDTO";
|
||||
static final String PARAMETER_MAP = "parameterMap";
|
||||
List<Pattern> patternList = new ArrayList<>();
|
||||
private DatasourceStorageTransferSolution datasourceStorageTransferSolution;
|
||||
|
||||
public ActionExecutionSolutionCEImpl(
|
||||
NewActionService newActionService,
|
||||
|
|
@ -140,8 +138,7 @@ public class ActionExecutionSolutionCEImpl implements ActionExecutionSolutionCE
|
|||
AuthenticationValidator authenticationValidator,
|
||||
DatasourcePermission datasourcePermission,
|
||||
AnalyticsService analyticsService,
|
||||
DatasourceStorageService datasourceStorageService,
|
||||
DatasourceStorageTransferSolution datasourceStorageTransferSolution) {
|
||||
DatasourceStorageService datasourceStorageService) {
|
||||
this.newActionService = newActionService;
|
||||
this.actionPermission = actionPermission;
|
||||
this.observationRegistry = observationRegistry;
|
||||
|
|
@ -158,7 +155,6 @@ public class ActionExecutionSolutionCEImpl implements ActionExecutionSolutionCE
|
|||
this.datasourcePermission = datasourcePermission;
|
||||
this.analyticsService = analyticsService;
|
||||
this.datasourceStorageService = datasourceStorageService;
|
||||
this.datasourceStorageTransferSolution = datasourceStorageTransferSolution;
|
||||
|
||||
this.patternList.add(Pattern.compile(PARAM_KEY_REGEX));
|
||||
this.patternList.add(Pattern.compile(BLOB_KEY_REGEX));
|
||||
|
|
@ -508,9 +504,8 @@ public class ActionExecutionSolutionCEImpl implements ActionExecutionSolutionCE
|
|||
} else if (datasource == null) {
|
||||
datasourceStorageMono = Mono.empty();
|
||||
} else {
|
||||
// For embedded datasources, we are simply relying on datasource configuration property
|
||||
datasourceStorageMono = Mono.just(datasourceStorageTransferSolution.initializeDatasourceStorage(
|
||||
datasource, environmentId));
|
||||
// For embedded datasource, we are simply relying on datasource configuration property
|
||||
datasourceStorageMono = Mono.just(new DatasourceStorage(datasource, environmentId));
|
||||
}
|
||||
|
||||
return datasourceStorageMono
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
package com.appsmith.server.solutions.ce;
|
||||
|
||||
import com.appsmith.external.models.Datasource;
|
||||
import com.appsmith.external.models.DatasourceStorage;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface DatasourceStorageTransferSolutionCE {
|
||||
DatasourceStorage initializeDatasourceStorage(Datasource datasource, String environmentId);
|
||||
|
||||
Mono<DatasourceStorage> transferAndGetDatasourceStorage(Datasource datasource, String environmentId);
|
||||
|
||||
Mono<DatasourceStorage> transferToFallbackEnvironmentAndGetDatasourceStorage(Datasource datasource);
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
package com.appsmith.server.solutions.ce;
|
||||
|
||||
import com.appsmith.external.models.Datasource;
|
||||
import com.appsmith.external.models.DatasourceStorage;
|
||||
import com.appsmith.server.constants.FieldName;
|
||||
import com.appsmith.server.repositories.DatasourceRepository;
|
||||
import com.appsmith.server.repositories.DatasourceStorageRepository;
|
||||
import com.appsmith.server.services.WorkspaceService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.util.function.Tuple2;
|
||||
|
||||
@Slf4j
|
||||
public class DatasourceStorageTransferSolutionCEImpl implements DatasourceStorageTransferSolutionCE {
|
||||
|
||||
private final DatasourceRepository datasourceRepository;
|
||||
|
||||
private final DatasourceStorageRepository datasourceStorageRepository;
|
||||
private final WorkspaceService workspaceService;
|
||||
|
||||
public DatasourceStorageTransferSolutionCEImpl(
|
||||
DatasourceRepository datasourceRepository,
|
||||
DatasourceStorageRepository datasourceStorageRepository,
|
||||
WorkspaceService workspaceService) {
|
||||
this.datasourceRepository = datasourceRepository;
|
||||
this.datasourceStorageRepository = datasourceStorageRepository;
|
||||
this.workspaceService = workspaceService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasourceStorage initializeDatasourceStorage(Datasource datasource, String environmentId) {
|
||||
return new DatasourceStorage(datasource, FieldName.UNUSED_ENVIRONMENT_ID);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public Mono<DatasourceStorage> transferAndGetDatasourceStorage(Datasource datasource, String environmentId) {
|
||||
return this.transferDatasourceStorage(datasource, environmentId);
|
||||
}
|
||||
|
||||
@NotNull private Mono<DatasourceStorage> transferDatasourceStorage(Datasource datasource, String environmentId) {
|
||||
final DatasourceStorage datasourceStorage = this.initializeDatasourceStorage(datasource, environmentId);
|
||||
datasource.setDatasourceConfiguration(null);
|
||||
datasource.setInvalids(null);
|
||||
datasource.setHasDatasourceStorage(true);
|
||||
return datasourceStorageRepository
|
||||
.save(datasourceStorage)
|
||||
.zipWhen(datasourceStorage1 -> datasourceRepository.save(datasource))
|
||||
.map(Tuple2::getT1);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public Mono<DatasourceStorage> transferToFallbackEnvironmentAndGetDatasourceStorage(Datasource datasource) {
|
||||
|
||||
return workspaceService
|
||||
.getDefaultEnvironmentId(datasource.getWorkspaceId())
|
||||
.flatMap(environmentId -> transferDatasourceStorage(datasource, environmentId));
|
||||
}
|
||||
}
|
||||
|
|
@ -146,19 +146,19 @@ public class DatasourceTriggerSolutionTest {
|
|||
Mockito.when(datasourceStructureSolution.getStructure(Mockito.anyString(), Mockito.anyBoolean(), Mockito.any()))
|
||||
.thenReturn(Mono.just(testStructure));
|
||||
|
||||
Datasource datasource = datasourceService
|
||||
datasourceService
|
||||
.findById(datasourceId, datasourcePermission.getReadPermission())
|
||||
.block();
|
||||
Mockito.doReturn(Mono.just(Boolean.TRUE)).when(featureFlagService).check(Mockito.any());
|
||||
|
||||
Mono<TriggerResultDTO> tableNameMono = datasourceTriggerSolution.trigger(
|
||||
datasourceId,
|
||||
null,
|
||||
defaultEnvironmentId,
|
||||
new TriggerRequestDTO("ENTITY_SELECTOR", Map.of(), ClientDataDisplayType.DROP_DOWN));
|
||||
|
||||
Mono<TriggerResultDTO> columnNamesMono = datasourceTriggerSolution.trigger(
|
||||
datasourceId,
|
||||
null,
|
||||
defaultEnvironmentId,
|
||||
new TriggerRequestDTO(
|
||||
"ENTITY_SELECTOR", Map.of("tableName", "Table1"), ClientDataDisplayType.DROP_DOWN));
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import com.appsmith.server.services.PluginService;
|
|||
import com.appsmith.server.services.SessionUserService;
|
||||
import com.appsmith.server.solutions.ActionPermission;
|
||||
import com.appsmith.server.solutions.DatasourcePermission;
|
||||
import com.appsmith.server.solutions.DatasourceStorageTransferSolution;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.micrometer.observation.ObservationRegistry;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
|
@ -123,9 +122,6 @@ class ActionExecutionSolutionCEImplTest {
|
|||
@MockBean
|
||||
DatasourceStorageService datasourceStorageService;
|
||||
|
||||
@MockBean
|
||||
DatasourceStorageTransferSolution datasourceStorageTransferSolution;
|
||||
|
||||
private BodyExtractor.Context context;
|
||||
|
||||
private Map<String, Object> hints;
|
||||
|
|
@ -148,8 +144,7 @@ class ActionExecutionSolutionCEImplTest {
|
|||
authenticationValidator,
|
||||
datasourcePermission,
|
||||
analyticsService,
|
||||
datasourceStorageService,
|
||||
datasourceStorageTransferSolution);
|
||||
datasourceStorageService);
|
||||
|
||||
ObservationRegistry.ObservationConfig mockObservationConfig =
|
||||
Mockito.mock(ObservationRegistry.ObservationConfig.class);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user