diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepository.java index e844c488300..6d853633fc7 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepository.java @@ -32,7 +32,6 @@ import org.openmetadata.catalog.util.EntityUtil; import org.openmetadata.catalog.util.EntityUtil.Fields; import org.openmetadata.catalog.util.JsonUtils; -import javax.ws.rs.core.UriInfo; import java.io.IOException; import java.net.URI; import java.text.ParseException; @@ -213,7 +212,7 @@ public class DatabaseServiceRepository extends EntityRepository private void updateIngestionSchedule() throws JsonProcessingException { Schedule origSchedule = original.getEntity().getIngestionSchedule(); Schedule updatedSchedule = updated.getEntity().getIngestionSchedule(); - recordChange("ingestionSchedule", origSchedule, updatedSchedule); + recordChange("ingestionSchedule", origSchedule, updatedSchedule, true); } } } \ No newline at end of file diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/services/DatabaseServiceResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/services/DatabaseServiceResourceTest.java index bc4209a903a..5b4b00c7a4b 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/services/DatabaseServiceResourceTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/services/DatabaseServiceResourceTest.java @@ -28,14 +28,17 @@ import org.openmetadata.catalog.exception.CatalogExceptionMessage; import org.openmetadata.catalog.jdbi3.DatabaseServiceRepository.DatabaseServiceEntityInterface; import org.openmetadata.catalog.resources.EntityResourceTest; import org.openmetadata.catalog.resources.services.database.DatabaseServiceResource.DatabaseServiceList; +import org.openmetadata.catalog.type.ChangeDescription; +import org.openmetadata.catalog.type.ColumnConstraint; import org.openmetadata.catalog.type.EntityReference; -import org.openmetadata.catalog.type.JdbcInfo; +import org.openmetadata.catalog.type.FieldChange; import org.openmetadata.catalog.type.Schedule; import org.openmetadata.catalog.util.EntityInterface; +import org.openmetadata.catalog.util.JsonUtils; import org.openmetadata.catalog.util.TestUtils; +import org.openmetadata.catalog.util.TestUtils.UpdateType; import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.Response.Status; import java.io.IOException; import java.net.URISyntaxException; import java.util.Date; @@ -48,10 +51,10 @@ import static javax.ws.rs.core.Response.Status.FORBIDDEN; import static javax.ws.rs.core.Response.Status.NOT_FOUND; import static javax.ws.rs.core.Response.Status.OK; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.openmetadata.catalog.util.TestUtils.adminAuthHeaders; import static org.openmetadata.catalog.util.TestUtils.authHeaders; +import static org.openmetadata.catalog.util.TestUtils.getPrincipal; public class DatabaseServiceResourceTest extends EntityResourceTest { public DatabaseServiceResourceTest() { @@ -180,18 +183,24 @@ public class DatabaseServiceResourceTest extends EntityResourceTest - updateAndCheckService(create(test), OK, authHeaders("test@open-metadata.org"))); + updateAndCheckEntity(create(test), OK, authHeaders("test@open-metadata.org"), + UpdateType.MINOR_UPDATE, null)); TestUtils.assertResponse(exception, FORBIDDEN, "Principal: CatalogPrincipal{name='test'} " + "is not admin"); } @@ -228,23 +238,6 @@ public class DatabaseServiceResourceTest extends EntityResourceTest authHeaders) throws HttpResponseException { return getService(id, null, authHeaders); } @@ -321,31 +314,6 @@ public class DatabaseServiceResourceTest extends EntityResourceTest authHeaders) throws HttpResponseException { - String updatedBy = TestUtils.getPrincipal(authHeaders); - DatabaseService service = updateDatabaseService(update, status, authHeaders); - validateService(service, service.getName(), update.getDescription(), service.getJdbc(), - update.getIngestionSchedule(), updatedBy); - - // GET the newly updated database and validate - DatabaseService getService = getService(service.getId(), authHeaders); - validateService(getService, service.getName(), update.getDescription(), service.getJdbc(), - update.getIngestionSchedule(), updatedBy); - - // GET the newly updated database by name and validate - getService = getServiceByName(service.getName(), null, authHeaders); - validateService(getService, service.getName(), update.getDescription(), service.getJdbc(), - update.getIngestionSchedule(), updatedBy); - } - - public static DatabaseService updateDatabaseService(CreateDatabaseService updated, - Status status, Map authHeaders) - throws HttpResponseException { - return TestUtils.put(CatalogApplicationTest.getResource("services/databaseServices"), updated, - DatabaseService.class, status, authHeaders); - } - @Override public Object createRequest(TestInfo test, int index, String description, String displayName, EntityReference owner) throws URISyntaxException { @@ -353,21 +321,32 @@ public class DatabaseServiceResourceTest extends EntityResourceTest authHeaders) + public void validateCreatedEntity(DatabaseService service, Object request, Map authHeaders) throws HttpResponseException { + CreateDatabaseService createRequest = (CreateDatabaseService) request; + validateCommonEntityFields(getEntityInterface(service), createRequest.getDescription(), getPrincipal(authHeaders), + null); + assertEquals(createRequest.getName(), service.getName()); + // Validate jdbc + assertEquals(createRequest.getJdbc(), service.getJdbc()); + + Schedule expectedIngestion = createRequest.getIngestionSchedule(); + if (expectedIngestion != null) { + assertEquals(expectedIngestion.getStartDate(), service.getIngestionSchedule().getStartDate()); + assertEquals(expectedIngestion.getRepeatFrequency(), service.getIngestionSchedule().getRepeatFrequency()); + } } @Override - public void validateUpdatedEntity(DatabaseService updatedEntity, Object request, Map authHeaders) + public void validateUpdatedEntity(DatabaseService service, Object request, Map authHeaders) throws HttpResponseException { - + validateCreatedEntity(service, request, authHeaders); } @Override public void compareEntities(DatabaseService expected, DatabaseService updated, Map authHeaders) throws HttpResponseException { - } @Override @@ -377,6 +356,13 @@ public class DatabaseServiceResourceTest extends EntityResourceTest