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 GitHub
parent 592d7396bc
commit f366827208
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 2 deletions

View File

@ -544,7 +544,7 @@ public class SearchRepository {
searchClient.deleteByScript(indexMapping.getIndexName(clusterAlias), scriptTxt, params);
} catch (Exception ie) {
LOG.error(
"Issue in Creating new search document for entityType [{}]. Reason[{}], Cause[{}], Stack [{}]",
"Issue in deleting search document for entityType [{}]. Reason[{}], Cause[{}], Stack [{}]",
entityType,
ie.getMessage(),
ie.getCause(),
@ -653,6 +653,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())) {
@ -701,6 +711,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

@ -1234,7 +1234,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);
@ -1650,6 +1649,7 @@ public class OpenSearchClient implements SearchClient {
if (isClientAvailable) {
UpdateRequest updateRequest = new UpdateRequest(indexName, docId);
updateRequest.doc(doc, XContentType.JSON);
updateRequest.docAsUpsert(true);
updateSearch(updateRequest);
}
}
@ -1659,6 +1659,7 @@ public class OpenSearchClient implements SearchClient {
if (isClientAvailable) {
UpdateRequest updateRequest = new UpdateRequest(indexName, docId);
updateRequest.doc(doc, XContentType.JSON);
updateRequest.docAsUpsert(true);
updateSearch(updateRequest);
}
}