From 3e88f1ca300a6f2f29e622fda489b9b428bddb99 Mon Sep 17 00:00:00 2001 From: Mohit Yadav <105265192+mohityadav766@users.noreply.github.com> Date: Fri, 3 Jan 2025 13:49:34 +0530 Subject: [PATCH] Onboarding Application Changes for OSS (#19203) (cherry picked from commit d60327c448a0ac0e14c11ad4976bb405437fe4c9) --- .../service/jdbi3/EntityRepository.java | 15 +++++++++++++++ .../service/jdbi3/MlModelRepository.java | 6 +++--- .../service/jdbi3/PipelineRepository.java | 4 +--- .../resources/pipelines/PipelineResource.java | 2 +- .../openmetadata/service/util/JsonUtils.java | 19 +++++++++++++++++++ 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java index b86eca1e1fe..d35e979b706 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java @@ -1155,6 +1155,21 @@ public abstract class EntityRepository { return response; } + @SuppressWarnings("unused") + @Transaction + public final DeleteResponse deleteByNameIfExists( + String updatedBy, String name, boolean recursive, boolean hardDelete) { + name = quoteFqn ? quoteName(name) : name; + T entity = findByNameOrNull(name, ALL); + if (entity != null) { + DeleteResponse response = deleteInternalByName(updatedBy, name, recursive, hardDelete); + postDelete(response.entity()); + return response; + } else { + return new DeleteResponse<>(null, ENTITY_DELETED); + } + } + @Transaction public final DeleteResponse deleteByName( String updatedBy, String name, boolean recursive, boolean hardDelete) { diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MlModelRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MlModelRepository.java index e2b582ecb7c..2937030e0e6 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MlModelRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MlModelRepository.java @@ -17,6 +17,7 @@ import static org.openmetadata.common.utils.CommonUtil.listOrEmpty; import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty; import static org.openmetadata.service.Entity.DASHBOARD; import static org.openmetadata.service.Entity.MLMODEL; +import static org.openmetadata.service.Entity.getEntityReference; import static org.openmetadata.service.resources.tags.TagLabelUtil.checkMutuallyExclusive; import static org.openmetadata.service.util.EntityUtil.entityReferenceMatch; import static org.openmetadata.service.util.EntityUtil.mlFeatureMatch; @@ -149,8 +150,7 @@ public class MlModelRepository extends EntityRepository { private void validateMlDataSource(MlFeatureSource source) { if (source.getDataSource() != null) { - Entity.getEntityReferenceById( - source.getDataSource().getType(), source.getDataSource().getId(), Include.NON_DELETED); + Entity.getEntityReference(source.getDataSource(), Include.NON_DELETED); } } @@ -211,7 +211,7 @@ public class MlModelRepository extends EntityRepository { .getFeatureSources() .forEach( mlFeatureSource -> { - EntityReference targetEntity = mlFeatureSource.getDataSource(); + EntityReference targetEntity = getEntityReference(mlFeatureSource.getDataSource(), Include.ALL); if (targetEntity != null) { addRelationship( targetEntity.getId(), diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/PipelineRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/PipelineRepository.java index bab495ad27d..2b81433ac35 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/PipelineRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/PipelineRepository.java @@ -29,7 +29,6 @@ import static org.openmetadata.service.util.EntityUtil.taskMatch; import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; import org.apache.commons.lang3.tuple.Triple; import org.jdbi.v3.sqlobject.transaction.Transaction; import org.openmetadata.schema.EntityInterface; @@ -173,8 +172,7 @@ public class PipelineRepository extends EntityRepository { PipelineStatus.class); } - public RestUtil.PutResponse addPipelineStatus( - UriInfo uriInfo, String fqn, PipelineStatus pipelineStatus) { + public RestUtil.PutResponse addPipelineStatus(String fqn, PipelineStatus pipelineStatus) { // Validate the request content Pipeline pipeline = daoCollection.pipelineDAO().findEntityByName(fqn); pipeline.setService(getContainer(pipeline.getId())); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/resources/pipelines/PipelineResource.java b/openmetadata-service/src/main/java/org/openmetadata/service/resources/pipelines/PipelineResource.java index 210a270975e..d0e97492496 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/resources/pipelines/PipelineResource.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/resources/pipelines/PipelineResource.java @@ -425,7 +425,7 @@ public class PipelineResource extends EntityResource getMapFromJson(String json) { + return (Map) (JsonUtils.readValue(json, Map.class)); + } + + @SuppressWarnings("unused") + public static T convertObjectWithFilteredFields( + Object input, Set fields, Class clazz) { + Map inputMap = JsonUtils.getMap(input); + Map result = new HashMap<>(); + for (String field : fields) { + if (inputMap.containsKey(field)) { + result.put(field, inputMap.get(field)); + } + } + return JsonUtils.convertValue(result, clazz); + } + public static JsonPatch convertFgeToJavax(com.github.fge.jsonpatch.JsonPatch fgeJsonPatch) { String jsonString = fgeJsonPatch.toString();