Fixes #4478 PUT method for /api/v1/users gives 409 (#4539)

This commit is contained in:
Suresh Srinivas 2022-04-27 10:22:06 -07:00 committed by GitHub
parent 7d57a81622
commit 5ccd8ddbbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 19 additions and 30 deletions

View File

@ -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<DashboardService> {
private static final String UPDATE_FIELDS = "owner";
@ -141,7 +140,7 @@ public class DashboardServiceRepository extends EntityRepository<DashboardServic
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -33,7 +33,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;
import org.openmetadata.catalog.util.JsonUtils;
public class DatabaseServiceRepository extends EntityRepository<DatabaseService> {
@ -161,7 +160,7 @@ public class DatabaseServiceRepository extends EntityRepository<DatabaseService>
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<Glossary> {
private static final String UPDATE_FIELDS = "owner,tags,reviewers";
@ -149,7 +148,7 @@ public class GlossaryRepository extends EntityRepository<Glossary> {
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<MessagingService> {
private static final String UPDATE_FIELDS = "owner, connection";
@ -134,7 +133,7 @@ public class MessagingServiceRepository extends EntityRepository<MessagingServic
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -26,7 +26,6 @@ import org.openmetadata.catalog.type.EntityReference;
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 PipelineServiceRepository extends EntityRepository<PipelineService> {
private static final String UPDATE_FIELDS = "owner";
@ -118,7 +117,7 @@ public class PipelineServiceRepository extends EntityRepository<PipelineService>
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<Role> {
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<StorageService> {
private static final String UPDATE_FIELDS = "owner";
@ -111,7 +110,7 @@ public class StorageServiceRepository extends EntityRepository<StorageService> {
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<Team> {
static final String TEAM_UPDATE_FIELDS = "owner,profile,users,defaultRoles";
@ -175,7 +174,7 @@ public class TeamRepository extends EntityRepository<Team> {
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<User> {
@ -265,7 +264,7 @@ public class UserRepository extends EntityRepository<User> {
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<Webhook> {
@Override
public String getFullyQualifiedName() {
return FullyQualifiedName.build(entity.getName());
return entity.getName();
}
@Override

View File

@ -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<T, K> 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);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -281,18 +281,15 @@ public class UserResourceTest extends EntityResourceTest<User, CreateUser> {
@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"));