From 1291bf6ec07c6d94a92c90d0edc2b0398d30e748 Mon Sep 17 00:00:00 2001
From: Pere Miquel Brull
Date: Sun, 24 Oct 2021 19:26:28 +0200
Subject: [PATCH] [Issue-892] - GET operations return service (#916)
* Force image build in local docker
* Use service as default field query param for entities with required service
* Return service in List
* Naming convention
* Update Repository setFields to include service
* Revert resource changes
* Revert resource changes
* Update tests to check we always return the service, even if not specified
* Return service for database
---
.../java/org/openmetadata/catalog/jdbi3/ChartRepository.java | 2 +-
.../org/openmetadata/catalog/jdbi3/DashboardRepository.java | 2 +-
.../org/openmetadata/catalog/jdbi3/DatabaseRepository.java | 2 +-
.../org/openmetadata/catalog/jdbi3/PipelineRepository.java | 2 +-
.../java/org/openmetadata/catalog/jdbi3/TaskRepository.java | 2 +-
.../java/org/openmetadata/catalog/jdbi3/TopicRepository.java | 2 +-
.../openmetadata/catalog/resources/charts/ChartResource.java | 2 --
.../org/openmetadata/catalog/resources/tasks/TaskResource.java | 3 ---
.../catalog/resources/charts/ChartResourceTest.java | 2 +-
.../catalog/resources/dashboards/DashboardResourceTest.java | 2 +-
.../catalog/resources/databases/DatabaseResourceTest.java | 2 +-
.../catalog/resources/pipelines/PipelineResourceTest.java | 2 +-
.../openmetadata/catalog/resources/tasks/TaskResourceTest.java | 2 +-
.../catalog/resources/topics/TopicResourceTest.java | 2 +-
docker/run_local_docker.sh | 2 +-
15 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java
index 9720f51a488..d51c5ca4072 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java
@@ -123,8 +123,8 @@ public class ChartRepository extends EntityRepository {
@Override
public Chart setFields(Chart chart, Fields fields) throws IOException {
+ chart.setService(getService(chart));
chart.setOwner(fields.contains("owner") ? getOwner(chart) : null);
- chart.setService(fields.contains("service") ? getService(chart) : null);
chart.setFollowers(fields.contains("followers") ? getFollowers(chart) : null);
chart.setTags(fields.contains("tags") ? getTags(chart.getFullyQualifiedName()) : null);
return chart;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java
index 932e83c206f..727d44700f7 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java
@@ -97,8 +97,8 @@ public class DashboardRepository extends EntityRepository {
@Override
public Dashboard setFields(Dashboard dashboard, Fields fields) throws IOException {
dashboard.setDisplayName(dashboard.getDisplayName());
+ dashboard.setService(getService(dashboard));
dashboard.setOwner(fields.contains("owner") ? getOwner(dashboard) : null);
- dashboard.setService(fields.contains("service") ? getService(dashboard) : null);
dashboard.setFollowers(fields.contains("followers") ? getFollowers(dashboard) : null);
dashboard.setCharts(fields.contains("charts") ? getCharts(dashboard) : null);
dashboard.setTags(fields.contains("tags") ? getTags(dashboard.getFullyQualifiedName()) : null);
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepository.java
index 3caa5614166..93d2a14b07d 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepository.java
@@ -119,9 +119,9 @@ public class DatabaseRepository extends EntityRepository {
}
public Database setFields(Database database, Fields fields) throws IOException {
+ database.setService(getService(database));
database.setOwner(fields.contains("owner") ? getOwner(database) : null);
database.setTables(fields.contains("tables") ? getTables(database) : null);
- database.setService(fields.contains("service") ? getService(database) : null);
database.setUsageSummary(fields.contains("usageSummary") ? EntityUtil.getLatestUsage(dao.usageDAO(),
database.getId()) : null);
return database;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepository.java
index b941405187c..92874f6df83 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepository.java
@@ -92,11 +92,11 @@ public class PipelineRepository extends EntityRepository {
@Override
public Pipeline setFields(Pipeline pipeline, Fields fields) throws IOException {
pipeline.setDisplayName(pipeline.getDisplayName());
+ pipeline.setService(getService(pipeline));
pipeline.setPipelineUrl(pipeline.getPipelineUrl());
pipeline.setStartDate(pipeline.getStartDate());
pipeline.setConcurrency(pipeline.getConcurrency());
pipeline.setOwner(fields.contains("owner") ? getOwner(pipeline) : null);
- pipeline.setService(fields.contains("service") ? getService(pipeline) : null);
pipeline.setFollowers(fields.contains("followers") ? getFollowers(pipeline) : null);
pipeline.setTasks(fields.contains("tasks") ? getTasks(pipeline) : null);
pipeline.setTags(fields.contains("tags") ? getTags(pipeline.getFullyQualifiedName()) : null);
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepository.java
index b5a5627a7ae..eb452e60c76 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepository.java
@@ -127,8 +127,8 @@ public class TaskRepository extends EntityRepository {
task.setTaskSQL(task.getTaskSQL());
task.setStartDate(task.getStartDate());
task.setEndDate(task.getEndDate());
+ task.setService(getService(task));
task.setOwner(fields.contains("owner") ? getOwner(task) : null);
- task.setService(fields.contains("service") ? getService(task) : null);
task.setTags(fields.contains("tags") ? getTags(task.getFullyQualifiedName()) : null);
task.setDownstreamTasks(fields.contains("downstreamTasks") ? task.getDownstreamTasks() : null);
return task;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepository.java
index e42628c36e9..fc472ec6390 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepository.java
@@ -126,8 +126,8 @@ public class TopicRepository extends EntityRepository {
@Override
public Topic setFields(Topic topic, Fields fields) throws IOException {
+ topic.setService(getService(topic));
topic.setOwner(fields.contains("owner") ? getOwner(topic) : null);
- topic.setService(fields.contains("service") ? getService(topic) : null);
topic.setFollowers(fields.contains("followers") ? getFollowers(topic) : null);
topic.setTags(fields.contains("tags") ? getTags(topic.getFullyQualifiedName()) : null);
return topic;
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 262c34f7994..b432700ec48 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
@@ -40,8 +40,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.RestUtil;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.json.JsonPatch;
import javax.validation.Valid;
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 f2b26367929..e3110d10c0b 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
@@ -40,8 +40,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.RestUtil;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.json.JsonPatch;
import javax.validation.Valid;
@@ -81,7 +79,6 @@ import java.util.UUID;
@Consumes(MediaType.APPLICATION_JSON)
@Collection(name = "tasks")
public class TaskResource {
- private static final Logger LOG = LoggerFactory.getLogger(TaskResource.class);
private static final String TASK_COLLECTION_PATH = "v1/tasks/";
private final TaskRepository dao;
private final CatalogAuthorizer authorizer;
diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/charts/ChartResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/charts/ChartResourceTest.java
index 1404d89b185..ff5f4f0e4e2 100644
--- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/charts/ChartResourceTest.java
+++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/charts/ChartResourceTest.java
@@ -525,7 +525,7 @@ public class ChartResourceTest extends CatalogApplicationTest {
chart = byName ? getChartByName(chart.getFullyQualifiedName(), fields, adminAuthHeaders()) :
getChart(chart.getId(), fields, adminAuthHeaders());
assertNotNull(chart.getOwner());
- assertNull(chart.getService());
+ assertNotNull(chart.getService()); // We always return the service
// .../charts?fields=owner,service
fields = "owner,service";
diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/dashboards/DashboardResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/dashboards/DashboardResourceTest.java
index 46923293358..080af109834 100644
--- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/dashboards/DashboardResourceTest.java
+++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/dashboards/DashboardResourceTest.java
@@ -543,7 +543,7 @@ public class DashboardResourceTest extends CatalogApplicationTest {
dashboard = byName ? getDashboardByName(dashboard.getFullyQualifiedName(), fields, adminAuthHeaders()) :
getDashboard(dashboard.getId(), fields, adminAuthHeaders());
assertNotNull(dashboard.getOwner());
- assertNull(dashboard.getService());
+ assertNotNull(dashboard.getService()); // We always return the service
assertNull(dashboard.getCharts());
// .../Dashboards?fields=owner,service
diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/databases/DatabaseResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/databases/DatabaseResourceTest.java
index e2309c48807..b7a0e7b8850 100644
--- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/databases/DatabaseResourceTest.java
+++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/databases/DatabaseResourceTest.java
@@ -505,7 +505,7 @@ public class DatabaseResourceTest extends CatalogApplicationTest {
database = byName ? getDatabaseByName(database.getFullyQualifiedName(), fields, adminAuthHeaders()) :
getDatabase(database.getId(), fields, adminAuthHeaders());
assertNotNull(database.getOwner());
- assertNull(database.getService());
+ assertNotNull(database.getService()); // We always return the service
assertNull(database.getTables());
// .../databases?fields=owner,service
diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/pipelines/PipelineResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/pipelines/PipelineResourceTest.java
index 17258c94594..1200961775a 100644
--- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/pipelines/PipelineResourceTest.java
+++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/pipelines/PipelineResourceTest.java
@@ -575,7 +575,7 @@ public class PipelineResourceTest extends CatalogApplicationTest {
pipeline = byName ? getPipelineByName(pipeline.getFullyQualifiedName(), fields, adminAuthHeaders()) :
getPipeline(pipeline.getId(), fields, adminAuthHeaders());
assertNotNull(pipeline.getOwner());
- assertNull(pipeline.getService());
+ assertNotNull(pipeline.getService()); // We always return the service
assertNull(pipeline.getTasks());
// .../Pipelines?fields=owner,service
diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/tasks/TaskResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/tasks/TaskResourceTest.java
index 036dd93421c..5767919750e 100644
--- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/tasks/TaskResourceTest.java
+++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/tasks/TaskResourceTest.java
@@ -520,7 +520,7 @@ public class TaskResourceTest extends CatalogApplicationTest {
task = byName ? getTaskByName(task.getFullyQualifiedName(), fields, adminAuthHeaders()) :
getTask(task.getId(), fields, adminAuthHeaders());
assertNotNull(task.getOwner());
- assertNull(task.getService());
+ assertNotNull(task.getService()); // We always return the service
// .../tasks?fields=owner,service
fields = "owner,service";
diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/topics/TopicResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/topics/TopicResourceTest.java
index 5c6af45844b..8dc215e0fe6 100644
--- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/topics/TopicResourceTest.java
+++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/topics/TopicResourceTest.java
@@ -540,7 +540,7 @@ public class TopicResourceTest extends CatalogApplicationTest {
topic = byName ? getTopicByName(topic.getFullyQualifiedName(), fields, adminAuthHeaders()) :
getTopic(topic.getId(), fields, adminAuthHeaders());
assertNotNull(topic.getOwner());
- assertNull(topic.getService());
+ assertNotNull(topic.getService()); // We always return the service
// .../topics?fields=owner,service
fields = "owner,service";
diff --git a/docker/run_local_docker.sh b/docker/run_local_docker.sh
index 06d0adeee28..040dfc19eb2 100755
--- a/docker/run_local_docker.sh
+++ b/docker/run_local_docker.sh
@@ -17,4 +17,4 @@
mvn -DskipTests clean package
cd docker/local-metadata/
-docker-compose up
\ No newline at end of file
+docker-compose up --build
\ No newline at end of file