mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-23 07:51:44 +00:00
* Fix #5761: Delete is not working at database and service level * Fix failing test
This commit is contained in:
parent
e0a97d7944
commit
f3f45bc174
@ -56,6 +56,7 @@ import org.openmetadata.catalog.entity.data.Topic;
|
||||
import org.openmetadata.catalog.entity.services.DashboardService;
|
||||
import org.openmetadata.catalog.entity.services.DatabaseService;
|
||||
import org.openmetadata.catalog.entity.services.MessagingService;
|
||||
import org.openmetadata.catalog.entity.services.MlModelService;
|
||||
import org.openmetadata.catalog.entity.services.PipelineService;
|
||||
import org.openmetadata.catalog.entity.tags.Tag;
|
||||
import org.openmetadata.catalog.entity.teams.Team;
|
||||
@ -138,6 +139,9 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
||||
case Entity.PIPELINE_SERVICE:
|
||||
updatePipelineService(event);
|
||||
break;
|
||||
case Entity.MLMODEL_SERVICE:
|
||||
updateMlModelService(event);
|
||||
break;
|
||||
case Entity.MLMODEL:
|
||||
updateMlModel(event);
|
||||
break;
|
||||
@ -527,7 +531,7 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
||||
DeleteByQueryRequest request = new DeleteByQueryRequest(ElasticSearchIndexType.TABLE_SEARCH_INDEX.indexName);
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
queryBuilder.must(new TermQueryBuilder("database.name", database.getName()));
|
||||
queryBuilder.must(new TermQueryBuilder("service.name", database.getService()));
|
||||
queryBuilder.must(new TermQueryBuilder("service.name", database.getService().getName()));
|
||||
request.setQuery(queryBuilder);
|
||||
deleteEntityFromElasticSearchByQuery(request);
|
||||
}
|
||||
@ -549,7 +553,7 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
||||
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
||||
DatabaseService databaseService = (DatabaseService) event.getEntity();
|
||||
DeleteByQueryRequest request = new DeleteByQueryRequest(ElasticSearchIndexType.TABLE_SEARCH_INDEX.indexName);
|
||||
request.setQuery(new TermQueryBuilder(Entity.FIELD_SERVICE, databaseService.getName()));
|
||||
request.setQuery(new TermQueryBuilder("service.name", databaseService.getName()));
|
||||
deleteEntityFromElasticSearchByQuery(request);
|
||||
}
|
||||
}
|
||||
@ -563,6 +567,15 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
||||
}
|
||||
}
|
||||
|
||||
private void updateMlModelService(ChangeEvent event) throws IOException {
|
||||
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
||||
MlModelService mlModelService = (MlModelService) event.getEntity();
|
||||
DeleteByQueryRequest request = new DeleteByQueryRequest(ElasticSearchIndexType.MLMODEL_SEARCH_INDEX.indexName);
|
||||
request.setQuery(new TermQueryBuilder("service.name", mlModelService.getName()));
|
||||
deleteEntityFromElasticSearchByQuery(request);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateMessagingService(ChangeEvent event) throws IOException {
|
||||
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
||||
MessagingService messagingService = (MessagingService) event.getEntity();
|
||||
|
@ -68,7 +68,7 @@ public class BotRepository extends EntityRepository<Bot> {
|
||||
|
||||
public EntityReference getBotUser(Bot bot) throws IOException {
|
||||
List<String> refs = findTo(bot.getId(), Entity.BOT, Relationship.CONTAINS, Entity.USER);
|
||||
ensureSingleRelationship(Entity.BOT, bot.getId(), refs, "botUser", true);
|
||||
ensureSingleRelationship(Entity.BOT, bot.getId(), refs, "botUser", false);
|
||||
return refs.isEmpty()
|
||||
? null
|
||||
: daoCollection.userDAO().findEntityReferenceById(UUID.fromString(refs.get(0)), Include.ALL);
|
||||
|
@ -538,6 +538,7 @@ public abstract class EntityRepository<T extends EntityInterface> {
|
||||
|
||||
String changeType;
|
||||
T updated = JsonUtils.readValue(json, entityClass);
|
||||
setFields(updated, putFields); // we need service, database, databaseSchema to delete properly from ES.
|
||||
if (supportsSoftDelete && !hardDelete) {
|
||||
updated.setUpdatedBy(updatedBy);
|
||||
updated.setUpdatedAt(System.currentTimeMillis());
|
||||
|
Loading…
x
Reference in New Issue
Block a user