From 1dfcb45e8651c92e634e2fc08d8db3fb147bd480 Mon Sep 17 00:00:00 2001 From: Suresh Srinivas Date: Tue, 30 Aug 2022 11:25:22 -0700 Subject: [PATCH] Clean up lingering code related to defaultRole field in Role entity (#7064) --- .../catalog/jdbi3/CollectionDAO.java | 8 +------ .../catalog/jdbi3/RoleRepository.java | 23 ------------------- .../catalog/resources/teams/RoleResource.java | 5 +--- .../resources/teams/TeamResourceTest.java | 7 +++++- 4 files changed, 8 insertions(+), 35 deletions(-) diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/CollectionDAO.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/CollectionDAO.java index 1267a8ef451..87b589b757e 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/CollectionDAO.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/CollectionDAO.java @@ -1826,12 +1826,6 @@ public interface CollectionDAO { default String getNameColumn() { return "name"; } - - @SqlQuery("SELECT id FROM role_entity WHERE defaultRole = TRUE") - List getDefaultRolesIds(); - - @SqlQuery("SELECT json FROM role_entity WHERE defaultRole = TRUE") - List getDefaultRoles(); } interface TeamDAO extends EntityDAO { @@ -1858,7 +1852,7 @@ public interface CollectionDAO { // validate parent team Team team = findEntityByName(parentTeam); if (ORGANIZATION_NAME.equals(team.getName())) { - // All the parentless teams should come under "organization" team + // All the teams without parents should come under "organization" team condition = String.format( "%s AND id NOT IN ( (SELECT '%s') UNION (SELECT toId FROM entity_relationship WHERE fromId!='%s' AND fromEntity='team' AND toEntity='team' AND relation=%d) )", diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/RoleRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/RoleRepository.java index 47d57d5ca02..34d131127f8 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/RoleRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/RoleRepository.java @@ -21,8 +21,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; -import javax.ws.rs.core.UriInfo; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.jdbi.v3.sqlobject.transaction.Transaction; @@ -35,8 +33,6 @@ import org.openmetadata.catalog.type.EntityReference; import org.openmetadata.catalog.type.Relationship; import org.openmetadata.catalog.util.EntityUtil; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.JsonUtils; -import org.openmetadata.catalog.util.ResultList; @Slf4j public class RoleRepository extends EntityRepository { @@ -109,25 +105,6 @@ public class RoleRepository extends EntityRepository { } } - public ResultList getDefaultRolesResultList(UriInfo uriInfo, Fields fields) throws IOException { - List roles = getDefaultRoles(uriInfo, fields); - return new ResultList<>(roles, null, null, roles.size()); - } - - private List getDefaultRoles(UriInfo uriInfo, Fields fields) throws IOException { - List roles = new ArrayList<>(); - for (String roleJson : daoCollection.roleDAO().getDefaultRoles()) { - roles.add(withHref(uriInfo, setFields(JsonUtils.readValue(roleJson, Role.class), fields))); - } - if (roles.size() > 1) { - LOG.warn( - "{} roles {}, are registered as default. There SHOULD be only one role marked as default.", - roles.size(), - roles.stream().map(Role::getName).collect(Collectors.toList())); - } - return roles; - } - @Override public RoleUpdater getUpdater(Role original, Role updated, Operation operation) { return new RoleUpdater(original, updated, operation); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/RoleResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/RoleResource.java index 65d1b8a77f3..4a5841dab7c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/RoleResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/RoleResource.java @@ -172,10 +172,7 @@ public class RoleResource extends EntityResource { ListFilter filter = new ListFilter(include); ResultList roles; - if (defaultParam) { - // The number of default roles is 1, and hence does not require pagination. - roles = dao.getDefaultRolesResultList(uriInfo, fields); - } else if (before != null) { // Reverse paging + if (before != null) { // Reverse paging roles = dao.listBefore(uriInfo, fields, filter, limitParam, before); // Ask for one extra entry } else { // Forward paging or first page roles = dao.listAfter(uriInfo, fields, filter, limitParam, after); diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/TeamResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/TeamResourceTest.java index 99fdcf1f8f9..cf250e232db 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/TeamResourceTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/TeamResourceTest.java @@ -132,6 +132,11 @@ public class TeamResourceTest extends EntityResourceTest { CreateTeam create = createRequest("org_test").withTeamType(ORGANIZATION); assertResponse( () -> createEntity(create, ADMIN_AUTH_HEADERS), BAD_REQUEST, CatalogExceptionMessage.createOrganization()); + + // Organization by default has DataConsumer Role. Ensure Role lists organization as one of the teams + RoleResourceTest roleResourceTest = new RoleResourceTest(); + Role role = roleResourceTest.getEntityByName("DataConsumer", "teams", ADMIN_AUTH_HEADERS); + assertEntityReferencesContain(role.getTeams(), org.getEntityReference()); } @Test @@ -475,7 +480,7 @@ public class TeamResourceTest extends EntityResourceTest { } @Test - void patch_deleteUserAndDefaultRoleFromTeam_200(TestInfo test) throws IOException { + void patch_deleteUserAndDefaultRolesFromTeam_200(TestInfo test) throws IOException { UserResourceTest userResourceTest = new UserResourceTest(); final int totalUsers = 20; ArrayList users = new ArrayList<>();