diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/elasticsearch/ElasticSearchEventPublisher.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/elasticsearch/ElasticSearchEventPublisher.java index 7ac2b701bd2..01abad31913 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/elasticsearch/ElasticSearchEventPublisher.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/elasticsearch/ElasticSearchEventPublisher.java @@ -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(); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/BotRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/BotRepository.java index e183a87f81d..b1dbc792784 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/BotRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/BotRepository.java @@ -68,7 +68,7 @@ public class BotRepository extends EntityRepository { public EntityReference getBotUser(Bot bot) throws IOException { List 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); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java index f50c89b6a23..eb4191e70fe 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java @@ -538,6 +538,7 @@ public abstract class EntityRepository { 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());