mirror of
https://github.com/datahub-project/datahub.git
synced 2025-09-02 22:03:11 +00:00
bug(seedData): adds a key to the root user seed data and fixes corner case check for missing key aspects (#4162)
Co-authored-by: Ryan Holstien <ryan@acryl.io>
This commit is contained in:
parent
d17f2bf014
commit
f37bdad78e
@ -223,7 +223,7 @@ public class EbeanEntityService extends EntityService {
|
||||
List<EnvelopedAspect> aspects = urnToAspects.getOrDefault(urn.toString(), Collections.emptyList());
|
||||
EnvelopedAspect keyAspect = getKeyEnvelopedAspect(urn);
|
||||
// Add key aspect if it does not exist in the returned aspects
|
||||
if (aspects.isEmpty() || !aspectNames.contains(keyAspect.getName())) {
|
||||
if (aspects.isEmpty() || aspects.stream().noneMatch(aspect -> keyAspect.getName().equals(aspect.getName()))) {
|
||||
result.put(urn, ImmutableList.<EnvelopedAspect>builder().addAll(aspects).add(keyAspect).build());
|
||||
} else {
|
||||
result.put(urn, aspects);
|
||||
|
@ -4,12 +4,16 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.linkedin.common.AuditStamp;
|
||||
import com.linkedin.common.urn.Urn;
|
||||
import com.linkedin.data.schema.RecordDataSchema;
|
||||
import com.linkedin.identity.CorpUserInfo;
|
||||
import com.linkedin.metadata.Constants;
|
||||
import com.linkedin.metadata.boot.BootstrapStep;
|
||||
import com.datahub.util.RecordUtils;
|
||||
import com.linkedin.metadata.entity.EntityService;
|
||||
|
||||
import com.linkedin.metadata.key.CorpUserKey;
|
||||
import com.linkedin.metadata.models.AspectSpec;
|
||||
import com.linkedin.metadata.models.EntitySpec;
|
||||
import com.linkedin.metadata.utils.EntityKeyUtils;
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
@ -17,6 +21,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import static com.linkedin.metadata.Constants.*;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@ -55,8 +61,16 @@ public class IngestRootUserStep implements BootstrapStep {
|
||||
|
||||
final CorpUserInfo info =
|
||||
RecordUtils.toRecordTemplate(CorpUserInfo.class, userObj.get("info").toString());
|
||||
final CorpUserKey key = (CorpUserKey) EntityKeyUtils.convertUrnToEntityKey(urn, getUserKeySchema());
|
||||
final AuditStamp aspectAuditStamp =
|
||||
new AuditStamp().setActor(Urn.createFromString(Constants.SYSTEM_ACTOR)).setTime(System.currentTimeMillis());
|
||||
new AuditStamp().setActor(Urn.createFromString(SYSTEM_ACTOR)).setTime(System.currentTimeMillis());
|
||||
_entityService.ingestAspect(urn, CORP_USER_KEY_ASPECT_NAME, key, aspectAuditStamp, null);
|
||||
_entityService.ingestAspect(urn, USER_INFO_ASPECT_NAME, info, aspectAuditStamp, null);
|
||||
}
|
||||
|
||||
private RecordDataSchema getUserKeySchema() {
|
||||
final EntitySpec spec = _entityService.getEntityRegistry().getEntitySpec(CORP_USER_ENTITY_NAME);
|
||||
final AspectSpec keySpec = spec.getKeyAspectSpec();
|
||||
return keySpec.getPegasusSchema();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user