From 1b6e5fe780319b1ee0b4c2d1d1efdecb32e074bc Mon Sep 17 00:00:00 2001 From: sureshms Date: Thu, 21 Oct 2021 22:43:26 -0700 Subject: [PATCH] Part3 - Move common operations to EntityRepository class --- .../catalog/jdbi3/ChartRepositoryHelper.java | 6 ------ .../catalog/jdbi3/DashboardRepositoryHelper.java | 6 ------ .../catalog/jdbi3/DatabaseRepositoryHelper.java | 6 ------ .../openmetadata/catalog/jdbi3/EntityRepository.java | 6 ++++++ .../catalog/jdbi3/ModelRepositoryHelper.java | 6 ------ .../catalog/jdbi3/PipelineRepositoryHelper.java | 6 ------ .../catalog/jdbi3/TableRepositoryHelper.java | 5 ----- .../catalog/jdbi3/TaskRepositoryHelper.java | 6 ------ .../catalog/jdbi3/TeamRepositoryHelper.java | 5 ----- .../catalog/jdbi3/TopicRepositoryHelper.java | 6 ------ .../catalog/jdbi3/UserRepositoryHelper.java | 6 ------ .../catalog/resources/charts/ChartResource.java | 2 +- .../resources/dashboards/DashboardResource.java | 2 +- .../catalog/resources/databases/DatabaseResource.java | 2 +- .../catalog/resources/models/ModelResource.java | 2 +- .../catalog/resources/pipelines/PipelineResource.java | 2 +- .../catalog/resources/tasks/TaskResource.java | 2 +- .../catalog/resources/teams/TeamResource.java | 2 +- .../catalog/resources/teams/UserResource.java | 4 ++-- .../catalog/resources/topics/TopicResource.java | 2 +- .../catalog/security/DefaultCatalogAuthorizer.java | 11 ++++++----- 21 files changed, 22 insertions(+), 73 deletions(-) diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java index 7e9f31c93a5..9da0c2977ec 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java @@ -73,12 +73,6 @@ public class ChartRepositoryHelper extends EntityRepository{ return EntityUtil.listBefore(this, Chart.class, fields, serviceName, limitParam, before); } - @Transaction - public Chart getByName(String fqn, Fields fields) throws IOException { - Chart chart = repo3.chartDAO().findEntityByName(fqn); - return setFields(chart, fields); - } - @Transaction public Chart create(Chart chart) throws IOException { validateRelationships(chart); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java index 50b5d9e1fed..03e41f3cc78 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java @@ -89,12 +89,6 @@ public class DashboardRepositoryHelper extends EntityRepository { return EntityUtil.listBefore(this, Dashboard.class, fields, serviceName, limitParam, before); } - @Transaction - public Dashboard getByName(String fqn, Fields fields) throws IOException { - Dashboard dashboard = repo3.dashboardDAO().findEntityByName(fqn); - return setFields(dashboard, fields); - } - @Transaction public Dashboard create(Dashboard dashboard) throws IOException { validateRelationships(dashboard); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java index 8ce4d7bc138..f53b5a088ad 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java @@ -88,12 +88,6 @@ public class DatabaseRepositoryHelper extends EntityRepository { return EntityUtil.listBefore(this, Database.class, fields, serviceName, limitParam, before); } - @Transaction - public Database getByName(String fqn, Fields fields) throws IOException { - Database database = repo3.databaseDAO().findEntityByName(fqn); - return setFields(database, fields); - } - @Transaction public Database create(Database database) throws IOException { validateRelationships(database); 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 d627e9596fc..68fca273168 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 @@ -1,6 +1,7 @@ package org.openmetadata.catalog.jdbi3; import org.jdbi.v3.sqlobject.transaction.Transaction; +import org.openmetadata.catalog.entity.data.Table; import org.openmetadata.catalog.util.EntityUtil.Fields; import org.openmetadata.catalog.util.ResultList; @@ -44,6 +45,11 @@ public abstract class EntityRepository { return setFields(dao.findEntityById(id), fields); } + @Transaction + public final T getByName(String fqn, Fields fields) throws IOException, ParseException { + return setFields(dao.findEntityByName(fqn), fields); + } + /** * Entity related operations */ diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java index 11509eafe12..9e23b307b4a 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java @@ -108,12 +108,6 @@ public class ModelRepositoryHelper extends EntityRepository { return new ModelList(models, beforeCursor, afterCursor, total); } - @Transaction - public Model getByName(String fqn, Fields fields) throws IOException { - Model model = repo3.modelDAO().findEntityByName(fqn); - return setFields(model, fields); - } - @Transaction public Model create(Model model) throws IOException { validateRelationships(model); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java index dcdf130f3ac..873c709ca7e 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java @@ -117,12 +117,6 @@ public class PipelineRepositoryHelper extends EntityRepository { return EntityUtil.listBefore(entityRepository, Pipeline.class, fields, serviceName, limitParam, before); } - @Transaction - public Pipeline getByName(String fqn, Fields fields) throws IOException { - Pipeline pipeline = repo3.pipelineDAO().findEntityByName(fqn); - return setFields(pipeline, fields); - } - @Transaction public Pipeline create(Pipeline pipeline) throws IOException { validateRelationships(pipeline); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java index 94697dc3f57..0d2304b6b4a 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java @@ -132,11 +132,6 @@ public class TableRepositoryHelper extends EntityRepository { return EntityUtil.listBefore(this, Table.class, fields, databaseFQN, limitParam, before); } - @Transaction - public Table getByName(String fqn, Fields fields) throws IOException, ParseException { - return setFields(repo3.tableDAO().findEntityByName(fqn), fields); - } - @Transaction public Table create(Table table, UUID databaseId) throws IOException { validateRelationships(table, databaseId); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java index cb681a59b06..8de7ef111d9 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java @@ -106,12 +106,6 @@ public class TaskRepositoryHelper extends EntityRepository{ return new TaskList(tasks, beforeCursor, afterCursor, total); } - @Transaction - public Task getByName(String fqn, Fields fields) throws IOException { - Task task = repo3.taskDAO().findEntityByName(fqn); - return setFields(task, fields); - } - @Transaction public Task create(Task task) throws IOException { validateRelationships(task); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java index 9604ad676dd..6c44d792ef5 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java @@ -78,11 +78,6 @@ public class TeamRepositoryHelper extends EntityRepository { return team; } - @Transaction - public Team getByName(String name, Fields fields) throws IOException { - return setFields(repo3.teamDAO().findEntityByName(name), fields); - } - @Transaction public TeamList listAfter(Fields fields, int limitParam, String after) throws IOException, GeneralSecurityException { // Forward scrolling, either because after != null or first page is being asked diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java index 054e14af000..79e02d179b2 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java @@ -77,12 +77,6 @@ public class TopicRepositoryHelper extends EntityRepository { return EntityUtil.listBefore(this, Topic.class, fields, serviceName, limitParam, before); } - @Transaction - public Topic getByName(String fqn, Fields fields) throws IOException { - Topic topic = repo3.topicDAO().findEntityByName(fqn); - return setFields(topic, fields); - } - @Transaction public Topic create(Topic topic) throws IOException { validateRelationships(topic); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java index b3259d6e30c..6af00838011 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java @@ -101,12 +101,6 @@ public class UserRepositoryHelper extends EntityRepository { return validateUser(id); } - @Transaction - public User getByName(String name, Fields fields) throws IOException { - User user = repo3.userDAO().findEntityByName(name); - return setFields(user, fields); - } - @Transaction public User getByEmail(String email, Fields fields) throws IOException { User user = EntityUtil.validate(email, repo3.userDAO().findByEmail(email), User.class); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/charts/ChartResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/charts/ChartResource.java index fa5a33ca8bd..a28937b6ba3 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/charts/ChartResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/charts/ChartResource.java @@ -199,7 +199,7 @@ public class ChartResource { @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); Chart chart = dao.getByName(fqn, fields); addHref(uriInfo, chart); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/dashboards/DashboardResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/dashboards/DashboardResource.java index f194b501994..6c43562f643 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/dashboards/DashboardResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/dashboards/DashboardResource.java @@ -203,7 +203,7 @@ public class DashboardResource { @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); Dashboard dashboard = dao.getByName(fqn, fields); return addHref(uriInfo, dashboard); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/databases/DatabaseResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/databases/DatabaseResource.java index b329a7176e0..ec0375cf7d9 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/databases/DatabaseResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/databases/DatabaseResource.java @@ -204,7 +204,7 @@ public class DatabaseResource { @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); Database database = dao.getByName(fqn, fields); addHref(uriInfo, database); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/models/ModelResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/models/ModelResource.java index b5d3dc95ea5..62d08ab7795 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/models/ModelResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/models/ModelResource.java @@ -196,7 +196,7 @@ public class ModelResource { @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); Model model = dao.getByName(fqn, fields); return addHref(uriInfo, model); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java index 5190d6de39f..94fc4a2fac9 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java @@ -203,7 +203,7 @@ public class PipelineResource { @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); Pipeline pipeline = dao.getByName(fqn, fields); return addHref(uriInfo, pipeline); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java index fd335f92a89..4427468fa3c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java @@ -201,7 +201,7 @@ public class TaskResource { @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); Task task = dao.getByName(fqn, fields); addHref(uriInfo, task); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/TeamResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/TeamResource.java index 567d00c8727..8021a42b43a 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/TeamResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/TeamResource.java @@ -189,7 +189,7 @@ public class TeamResource { @PathParam("name") String name, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { EntityUtil.Fields fields = new EntityUtil.Fields(FIELD_LIST, fieldsParam); return addHref(uriInfo, dao.getByName(name, fields)); } diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java index ffd922ac421..dbb45f054e9 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java @@ -192,7 +192,7 @@ public class UserResource { @PathParam("name") String name, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); User user = dao.getByName(name, fields); return addHref(uriInfo, user); @@ -212,7 +212,7 @@ public class UserResource { public User getCurrentLoggedInUser(@Context UriInfo uriInfo, @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); String currentUserName = securityContext.getUserPrincipal().getName(); User user = dao.getByName(currentUserName, fields); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/topics/TopicResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/topics/TopicResource.java index 1295a83ac98..4bcb531fee8 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/topics/TopicResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/topics/TopicResource.java @@ -196,7 +196,7 @@ public class TopicResource { @Context SecurityContext securityContext, @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam) throws IOException { + @QueryParam("fields") String fieldsParam) throws IOException, ParseException { Fields fields = new Fields(FIELD_LIST, fieldsParam); Topic topic = dao.getByName(fqn, fields); addHref(uriInfo, topic); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/DefaultCatalogAuthorizer.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/DefaultCatalogAuthorizer.java index 4981e84753f..880eadb4901 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/DefaultCatalogAuthorizer.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/DefaultCatalogAuthorizer.java @@ -30,6 +30,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.text.ParseException; import java.util.Date; import java.util.HashSet; import java.util.Set; @@ -73,7 +74,7 @@ public class DefaultCatalogAuthorizer implements CatalogAuthorizer { return false; } return true; - } catch (IOException | EntityNotFoundException ex) { + } catch (IOException | EntityNotFoundException | ParseException ex) { return true; } }) @@ -92,7 +93,7 @@ public class DefaultCatalogAuthorizer implements CatalogAuthorizer { return false; } return true; - } catch (IOException |EntityNotFoundException ex) { + } catch (IOException | EntityNotFoundException | ParseException ex) { return true; } }) @@ -121,7 +122,7 @@ public class DefaultCatalogAuthorizer implements CatalogAuthorizer { return user.getName().equals(owner.getName()); } return false; - } catch (IOException |EntityNotFoundException ex) { + } catch (IOException | EntityNotFoundException | ParseException ex) { return false; } } @@ -137,7 +138,7 @@ public class DefaultCatalogAuthorizer implements CatalogAuthorizer { return false; } return user.getIsAdmin(); - } catch (IOException |EntityNotFoundException ex) { + } catch (IOException | EntityNotFoundException | ParseException ex) { return false; } } @@ -153,7 +154,7 @@ public class DefaultCatalogAuthorizer implements CatalogAuthorizer { return false; } return user.getIsBot(); - } catch (IOException |EntityNotFoundException ex) { + } catch (IOException | EntityNotFoundException | ParseException ex) { return false; } }