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.DashboardService;
|
||||||
import org.openmetadata.catalog.entity.services.DatabaseService;
|
import org.openmetadata.catalog.entity.services.DatabaseService;
|
||||||
import org.openmetadata.catalog.entity.services.MessagingService;
|
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.services.PipelineService;
|
||||||
import org.openmetadata.catalog.entity.tags.Tag;
|
import org.openmetadata.catalog.entity.tags.Tag;
|
||||||
import org.openmetadata.catalog.entity.teams.Team;
|
import org.openmetadata.catalog.entity.teams.Team;
|
||||||
@ -138,6 +139,9 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
|||||||
case Entity.PIPELINE_SERVICE:
|
case Entity.PIPELINE_SERVICE:
|
||||||
updatePipelineService(event);
|
updatePipelineService(event);
|
||||||
break;
|
break;
|
||||||
|
case Entity.MLMODEL_SERVICE:
|
||||||
|
updateMlModelService(event);
|
||||||
|
break;
|
||||||
case Entity.MLMODEL:
|
case Entity.MLMODEL:
|
||||||
updateMlModel(event);
|
updateMlModel(event);
|
||||||
break;
|
break;
|
||||||
@ -527,7 +531,7 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
|||||||
DeleteByQueryRequest request = new DeleteByQueryRequest(ElasticSearchIndexType.TABLE_SEARCH_INDEX.indexName);
|
DeleteByQueryRequest request = new DeleteByQueryRequest(ElasticSearchIndexType.TABLE_SEARCH_INDEX.indexName);
|
||||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||||
queryBuilder.must(new TermQueryBuilder("database.name", database.getName()));
|
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);
|
request.setQuery(queryBuilder);
|
||||||
deleteEntityFromElasticSearchByQuery(request);
|
deleteEntityFromElasticSearchByQuery(request);
|
||||||
}
|
}
|
||||||
@ -549,7 +553,7 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
|||||||
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
||||||
DatabaseService databaseService = (DatabaseService) event.getEntity();
|
DatabaseService databaseService = (DatabaseService) event.getEntity();
|
||||||
DeleteByQueryRequest request = new DeleteByQueryRequest(ElasticSearchIndexType.TABLE_SEARCH_INDEX.indexName);
|
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);
|
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 {
|
private void updateMessagingService(ChangeEvent event) throws IOException {
|
||||||
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
||||||
MessagingService messagingService = (MessagingService) event.getEntity();
|
MessagingService messagingService = (MessagingService) event.getEntity();
|
||||||
|
@ -68,7 +68,7 @@ public class BotRepository extends EntityRepository<Bot> {
|
|||||||
|
|
||||||
public EntityReference getBotUser(Bot bot) throws IOException {
|
public EntityReference getBotUser(Bot bot) throws IOException {
|
||||||
List<String> refs = findTo(bot.getId(), Entity.BOT, Relationship.CONTAINS, Entity.USER);
|
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()
|
return refs.isEmpty()
|
||||||
? null
|
? null
|
||||||
: daoCollection.userDAO().findEntityReferenceById(UUID.fromString(refs.get(0)), Include.ALL);
|
: daoCollection.userDAO().findEntityReferenceById(UUID.fromString(refs.get(0)), Include.ALL);
|
||||||
|
@ -538,6 +538,7 @@ public abstract class EntityRepository<T extends EntityInterface> {
|
|||||||
|
|
||||||
String changeType;
|
String changeType;
|
||||||
T updated = JsonUtils.readValue(json, entityClass);
|
T updated = JsonUtils.readValue(json, entityClass);
|
||||||
|
setFields(updated, putFields); // we need service, database, databaseSchema to delete properly from ES.
|
||||||
if (supportsSoftDelete && !hardDelete) {
|
if (supportsSoftDelete && !hardDelete) {
|
||||||
updated.setUpdatedBy(updatedBy);
|
updated.setUpdatedBy(updatedBy);
|
||||||
updated.setUpdatedAt(System.currentTimeMillis());
|
updated.setUpdatedAt(System.currentTimeMillis());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user