Hello everyone,
I am trying to create a database that in my type model has a reference to a
repository. I want to create it by sending a message to the ATLAS_HOOK
topic to the Kafka broker as follows:
{
"version": {
"version": "1.0.0"
},
"message": {
"entities": [{
"jsonClass":
"org.apache.atlas.typesystem.json.InstanceSerialization$_Reference",
"id": {
"jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
"id": "-14568879465268",
"version": 0,
"typeName": "database",
"state": "ACTIVE"
},
"typeName": "database",
"values": {
"qualifiedName": "Testdb5",
* "repository": {*
* "jsonClass":"org.apache.atlas.typesystem.json.InstanceSerialization$_Id"*
* "version": 0,*
* "typeName": "repository",*
* "uniqueAttributes": {*
* "qualifiedName": "repository01"*
* },*
* "state": "ACTIVE"*
* },*
"owner": "owner",
"description": "Test db7",
"name": "Testdb7",
"dbName": "Test7",
"origin_app": "origin",
"origin_username": "externalusername"
},
"traitNames": [],
"traits": {}
}],
"type": "ENTITY_CREATE",
"user": "user"
}
}
The database type expects a repository attribute of the type repository as
a reference. It works when I give the guid of the reference directly but
when trying my example it fails and it seems to me that it does not process
the information I provide as uniqueAttributes. What I see in the
application.log is the following stacktrace:
*org.apache.atlas.exception.AtlasBaseException: ObjectId is not valid
AtlasObjectId{guid='null', typeName='repository', uniqueAttributes={}}*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityGraphDiscoveryV1.visitReference(AtlasEntityGraphDiscoveryV1.java:186)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityGraphDiscoveryV1.visitAttribute(AtlasEntityGraphDiscoveryV1.java:234)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityGraphDiscoveryV1.visitEntity(AtlasEntityGraphDiscoveryV1.java:327)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityGraphDiscoveryV1.walkEntityGraph(AtlasEntityGraphDiscoveryV1.java:354)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityGraphDiscoveryV1.discover(AtlasEntityGraphDiscoveryV1.java:142)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityGraphDiscoveryV1.discoverEntities(AtlasEntityGraphDiscoveryV1.java:69)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityStoreV1.preCreateOrUpdate(AtlasEntityStoreV1.java:523)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityStoreV1.createOrUpdate(AtlasEntityStoreV1.java:174)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityStoreV1.createOrUpdate(AtlasEntityStoreV1.java:193)*
* at
org.apache.atlas.repository.store.graph.v1.AtlasEntityStoreV1$$FastClassBySpringCGLIB$$80c00649.invoke(<generated>)*
This message makes me suspicious that Atlas is not processing my input
message correctly and not reading my uniqueAttributes information.
Does someone have a hint of what I am doing wrong or if this is a currrent
issue inside Atlas or it is not a supported feature right now?
Thank you very much,
Best regards,
Joan