diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolver.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolver.java index d07bc25a55..d89f52bb7a 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolver.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolver.java @@ -74,7 +74,7 @@ public class CreateDomainResolver implements DataFetcher> Urn ownerUrn = Urn.createFromString(input.getOwnerUrn()); OwnerEntityType ownerEntityType = input.getOwnerEntityType(); OwnershipType type = input.getType() == null ? OwnershipType.NONE : input.getType(); - String ownershipUrn = input.getOwnershipTypeUrn() == null ? mapOwnershipTypeToEntity(type) : input.getOwnershipTypeUrn(); + String ownershipUrn = input.getOwnershipTypeUrn() == null ? mapOwnershipTypeToEntity(type.name()) : input.getOwnershipTypeUrn(); Urn targetUrn = Urn.createFromString(input.getResourceUrn()); if (!OwnerUtils.isAuthorizedToUpdateOwners(environment.getContext(), targetUrn)) { diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/util/OwnerUtils.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/util/OwnerUtils.java index fb9ca78d5d..a062016ed5 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/util/OwnerUtils.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/util/OwnerUtils.java @@ -116,7 +116,8 @@ public class OwnerUtils { } // Fall back to mapping deprecated type to the new ownership entity, if it matches remove - return mapOwnershipTypeToEntity(OwnershipType.valueOf(owner.getType().toString())).equals(ownershipUrn.toString()); + return mapOwnershipTypeToEntity(OwnershipType.valueOf(owner.getType().toString()).name()) + .equals(ownershipUrn.toString()); }); Owner newOwner = new Owner(); @@ -158,7 +159,7 @@ public class OwnerUtils { } // Fall back to mapping deprecated type to the new ownership entity, if it matches remove - return mapOwnershipTypeToEntity(OwnershipType.valueOf(owner.getType().toString())) + return mapOwnershipTypeToEntity(OwnershipType.valueOf(owner.getType().toString()).name()) .equals(maybeOwnershipTypeUrn.get().toString()); }); } else { @@ -283,7 +284,7 @@ public class OwnerUtils { EntityService entityService) { try { Urn actorUrn = CorpuserUrn.createFromString(context.getActorUrn()); - String ownershipTypeUrn = mapOwnershipTypeToEntity(ownershipType); + String ownershipTypeUrn = mapOwnershipTypeToEntity(ownershipType.name()); if (!entityService.exists(UrnUtils.getUrn(ownershipTypeUrn))) { throw new RuntimeException(String.format("Unknown ownership type urn %s", ownershipTypeUrn)); @@ -300,8 +301,8 @@ public class OwnerUtils { } } - public static String mapOwnershipTypeToEntity(OwnershipType type) { - final String typeName = SYSTEM_ID + type.name().toLowerCase(); + public static String mapOwnershipTypeToEntity(String type) { + final String typeName = SYSTEM_ID + type.toLowerCase(); return Urn.createFromTuple(Constants.OWNERSHIP_TYPE_ENTITY_NAME, typeName).toString(); } } diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolver.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolver.java index e253b67d3c..a0568937d2 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolver.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolver.java @@ -73,7 +73,7 @@ public class CreateTagResolver implements DataFetcher> String tagUrn = _entityClient.ingestProposal(proposal, context.getAuthentication()); OwnershipType ownershipType = OwnershipType.TECHNICAL_OWNER; - if (!_entityService.exists(UrnUtils.getUrn(mapOwnershipTypeToEntity(ownershipType)))) { + if (!_entityService.exists(UrnUtils.getUrn(mapOwnershipTypeToEntity(ownershipType.name())))) { log.warn("Technical owner does not exist, defaulting to None ownership."); ownershipType = OwnershipType.NONE; } diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerMapper.java index f7c262db85..181bdc176f 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerMapper.java @@ -33,7 +33,7 @@ public class OwnerMapper { if (owner.getTypeUrn() == null) { OwnershipType ownershipType = OwnershipType.valueOf(owner.getType().toString()); - owner.setTypeUrn(UrnUtils.getUrn(mapOwnershipTypeToEntity(ownershipType))); + owner.setTypeUrn(UrnUtils.getUrn(mapOwnershipTypeToEntity(ownershipType.name()))); } if (owner.getTypeUrn() != null) { diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerUpdateMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerUpdateMapper.java index 4b740e0450..aac0067974 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerUpdateMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/OwnerUpdateMapper.java @@ -1,5 +1,6 @@ package com.linkedin.datahub.graphql.types.common.mappers; +import com.linkedin.common.urn.UrnUtils; import javax.annotation.Nonnull; import com.linkedin.common.Owner; @@ -34,7 +35,14 @@ public class OwnerUpdateMapper implements ModelMapper { } catch (URISyntaxException e) { e.printStackTrace(); } - owner.setType(OwnershipType.valueOf(input.getType().toString())); + if (input.getOwnershipTypeUrn() != null) { + owner.setTypeUrn(UrnUtils.getUrn(input.getOwnershipTypeUrn())); + } else if (input.getType() != null) { + owner.setType(OwnershipType.valueOf(input.getType().toString())); + } else { + throw new RuntimeException("Ownership type not specified. Please define the ownership type urn."); + } + owner.setSource(new OwnershipSource().setType(OwnershipSourceType.SERVICE)); return owner; } diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/tag/mappers/TagUpdateInputMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/tag/mappers/TagUpdateInputMapper.java index b666bf5c60..505dd0d369 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/tag/mappers/TagUpdateInputMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/tag/mappers/TagUpdateInputMapper.java @@ -8,6 +8,7 @@ import com.linkedin.common.OwnershipSource; import com.linkedin.common.OwnershipSourceType; import com.linkedin.common.OwnershipType; import com.linkedin.common.urn.Urn; +import com.linkedin.common.urn.UrnUtils; import com.linkedin.data.template.SetMode; import com.linkedin.datahub.graphql.generated.TagUpdateInput; import com.linkedin.datahub.graphql.types.common.mappers.util.UpdateMappingHelper; @@ -18,6 +19,7 @@ import java.util.ArrayList; import java.util.Collection; import javax.annotation.Nonnull; +import static com.linkedin.datahub.graphql.resolvers.mutate.util.OwnerUtils.*; import static com.linkedin.metadata.Constants.*; @@ -47,6 +49,7 @@ public class TagUpdateInputMapper implements InputModelMapper