From 5ccd8ddbbf161b7736ba32f974ee1b58b360b746 Mon Sep 17 00:00:00 2001 From: Suresh Srinivas Date: Wed, 27 Apr 2022 10:22:06 -0700 Subject: [PATCH] Fixes #4478 PUT method for /api/v1/users gives 409 (#4539) --- .../catalog/jdbi3/DashboardServiceRepository.java | 3 +-- .../catalog/jdbi3/DatabaseServiceRepository.java | 3 +-- .../catalog/jdbi3/GlossaryRepository.java | 3 +-- .../catalog/jdbi3/MessagingServiceRepository.java | 3 +-- .../catalog/jdbi3/PipelineServiceRepository.java | 3 +-- .../openmetadata/catalog/jdbi3/RoleRepository.java | 3 +-- .../catalog/jdbi3/StorageServiceRepository.java | 3 +-- .../openmetadata/catalog/jdbi3/TeamRepository.java | 3 +-- .../openmetadata/catalog/jdbi3/UserRepository.java | 3 +-- .../catalog/jdbi3/WebhookRepository.java | 3 +-- .../catalog/resources/EntityResourceTest.java | 12 +++++++----- .../catalog/resources/teams/UserResourceTest.java | 7 ++----- 12 files changed, 19 insertions(+), 30 deletions(-) diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepository.java index 07be8ff1d8c..0f861ff4ad2 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepository.java @@ -31,7 +31,6 @@ import org.openmetadata.catalog.type.Include; import org.openmetadata.catalog.type.Relationship; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.FullyQualifiedName; public class DashboardServiceRepository extends EntityRepository { private static final String UPDATE_FIELDS = "owner"; @@ -141,7 +140,7 @@ public class DashboardServiceRepository extends EntityRepository { @@ -161,7 +160,7 @@ public class DatabaseServiceRepository extends EntityRepository @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryRepository.java index 098464f7e35..fd54e87254a 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryRepository.java @@ -36,7 +36,6 @@ import org.openmetadata.catalog.type.TagLabel.Source; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.FullyQualifiedName; public class GlossaryRepository extends EntityRepository { private static final String UPDATE_FIELDS = "owner,tags,reviewers"; @@ -149,7 +148,7 @@ public class GlossaryRepository extends EntityRepository { @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepository.java index 35382a9e6b2..8ab65899550 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepository.java @@ -29,7 +29,6 @@ import org.openmetadata.catalog.type.Include; import org.openmetadata.catalog.type.Relationship; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.FullyQualifiedName; public class MessagingServiceRepository extends EntityRepository { private static final String UPDATE_FIELDS = "owner, connection"; @@ -134,7 +133,7 @@ public class MessagingServiceRepository extends EntityRepository { private static final String UPDATE_FIELDS = "owner"; @@ -118,7 +117,7 @@ public class PipelineServiceRepository extends EntityRepository @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override 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 50d0ecdcd71..df22c0926a8 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 @@ -37,7 +37,6 @@ import org.openmetadata.catalog.type.Relationship; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.FullyQualifiedName; import org.openmetadata.catalog.util.JsonUtils; import org.openmetadata.catalog.util.ResultList; @@ -169,7 +168,7 @@ public class RoleRepository extends EntityRepository { @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/StorageServiceRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/StorageServiceRepository.java index 9b97a955003..83c9ad38efa 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/StorageServiceRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/StorageServiceRepository.java @@ -25,7 +25,6 @@ import org.openmetadata.catalog.resources.services.storage.StorageServiceResourc import org.openmetadata.catalog.type.ChangeDescription; import org.openmetadata.catalog.type.EntityReference; import org.openmetadata.catalog.util.EntityInterface; -import org.openmetadata.catalog.util.FullyQualifiedName; public class StorageServiceRepository extends EntityRepository { private static final String UPDATE_FIELDS = "owner"; @@ -111,7 +110,7 @@ public class StorageServiceRepository extends EntityRepository { @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java index f8a5ffc6f94..2201e80820d 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java @@ -32,7 +32,6 @@ import org.openmetadata.catalog.type.Relationship; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.FullyQualifiedName; public class TeamRepository extends EntityRepository { static final String TEAM_UPDATE_FIELDS = "owner,profile,users,defaultRoles"; @@ -175,7 +174,7 @@ public class TeamRepository extends EntityRepository { @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java index 816ec7e5660..45d5243015b 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java @@ -39,7 +39,6 @@ import org.openmetadata.catalog.type.Relationship; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.FullyQualifiedName; @Slf4j public class UserRepository extends EntityRepository { @@ -265,7 +264,7 @@ public class UserRepository extends EntityRepository { @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/WebhookRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/WebhookRepository.java index 7db2e7aa610..264f17c6203 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/WebhookRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/WebhookRepository.java @@ -53,7 +53,6 @@ import org.openmetadata.catalog.type.Webhook; import org.openmetadata.catalog.type.Webhook.Status; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil.Fields; -import org.openmetadata.catalog.util.FullyQualifiedName; import org.openmetadata.catalog.util.JsonUtils; import org.openmetadata.catalog.util.RestUtil; import org.openmetadata.common.utils.CommonUtil; @@ -190,7 +189,7 @@ public class WebhookRepository extends EntityRepository { @Override public String getFullyQualifiedName() { - return FullyQualifiedName.build(entity.getName()); + return entity.getName(); } @Override diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/EntityResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/EntityResourceTest.java index 83bbfff496f..9a22e2dec34 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/EntityResourceTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/EntityResourceTest.java @@ -123,7 +123,6 @@ import org.openmetadata.catalog.type.Include; import org.openmetadata.catalog.type.TagLabel; import org.openmetadata.catalog.util.EntityInterface; import org.openmetadata.catalog.util.EntityUtil; -import org.openmetadata.catalog.util.FullyQualifiedName; import org.openmetadata.catalog.util.JsonUtils; import org.openmetadata.catalog.util.ResultList; import org.openmetadata.catalog.util.TestUtils; @@ -721,11 +720,14 @@ public abstract class EntityResourceTest extends CatalogApplicationTest { request = createRequest(name, "", null, null); entity = createEntity(request, ADMIN_AUTH_HEADERS); entityInterface = getEntityInterface(entity); - assertTrue(entityInterface.getFullyQualifiedName().contains("\"")); - String[] split = FullyQualifiedName.split(entityInterface.getFullyQualifiedName()); - String actualName = split[split.length - 1]; + + // The FQN has quote delimited parts if the FQN is hierarchical. + // For entities where FQN is same as the entity name, (that is no hierarchical name for entities like user, + // team, webhook and the entity names that are at the root for FQN like services, TagCategory, and Glossary etc.) + // No delimiter is expected. + boolean noHierarchicalName = entityInterface.getFullyQualifiedName().equals(entityInterface.getName()); + assertTrue(noHierarchicalName || entityInterface.getFullyQualifiedName().contains("\"")); assertEquals(name, entityInterface.getName()); - assertEquals(FullyQualifiedName.quoteName(name), actualName); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/UserResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/UserResourceTest.java index 4f0ee503a6f..ff24487d11a 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/UserResourceTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/teams/UserResourceTest.java @@ -281,18 +281,15 @@ public class UserResourceTest extends EntityResourceTest { @Test void put_validUser_200_ok(TestInfo test) throws IOException { // Create user with different optional fields - CreateUser create = createRequest(test, 1); + CreateUser create = createRequest("user.xyz", null, null, null); User user = updateAndCheckEntity(create, CREATED, ADMIN_AUTH_HEADERS, UpdateType.CREATED, null); // Update the user information using PUT String oldEmail = create.getEmail(); - String oldDisplayName = create.getDisplayName(); CreateUser update = create.withEmail("test1@email.com").withDisplayName("displayName1"); ChangeDescription change = getChangeDescription(user.getVersion()); - change - .getFieldsAdded() - .add(new FieldChange().withName("displayName").withOldValue(oldDisplayName).withNewValue("displayName1")); + change.getFieldsAdded().add(new FieldChange().withName("displayName").withNewValue("displayName1")); change .getFieldsUpdated() .add(new FieldChange().withName("email").withOldValue(oldEmail).withNewValue("test1@email.com"));