Search in sources :

Example 1 with TraitTypeDefinition

use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.

the class TypeConverterUtil method toAtlasClassificationDefs.

private static List<AtlasClassificationDef> toAtlasClassificationDefs(List<TraitTypeDefinition> traitTypeDefinitions) {
    List<AtlasClassificationDef> ret = new ArrayList<>();
    for (TraitTypeDefinition traitType : traitTypeDefinitions) {
        List<AtlasAttributeDef> attrDefs = new ArrayList<AtlasAttributeDef>();
        if (CollectionUtils.isNotEmpty(traitType.getAttributeDefinitions())) {
            for (AttributeDefinition attrDefinition : traitType.getAttributeDefinitions()) {
                attrDefs.add(toAtlasAttributeDef(attrDefinition));
            }
        }
        AtlasClassificationDef classifDef = new AtlasClassificationDef(traitType.getTypeName(), traitType.getTypeDescription(), traitType.getTypeVersion(), attrDefs, traitType.getSuperTypes());
        ret.add(classifDef);
    }
    return ret;
}
Also used : AtlasClassificationDef(org.apache.atlas.model.typedef.AtlasClassificationDef) TraitTypeDefinition(org.apache.atlas.v1.model.typedef.TraitTypeDefinition) AtlasAttributeDef(org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef) AttributeDefinition(org.apache.atlas.v1.model.typedef.AttributeDefinition)

Example 2 with TraitTypeDefinition

use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.

the class TypeConverterUtil method classificationToTypesDef.

private static TypesDef classificationToTypesDef(AtlasClassificationType classificationType, AtlasTypeRegistry registry) {
    String typeName = classificationType.getClassificationDef().getName();
    String typeDesc = classificationType.getClassificationDef().getDescription();
    String typeVersion = classificationType.getClassificationDef().getTypeVersion();
    Set<String> superTypes = new HashSet<>(classificationType.getClassificationDef().getSuperTypes());
    List<AttributeDefinition> attributes = getAttributes(classificationType, registry);
    TraitTypeDefinition traitTypeDef = new TraitTypeDefinition(typeName, typeDesc, typeVersion, attributes, superTypes);
    TypesDef ret = new TypesDef(null, null, Arrays.asList(traitTypeDef), null);
    return ret;
}
Also used : TypesDef(org.apache.atlas.v1.model.typedef.TypesDef) AtlasTypesDef(org.apache.atlas.model.typedef.AtlasTypesDef) TraitTypeDefinition(org.apache.atlas.v1.model.typedef.TraitTypeDefinition) AttributeDefinition(org.apache.atlas.v1.model.typedef.AttributeDefinition)

Example 3 with TraitTypeDefinition

use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.

the class AtlasClient method createTraitType.

/**
 * Creates trait type with specifiedName, superTraits and attributes
 * @param traitName the name of the trait type
 * @param superTraits the list of super traits from which this trait type inherits attributes
 * @param attributeDefinitions the list of attributes of the trait type
 * @return the list of types created
 * @throws AtlasServiceException
 */
public List<String> createTraitType(String traitName, Set<String> superTraits, AttributeDefinition... attributeDefinitions) throws AtlasServiceException {
    TraitTypeDefinition piiTrait = TypesUtil.createTraitTypeDef(traitName, null, superTraits, Arrays.asList(attributeDefinitions));
    TypesDef typesDef = new TypesDef(Collections.emptyList(), Collections.emptyList(), Collections.singletonList(piiTrait), Collections.emptyList());
    LOG.debug("Creating trait type {} {}", traitName, AtlasType.toV1Json(piiTrait));
    return createType(AtlasType.toV1Json(typesDef));
}
Also used : TypesDef(org.apache.atlas.v1.model.typedef.TypesDef) TraitTypeDefinition(org.apache.atlas.v1.model.typedef.TraitTypeDefinition)

Example 4 with TraitTypeDefinition

use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.

the class EntityJerseyResourceIT method testUTF8.

