chore: added cache miss solution (#33193)
This commit is contained in:
parent
a490128c5d
commit
2d1e292a2e
|
|
@ -374,6 +374,11 @@ public class DatasourceContextServiceCEImpl implements DatasourceContextServiceC
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* removes the datasource context entry from the contextMaps. may return an empty mono
|
||||
* @param datasourceStorage
|
||||
* @return removed datasourceContext
|
||||
*/
|
||||
@Override
|
||||
public Mono<DatasourceContext<?>> deleteDatasourceContext(DatasourceStorage datasourceStorage) {
|
||||
|
||||
|
|
@ -390,11 +395,19 @@ public class DatasourceContextServiceCEImpl implements DatasourceContextServiceC
|
|||
}
|
||||
return pluginExecutorHelper
|
||||
.getPluginExecutor(pluginService.findById(datasourceStorage.getPluginId()))
|
||||
.map(pluginExecutor -> {
|
||||
.flatMap(pluginExecutor -> {
|
||||
log.info("Clearing datasource context for datasource storage ID {}.", datasourceStorage.getId());
|
||||
pluginExecutor.datasourceDestroy(datasourceContext.getConnection());
|
||||
datasourceContextMonoMap.remove(datasourceContextIdentifier);
|
||||
return datasourceContextMap.remove(datasourceContextIdentifier);
|
||||
|
||||
if (!datasourceContextMap.containsKey(datasourceContextIdentifier)) {
|
||||
log.info(
|
||||
"datasourceContextMap does not contain any entry for datasource storage with id: {} ",
|
||||
datasourceStorage.getId());
|
||||
return Mono.empty();
|
||||
}
|
||||
|
||||
return Mono.just(datasourceContextMap.remove(datasourceContextIdentifier));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -754,4 +754,23 @@ public class DatasourceContextServiceTest {
|
|||
})
|
||||
.verify();
|
||||
}
|
||||
|
||||
@Test
|
||||
@WithUserDetails(value = "api_user")
|
||||
public void verifyDeleteDatasourceContext_whenContextDoesNotExist_returnsEmptyMono() {
|
||||
|
||||
String sampleDatasourceId = UUID.randomUUID().toString();
|
||||
String samplePluginId = UUID.randomUUID().toString();
|
||||
|
||||
DatasourceStorage datasourceStorage = new DatasourceStorage();
|
||||
datasourceStorage.setDatasourceId(sampleDatasourceId);
|
||||
datasourceStorage.setEnvironmentId(defaultEnvironmentId);
|
||||
datasourceStorage.setPluginId(samplePluginId);
|
||||
|
||||
MockPluginExecutor mockPluginExecutor = new MockPluginExecutor();
|
||||
MockPluginExecutor spyMockPluginExecutor = spy(mockPluginExecutor);
|
||||
StepVerifier.create(datasourceContextService.deleteDatasourceContext(datasourceStorage))
|
||||
.expectNextCount(0)
|
||||
.verifyComplete();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user