GEN-1662 : Fix - on dashboard soft delete, chart should not be visible (#18283)

This commit is contained in:
sonika-shah 2024-10-16 10:04:58 +05:30 committed by sonikashah
parent 4ac6111893
commit f10de7f4d2
2 changed files with 23 additions and 2 deletions

View File

@ -528,7 +528,7 @@ public class SearchRepository {
} catch (Exception ie) {
LOG.error(
String.format(
"Issue in Creating new search document for entityType [%s]. Reason[%s], Cause[%s], Stack [%s]",
"Issue in deleting new search document for entityType [%s]. Reason[%s], Cause[%s], Stack [%s]",
entityType, ie.getMessage(), ie.getCause(), ExceptionUtils.getStackTrace(ie)));
}
}
@ -637,6 +637,16 @@ public class SearchRepository {
new ImmutablePair<>(
REMOVE_TAGS_CHILDREN_SCRIPT,
Collections.singletonMap("fqn", entity.getFullyQualifiedName())));
case Entity.DASHBOARD -> {
String scriptTxt =
String.format(
"if (ctx._source.dashboards.size() == 1) { ctx._source.put('deleted', '%s') }",
true);
searchClient.softDeleteOrRestoreChildren(
indexMapping.getChildAliases(clusterAlias),
scriptTxt,
List.of(new ImmutablePair<>("dashboards.id", docId)));
}
case Entity.TEST_SUITE -> {
TestSuite testSuite = (TestSuite) entity;
if (Boolean.TRUE.equals(testSuite.getExecutable())) {
@ -687,6 +697,16 @@ public class SearchRepository {
indexMapping.getChildAliases(clusterAlias),
scriptTxt,
List.of(new ImmutablePair<>("service.id", docId)));
case Entity.DASHBOARD -> {
scriptTxt =
String.format(
"if (ctx._source.dashboards.size() == 1) { ctx._source.put('deleted', '%s') }",
delete);
searchClient.softDeleteOrRestoreChildren(
indexMapping.getChildAliases(clusterAlias),
scriptTxt,
List.of(new ImmutablePair<>("dashboards.id", docId)));
}
default -> searchClient.softDeleteOrRestoreChildren(
indexMapping.getChildAliases(clusterAlias),
scriptTxt,

View File

@ -1178,7 +1178,6 @@ public class OpenSearchClient implements SearchClient {
@SneakyThrows
public void updateSearch(UpdateRequest updateRequest) {
if (updateRequest != null) {
updateRequest.docAsUpsert(true);
updateRequest.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);
LOG.debug(SENDING_REQUEST_TO_ELASTIC_SEARCH, updateRequest);
client.update(updateRequest, RequestOptions.DEFAULT);
@ -1568,6 +1567,7 @@ public class OpenSearchClient implements SearchClient {
if (isClientAvailable) {
UpdateRequest updateRequest = new UpdateRequest(indexName, docId);
updateRequest.doc(doc, XContentType.JSON);
updateRequest.docAsUpsert(true);
updateSearch(updateRequest);
}
}
@ -1577,6 +1577,7 @@ public class OpenSearchClient implements SearchClient {
if (isClientAvailable) {
UpdateRequest updateRequest = new UpdateRequest(indexName, docId);
updateRequest.doc(doc, XContentType.JSON);
updateRequest.docAsUpsert(true);
updateSearch(updateRequest);
}
}