@Test
public void testUTF8() throws Exception {
    // Type names cannot be arbitrary UTF8 characters. See org.apache.atlas.type.AtlasTypeUtil#validateType()
    String classType = randomString();
    String attrName = random();
    String attrValue = random();
    ClassTypeDefinition classTypeDefinition = TypesUtil.createClassTypeDef(classType, null, Collections.<String>emptySet(), TypesUtil.createUniqueRequiredAttrDef(attrName, AtlasBaseTypeDef.ATLAS_TYPE_STRING));
    TypesDef typesDef = new TypesDef(Collections.<EnumTypeDefinition>emptyList(), Collections.<StructTypeDefinition>emptyList(), Collections.<TraitTypeDefinition>emptyList(), Collections.singletonList(classTypeDefinition));
    createType(typesDef);
    Referenceable instance = new Referenceable(classType);
    instance.set(attrName, attrValue);
    Id guid = createInstance(instance);
    ObjectNode response = atlasClientV1.callAPIWithBodyAndParams(AtlasClient.API_V1.GET_ENTITY, null, guid._getId());
    Referenceable getReferenceable = AtlasType.fromV1Json(AtlasType.toJson(response.get(AtlasClient.DEFINITION)), Referenceable.class);
    Assert.assertEquals(getReferenceable.get(attrName), attrValue);
}
Also used : Referenceable(org.apache.atlas.v1.model.instance.Referenceable) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) Id(org.apache.atlas.v1.model.instance.Id) Test(org.testng.annotations.Test)

Example 5 with TraitTypeDefinition

use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.

the class EntityJerseyResourceIT method testAddTrait.

@Test
public void testAddTrait() throws Exception {
    String dbName = "db" + randomString();
    String tableName = "table" + randomString();
    Referenceable hiveDBInstance = createHiveDBInstanceBuiltIn(dbName);
    Id dbId = createInstance(hiveDBInstance);
    Referenceable hiveTableInstance = createHiveTableInstanceBuiltIn(dbName, tableName, dbId);
    Id id = createInstance(hiveTableInstance);
    final String guid = id._getId();
    try {
        Assert.assertNotNull(UUID.fromString(guid));
    } catch (IllegalArgumentException e) {
        Assert.fail("Response is not a guid, " + guid);
    }
    String traitName = "PII_Trait" + randomString();
    TraitTypeDefinition piiTrait = TypesUtil.createTraitTypeDef(traitName, null, Collections.<String>emptySet());
    String traitDefinitionAsJSON = AtlasType.toV1Json(piiTrait);
    LOG.debug("traitDefinitionAsJSON = {}", traitDefinitionAsJSON);
    TypesDef typesDef = new TypesDef(Collections.emptyList(), Collections.emptyList(), Collections.singletonList(piiTrait), Collections.emptyList());
    createType(typesDef);
    Struct traitInstance = new Struct(traitName);
    atlasClientV1.addTrait(guid, traitInstance);
    assertEntityAudit(guid, EntityAuditEvent.EntityAuditAction.TAG_ADD);
}
Also used : Referenceable(org.apache.atlas.v1.model.instance.Referenceable) Id(org.apache.atlas.v1.model.instance.Id) Struct(org.apache.atlas.v1.model.instance.Struct) Test(org.testng.annotations.Test)

Aggregations

Referenceable (org.apache.atlas.v1.model.instance.Referenceable)9 Test (org.testng.annotations.Test)9 Id (org.apache.atlas.v1.model.instance.Id)8 Struct (org.apache.atlas.v1.model.instance.Struct)6 TraitTypeDefinition (org.apache.atlas.v1.model.typedef.TraitTypeDefinition)4 AtlasServiceException (org.apache.atlas.AtlasServiceException)3 AttributeDefinition (org.apache.atlas.v1.model.typedef.AttributeDefinition)2 TypesDef (org.apache.atlas.v1.model.typedef.TypesDef)2 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 AtlasClassificationDef (org.apache.atlas.model.typedef.AtlasClassificationDef)1 AtlasAttributeDef (org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef)1 AtlasTypesDef (org.apache.atlas.model.typedef.AtlasTypesDef)1 EnumValue (org.apache.atlas.v1.model.typedef.EnumTypeDefinition.EnumValue)1