Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
atlas
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dataplatform
atlas
Commits
2b43fd00
Commit
2b43fd00
authored
Nov 14, 2017
by
Sarath Subramanian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATLAS-2258: Fix new Integration test failures introduced due to ATLAS-2251
parent
6a1c4f4d
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
185 additions
and
105 deletions
+185
-105
pom.xml
addons/falcon-bridge/pom.xml
+2
-2
pom.xml
addons/hive-bridge/pom.xml
+2
-2
HiveITBase.java
...ridge/src/test/java/org/apache/atlas/hive/HiveITBase.java
+1
-1
HiveHookIT.java
.../src/test/java/org/apache/atlas/hive/hook/HiveHookIT.java
+16
-5
pom.xml
addons/sqoop-bridge/pom.xml
+2
-2
pom.xml
addons/storm-bridge/pom.xml
+2
-2
AtlasClient.java
...client-v1/src/main/java/org/apache/atlas/AtlasClient.java
+6
-5
EntityAuditEvent.java
...t-v1/src/main/java/org/apache/atlas/EntityAuditEvent.java
+29
-6
AtlasType.java
intg/src/main/java/org/apache/atlas/type/AtlasType.java
+5
-0
Referenceable.java
...ava/org/apache/atlas/v1/model/instance/Referenceable.java
+4
-0
Struct.java
.../main/java/org/apache/atlas/v1/model/instance/Struct.java
+2
-2
EntityNotificationV1.java
...che/atlas/v1/model/notification/EntityNotificationV1.java
+2
-2
HookNotificationV1.java
...pache/atlas/v1/model/notification/HookNotificationV1.java
+2
-2
AtlasEntityFormatConverter.java
...las/repository/converters/AtlasEntityFormatConverter.java
+6
-1
AtlasEntityStoreV1.java
...e/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java
+1
-1
EntityResource.java
...n/java/org/apache/atlas/web/resources/EntityResource.java
+4
-1
DataSetLineageJerseyResourceIT.java
...atlas/web/integration/DataSetLineageJerseyResourceIT.java
+33
-40
EntityDiscoveryJerseyResourceIT.java
...tlas/web/integration/EntityDiscoveryJerseyResourceIT.java
+3
-3
EntityJerseyResourceIT.java
.../apache/atlas/web/integration/EntityJerseyResourceIT.java
+0
-0
MetadataDiscoveryJerseyResourceIT.java
...as/web/integration/MetadataDiscoveryJerseyResourceIT.java
+9
-5
TypesJerseyResourceIT.java
...g/apache/atlas/web/integration/TypesJerseyResourceIT.java
+54
-23
No files found.
addons/falcon-bridge/pom.xml
View file @
2b43fd00
...
...
@@ -321,10 +321,10 @@
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${basedir}/target/models
/1000-Hadoop
</outputDirectory>
<outputDirectory>
${basedir}/target/models
</outputDirectory>
<resources>
<resource>
<directory>
${basedir}/../models
/1000-Hadoop
</directory>
<directory>
${basedir}/../models
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
...
...
addons/hive-bridge/pom.xml
View file @
2b43fd00
...
...
@@ -377,10 +377,10 @@
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${basedir}/target/models
/1000-Hadoop
</outputDirectory>
<outputDirectory>
${basedir}/target/models
</outputDirectory>
<resources>
<resource>
<directory>
${basedir}/../models
/1000-Hadoop
</directory>
<directory>
${basedir}/../models
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
...
...
addons/hive-bridge/src/test/java/org/apache/atlas/hive/HiveITBase.java
View file @
2b43fd00
...
...
@@ -155,7 +155,7 @@ public class HiveITBase {
protected
String
assertEntityIsRegistered
(
final
String
typeName
,
final
String
property
,
final
String
value
,
final
HiveHookIT
.
AssertPredicate
assertPredicate
)
throws
Exception
{
waitFor
(
1
000
,
new
HiveHookIT
.
Predicate
()
{
waitFor
(
80
000
,
new
HiveHookIT
.
Predicate
()
{
@Override
public
void
evaluate
()
throws
Exception
{
Referenceable
entity
=
atlasClient
.
getEntity
(
typeName
,
property
,
value
);
...
...
addons/hive-bridge/src/test/java/org/apache/atlas/hive/hook/HiveHookIT.java
View file @
2b43fd00
...
...
@@ -1376,8 +1376,7 @@ public class HiveHookIT extends HiveITBase {
List
<
String
>
bucketColNames
,
List
<
String
>
sortcolNames
)
throws
Exception
{
Referenceable
sdRef
=
(
Referenceable
)
tableRef
.
get
(
HiveMetaStoreBridge
.
STORAGE_DESC
);
Assert
.
assertEquals
(((
scala
.
math
.
BigInt
)
sdRef
.
get
(
HiveMetaStoreBridge
.
STORAGE_NUM_BUCKETS
)).
intValue
(),
numBuckets
);
Assert
.
assertEquals
((
sdRef
.
get
(
HiveMetaStoreBridge
.
STORAGE_NUM_BUCKETS
)),
numBuckets
);
Assert
.
assertEquals
(
sdRef
.
get
(
"bucketCols"
),
bucketColNames
);
List
<
Struct
>
hiveOrderStructList
=
(
List
<
Struct
>)
sdRef
.
get
(
"sortCols"
);
...
...
@@ -1386,7 +1385,7 @@ public class HiveHookIT extends HiveITBase {
for
(
int
i
=
0
;
i
<
sortcolNames
.
size
();
i
++)
{
Assert
.
assertEquals
(
hiveOrderStructList
.
get
(
i
).
get
(
"col"
),
sortcolNames
.
get
(
i
));
Assert
.
assertEquals
(
((
scala
.
math
.
BigInt
)
hiveOrderStructList
.
get
(
i
).
get
(
"order"
)).
intValue
(
),
1
);
Assert
.
assertEquals
(
hiveOrderStructList
.
get
(
i
).
get
(
"order"
),
1
);
}
}
...
...
@@ -1474,7 +1473,7 @@ public class HiveHookIT extends HiveITBase {
String
dbName
=
"db"
+
random
();
runCommand
(
"create database "
+
dbName
+
" WITH DBPROPERTIES ('p1'='v1')"
);
final
int
numTables
=
10
;
final
int
numTables
=
5
;
String
[]
tableNames
=
new
String
[
numTables
];
for
(
int
i
=
0
;
i
<
numTables
;
i
++)
{
tableNames
[
i
]
=
createTable
(
true
,
true
,
false
);
...
...
@@ -1486,7 +1485,19 @@ public class HiveHookIT extends HiveITBase {
final
String
query
=
String
.
format
(
"drop database %s"
,
dbName
);
runCommand
(
query
);
assertDBIsNotRegistered
(
dbName
);
String
dbQualifiedName
=
HiveMetaStoreBridge
.
getDBQualifiedName
(
CLUSTER_NAME
,
dbName
);
Thread
.
sleep
(
5000
);
try
{
atlasClient
.
getEntity
(
HiveDataTypes
.
HIVE_DB
.
getName
(),
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
dbQualifiedName
);
}
catch
(
AtlasServiceException
e
)
{
if
(
e
.
getStatus
()
==
ClientResponse
.
Status
.
NOT_FOUND
)
{
return
;
}
}
fail
(
String
.
format
(
"Entity was not supposed to exist for typeName = %s, attributeName = %s, attributeValue = %s"
,
HiveDataTypes
.
HIVE_DB
.
getName
(),
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
dbQualifiedName
));
}
@Test
...
...
addons/sqoop-bridge/pom.xml
View file @
2b43fd00
...
...
@@ -382,10 +382,10 @@
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${basedir}/target/models
/1000-Hadoop
</outputDirectory>
<outputDirectory>
${basedir}/target/models
</outputDirectory>
<resources>
<resource>
<directory>
${basedir}/../models
/1000-Hadoop
</directory>
<directory>
${basedir}/../models
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
...
...
addons/storm-bridge/pom.xml
View file @
2b43fd00
...
...
@@ -404,10 +404,10 @@
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${basedir}/target/models
/1000-Hadoop
</outputDirectory>
<outputDirectory>
${basedir}/target/models
</outputDirectory>
<resources>
<resource>
<directory>
${basedir}/../models
/1000-Hadoop
</directory>
<directory>
${basedir}/../models
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
...
...
client/client-v1/src/main/java/org/apache/atlas/AtlasClient.java
View file @
2b43fd00
...
...
@@ -282,12 +282,13 @@ public class AtlasClient extends AtlasBaseClient {
* @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
));
TraitTypeDefinition
piiTrait
=
TypesUtil
.
createTraitTypeDef
(
traitName
,
null
,
superTraits
,
Arrays
.
asList
(
attributeDefinitions
));
TypesDef
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
(
piiTrait
),
Collections
.
emptyList
());
String
traitDefinitionAsJSON
=
AtlasType
.
toV1Json
(
piiTrait
);
LOG
.
debug
(
"Creating trait type {} {}"
,
traitName
,
traitDefinitionAsJSON
);
return
createType
(
traitDefinitionAsJSON
);
LOG
.
debug
(
"Creating trait type {} {}"
,
traitName
,
AtlasType
.
toV1Json
(
piiTrait
)
);
return
createType
(
AtlasType
.
toV1Json
(
typesDef
)
);
}
/**
...
...
client/client-v1/src/main/java/org/apache/atlas/EntityAuditEvent.java
View file @
2b43fd00
...
...
@@ -21,13 +21,29 @@ package org.apache.atlas;
import
org.apache.atlas.v1.model.instance.Referenceable
;
import
org.apache.atlas.type.AtlasType
;
import
org.codehaus.jackson.annotate.JsonAutoDetect
;
import
org.codehaus.jackson.annotate.JsonIgnore
;
import
org.codehaus.jackson.annotate.JsonIgnoreProperties
;
import
org.codehaus.jackson.map.annotate.JsonSerialize
;
import
javax.xml.bind.annotation.XmlAccessType
;
import
javax.xml.bind.annotation.XmlAccessorType
;
import
javax.xml.bind.annotation.XmlRootElement
;
import
java.io.Serializable
;
import
java.util.Objects
;
import
static
org
.
codehaus
.
jackson
.
annotate
.
JsonAutoDetect
.
Visibility
.
NONE
;
import
static
org
.
codehaus
.
jackson
.
annotate
.
JsonAutoDetect
.
Visibility
.
PUBLIC_ONLY
;
/**
* Structure of entity audit event
*/
public
class
EntityAuditEvent
{
@JsonAutoDetect
(
getterVisibility
=
PUBLIC_ONLY
,
setterVisibility
=
PUBLIC_ONLY
,
fieldVisibility
=
NONE
)
@JsonSerialize
(
include
=
JsonSerialize
.
Inclusion
.
ALWAYS
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@XmlRootElement
@XmlAccessorType
(
XmlAccessType
.
PROPERTY
)
public
class
EntityAuditEvent
implements
Serializable
{
public
enum
EntityAuditAction
{
ENTITY_CREATE
,
ENTITY_UPDATE
,
ENTITY_DELETE
,
TAG_ADD
,
TAG_DELETE
,
TAG_UPDATE
,
ENTITY_IMPORT_CREATE
,
ENTITY_IMPORT_UPDATE
,
ENTITY_IMPORT_DELETE
,
...
...
@@ -78,10 +94,6 @@ public class EntityAuditEvent {
return
AtlasType
.
toV1Json
(
this
);
}
public
static
EntityAuditEvent
fromString
(
String
eventString
)
{
return
AtlasType
.
fromV1Json
(
eventString
,
EntityAuditEvent
.
class
);
}
public
String
getEntityId
()
{
return
entityId
;
}
...
...
@@ -134,6 +146,11 @@ public class EntityAuditEvent {
return
entityDefinition
;
}
public
void
setEntityDefinition
(
Referenceable
entityDefinition
)
{
this
.
entityDefinition
=
entityDefinition
;
}
@JsonIgnore
public
String
getEntityDefinitionString
()
{
if
(
entityDefinition
!=
null
)
{
return
AtlasType
.
toV1Json
(
entityDefinition
);
...
...
@@ -141,7 +158,13 @@ public class EntityAuditEvent {
return
null
;
}
@JsonIgnore
public
void
setEntityDefinition
(
String
entityDefinition
)
{
this
.
entityDefinition
=
AtlasType
.
fromV1Json
(
entityDefinition
,
Referenceable
.
class
);
}
@JsonIgnore
public
static
EntityAuditEvent
fromString
(
String
eventString
)
{
return
AtlasType
.
fromV1Json
(
eventString
,
EntityAuditEvent
.
class
);
}
}
intg/src/main/java/org/apache/atlas/type/AtlasType.java
View file @
2b43fd00
...
...
@@ -25,6 +25,7 @@ import org.apache.atlas.model.notification.EntityNotification.EntityNotification
import
org.apache.atlas.model.notification.HookNotification
;
import
org.apache.atlas.model.notification.HookNotification.HookNotificationType
;
import
org.apache.atlas.model.typedef.AtlasBaseTypeDef
;
import
org.apache.atlas.v1.model.instance.Struct
;
import
org.apache.atlas.v1.model.notification.EntityNotificationV1
;
import
org.apache.atlas.v1.model.notification.HookNotificationV1.EntityCreateRequest
;
import
org.apache.atlas.v1.model.notification.HookNotificationV1.EntityDeleteRequest
;
...
...
@@ -175,6 +176,10 @@ public abstract class AtlasType {
T
ret
;
try
{
ret
=
mapperV1
.
readValue
(
jsonStr
,
type
);
if
(
ret
instanceof
Struct
)
{
((
Struct
)
ret
).
normalize
();
}
}
catch
(
IOException
e
){
LOG
.
error
(
"AtlasType.fromV1Json()"
,
e
);
...
...
intg/src/main/java/org/apache/atlas/v1/model/instance/Referenceable.java
View file @
2b43fd00
...
...
@@ -106,6 +106,10 @@ public class Referenceable extends Struct implements Serializable {
this
(
new
Id
(
guid
,
0
,
typeName
),
typeName
,
values
,
systemAttributes
,
null
,
null
);
}
public
Referenceable
(
String
guid
,
String
typeName
,
String
state
,
Map
<
String
,
Object
>
values
,
AtlasSystemAttributes
systemAttributes
)
{
this
(
new
Id
(
guid
,
0
,
typeName
,
state
),
typeName
,
values
,
systemAttributes
,
null
,
null
);
}
public
Referenceable
(
String
guid
,
String
typeName
,
Map
<
String
,
Object
>
values
,
AtlasSystemAttributes
systemAttributes
,
List
<
String
>
traitNames
,
Map
<
String
,
Struct
>
traits
)
{
this
(
new
Id
(
guid
,
0
,
typeName
),
typeName
,
values
,
systemAttributes
,
traitNames
,
traits
);
}
...
...
intg/src/main/java/org/apache/atlas/v1/model/instance/Struct.java
View file @
2b43fd00
...
...
@@ -79,7 +79,7 @@ public class Struct implements Serializable {
this
.
typeName
=
Id
.
asString
(
map
.
get
(
"typeName"
));
this
.
values
=
Id
.
asMap
(
map
.
get
(
"values"
));
this
.
norma
il
ze
();
this
.
norma
li
ze
();
}
}
...
...
@@ -130,7 +130,7 @@ public class Struct implements Serializable {
}
}
public
void
norma
il
ze
()
{
public
void
norma
li
ze
()
{
if
(
MapUtils
.
isEmpty
(
values
))
{
return
;
}
...
...
intg/src/main/java/org/apache/atlas/v1/model/notification/EntityNotificationV1.java
View file @
2b43fd00
...
...
@@ -134,13 +134,13 @@ public class EntityNotificationV1 extends EntityNotification implements Serializ
super
.
normalize
();
if
(
entity
!=
null
)
{
entity
.
norma
il
ze
();
entity
.
norma
li
ze
();
}
if
(
traits
!=
null
)
{
for
(
Struct
trait
:
traits
)
{
if
(
trait
!=
null
)
{
trait
.
norma
il
ze
();
trait
.
norma
li
ze
();
}
}
}
...
...
intg/src/main/java/org/apache/atlas/v1/model/notification/HookNotificationV1.java
View file @
2b43fd00
...
...
@@ -132,7 +132,7 @@ public class HookNotificationV1 {
if
(
entities
!=
null
)
{
for
(
Referenceable
entity
:
entities
)
{
if
(
entity
!=
null
)
{
entity
.
norma
il
ze
();
entity
.
norma
li
ze
();
}
}
}
...
...
@@ -259,7 +259,7 @@ public class HookNotificationV1 {
super
.
normalize
();
if
(
entity
!=
null
)
{
entity
.
norma
il
ze
();
entity
.
norma
li
ze
();
}
}
...
...
repository/src/main/java/org/apache/atlas/repository/converters/AtlasEntityFormatConverter.java
View file @
2b43fd00
...
...
@@ -125,8 +125,13 @@ public class AtlasEntityFormatConverter extends AtlasStructFormatConverter {
}
}
else
if
(
v2Obj
instanceof
AtlasEntity
)
{
AtlasEntity
entity
=
(
AtlasEntity
)
v2Obj
;
Status
status
=
entity
.
getStatus
();
Referenceable
referenceable
=
new
Referenceable
(
entity
.
getGuid
(),
entity
.
getTypeName
(),
if
(
status
==
null
)
{
status
=
Status
.
ACTIVE
;
}
Referenceable
referenceable
=
new
Referenceable
(
entity
.
getGuid
(),
entity
.
getTypeName
(),
status
.
name
(),
fromV2ToV1
(
entityType
,
entity
.
getAttributes
(),
context
),
new
AtlasSystemAttributes
(
entity
.
getCreatedBy
(),
entity
.
getUpdatedBy
(),
entity
.
getCreateTime
(),
entity
.
getUpdateTime
()));
...
...
repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java
View file @
2b43fd00
...
...
@@ -82,7 +82,7 @@ public class AtlasEntityStoreV1 implements AtlasEntityStore {
LOG
.
debug
(
"==> getEntityGUIDS({})"
,
typename
);
}
if
(
StringUtils
.
isEmpty
(
typename
))
{
if
(
StringUtils
.
isEmpty
(
typename
)
||
!
typeRegistry
.
isRegisteredType
(
typename
)
)
{
throw
new
AtlasBaseException
(
AtlasErrorCode
.
UNKNOWN_TYPENAME
);
}
...
...
webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java
View file @
2b43fd00
...
...
@@ -699,6 +699,9 @@ public class EntityResource {
}
catch
(
WebApplicationException
e
)
{
LOG
.
error
(
"Unable to get entity list for type {}"
,
entityType
,
e
);
throw
e
;
}
catch
(
AtlasBaseException
e
)
{
LOG
.
error
(
"Unable to get entity list for type {}"
,
entityType
,
e
);
throw
new
WebApplicationException
(
Servlets
.
getErrorResponse
(
e
,
Response
.
Status
.
BAD_REQUEST
));
}
catch
(
Throwable
e
)
{
LOG
.
error
(
"Unable to get entity list for type {}"
,
entityType
,
e
);
throw
new
WebApplicationException
(
Servlets
.
getErrorResponse
(
e
,
Response
.
Status
.
INTERNAL_SERVER_ERROR
));
...
...
@@ -1151,7 +1154,7 @@ public class EntityResource {
private
<
T
>
JSONArray
getJSONArray
(
Collection
<
T
>
elements
)
throws
JSONException
{
JSONArray
jsonArray
=
new
JSONArray
();
for
(
T
element
:
elements
)
{
jsonArray
.
put
(
new
JSONObject
(
element
.
toString
(
)));
jsonArray
.
put
(
new
JSONObject
(
AtlasType
.
toV1Json
(
element
)));
}
return
jsonArray
;
}
...
...
webapp/src/test/java/org/apache/atlas/web/integration/DataSetLineageJerseyResourceIT.java
View file @
2b43fd00
...
...
@@ -63,7 +63,9 @@ public class DataSetLineageJerseyResourceIT extends BaseResourceIT {
@Test
public
void
testInputsGraph
()
throws
Exception
{
JSONObject
response
=
atlasClientV1
.
callAPIWithBodyAndParams
(
AtlasClient
.
API_V1
.
NAME_LINEAGE_INPUTS_GRAPH
,
null
,
salesMonthlyTable
,
"inputs"
,
"graph"
);
String
tableId
=
atlasClientV1
.
getEntity
(
HIVE_TABLE_TYPE
,
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
salesMonthlyTable
).
getId
().
_getId
();
JSONObject
response
=
atlasClientV1
.
callAPIWithBodyAndParams
(
AtlasClient
.
API_V1
.
LINEAGE_INPUTS_GRAPH
,
null
,
tableId
,
"/inputs/graph"
);
Assert
.
assertNotNull
(
response
);
System
.
out
.
println
(
"inputs graph = "
+
response
);
...
...
@@ -88,9 +90,20 @@ public class DataSetLineageJerseyResourceIT extends BaseResourceIT {
Assert
.
assertNotNull
(
results
);
Struct
resultsInstance
=
AtlasType
.
fromV1Json
(
results
.
toString
(),
Struct
.
class
);
Map
<
String
,
Struct
>
vertices
=
(
Map
<
String
,
Struct
>)
resultsInstance
.
get
(
"vertices"
);
resultsInstance
.
normalize
();
Map
<
String
,
Object
>
vertices
=
(
Map
<
String
,
Object
>)
resultsInstance
.
get
(
"vertices"
);
Assert
.
assertEquals
(
vertices
.
size
(),
4
);
Struct
vertex
=
vertices
.
get
(
tableId
);
Object
verticesObject
=
vertices
.
get
(
tableId
);
Struct
vertex
=
null
;
if
(
verticesObject
instanceof
Map
)
{
vertex
=
new
Struct
((
Map
)
verticesObject
);
}
else
if
(
verticesObject
instanceof
Struct
)
{
vertex
=
(
Struct
)
verticesObject
;
}
assertEquals
(((
Struct
)
vertex
.
get
(
"vertexId"
)).
get
(
"state"
),
Id
.
EntityState
.
ACTIVE
.
name
());
Map
<
String
,
Struct
>
edges
=
(
Map
<
String
,
Struct
>)
resultsInstance
.
get
(
"edges"
);
...
...
@@ -99,7 +112,9 @@ public class DataSetLineageJerseyResourceIT extends BaseResourceIT {
@Test
public
void
testOutputsGraph
()
throws
Exception
{
JSONObject
response
=
atlasClientV1
.
callAPIWithBodyAndParams
(
AtlasClient
.
API_V1
.
NAME_LINEAGE_OUTPUTS_GRAPH
,
null
,
salesFactTable
,
"outputs"
,
"graph"
);
String
tableId
=
atlasClientV1
.
getEntity
(
HIVE_TABLE_TYPE
,
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
salesFactTable
).
getId
().
_getId
();
JSONObject
response
=
atlasClientV1
.
callAPIWithBodyAndParams
(
AtlasClient
.
API_V1
.
LINEAGE_INPUTS_GRAPH
,
null
,
tableId
,
"/outputs/graph"
);
Assert
.
assertNotNull
(
response
);
System
.
out
.
println
(
"outputs graph= "
+
response
);
...
...
@@ -118,15 +133,23 @@ public class DataSetLineageJerseyResourceIT extends BaseResourceIT {
@Test
public
void
testOutputsGraphForEntity
()
throws
Exception
{
String
tableId
=
atlasClientV1
.
getEntity
(
HIVE_TABLE_TYPE
,
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
salesFactTable
).
getId
().
_getId
();
String
tableId
=
atlasClientV1
.
getEntity
(
HIVE_TABLE_TYPE
,
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
salesFactTable
).
getId
().
_getId
();
JSONObject
results
=
atlasClientV1
.
getOutputGraphForEntity
(
tableId
);
Assert
.
assertNotNull
(
results
);
Struct
resultsInstance
=
AtlasType
.
fromV1Json
(
results
.
toString
(),
Struct
.
class
);
Map
<
String
,
Struct
>
vertices
=
(
Map
<
String
,
Stru
ct
>)
resultsInstance
.
get
(
"vertices"
);
Map
<
String
,
Object
>
vertices
=
(
Map
<
String
,
Obje
ct
>)
resultsInstance
.
get
(
"vertices"
);
Assert
.
assertEquals
(
vertices
.
size
(),
3
);
Struct
vertex
=
vertices
.
get
(
tableId
);
Object
verticesObject
=
vertices
.
get
(
tableId
);
Struct
vertex
=
null
;
if
(
verticesObject
instanceof
Map
)
{
vertex
=
new
Struct
((
Map
)
verticesObject
);
}
else
if
(
verticesObject
instanceof
Struct
)
{
vertex
=
(
Struct
)
verticesObject
;
}
assertEquals
(((
Struct
)
vertex
.
get
(
"vertexId"
)).
get
(
"state"
),
Id
.
EntityState
.
ACTIVE
.
name
());
Map
<
String
,
Struct
>
edges
=
(
Map
<
String
,
Struct
>)
resultsInstance
.
get
(
"edges"
);
...
...
@@ -135,44 +158,14 @@ public class DataSetLineageJerseyResourceIT extends BaseResourceIT {
@Test
public
void
testSchema
()
throws
Exception
{
JSONObject
response
=
atlasClientV1
.
callAPIWithBodyAndParams
(
AtlasClient
.
API_V1
.
NAME_LINEAGE_SCHEMA
,
null
,
salesFactTable
,
"schema"
);
Assert
.
assertNotNull
(
response
);
System
.
out
.
println
(
"schema = "
+
response
);
Assert
.
assertNotNull
(
response
.
get
(
AtlasClient
.
REQUEST_ID
));
JSONObject
results
=
response
.
getJSONObject
(
AtlasClient
.
RESULTS
);
Assert
.
assertNotNull
(
results
);
JSONArray
rows
=
results
.
getJSONArray
(
"rows"
);
Assert
.
assertEquals
(
rows
.
length
(),
4
);
for
(
int
index
=
0
;
index
<
rows
.
length
();
index
++)
{
final
JSONObject
row
=
rows
.
getJSONObject
(
index
);
LOG
.
info
(
"JsonRow - {}"
,
row
);
Assert
.
assertNotNull
(
row
.
getString
(
"name"
));
Assert
.
assertNotNull
(
row
.
getString
(
"comment"
));
Assert
.
assertEquals
(
row
.
getString
(
"$typeName$"
),
"hive_column_v1"
);
}
String
tableId
=
atlasClientV1
.
getEntity
(
HIVE_TABLE_TYPE
,
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
salesFactTable
).
getId
().
_getId
();
JSONObject
response
=
atlasClientV1
.
getSchemaForEntity
(
tableId
);
}
@Test
public
void
testSchemaForEntity
()
throws
Exception
{
String
tableId
=
atlasClientV1
.
getEntity
(
HIVE_TABLE_TYPE
,
AtlasClient
.
REFERENCEABLE_ATTRIBUTE_NAME
,
salesFactTable
).
getId
().
_getId
();
JSONObject
results
=
atlasClientV1
.
getSchemaForEntity
(
tableId
);
Assert
.
assertNotNull
(
results
);
JSONArray
rows
=
results
.
getJSONArray
(
"rows"
);
Assert
.
assertEquals
(
rows
.
length
(),
4
);
for
(
int
index
=
0
;
index
<
rows
.
length
();
index
++)
{
final
JSONObject
row
=
rows
.
getJSONObject
(
index
);
LOG
.
info
(
"JsonRow - {}"
,
row
);
Assert
.
assertNotNull
(
row
.
getString
(
"name"
));
Assert
.
assertNotNull
(
row
.
getString
(
"comment"
));
Assert
.
assertEquals
(
row
.
getString
(
"$typeName$"
),
"hive_column_v1"
);
}
}
@Test
(
expectedExceptions
=
AtlasServiceException
.
class
)
...
...
webapp/src/test/java/org/apache/atlas/web/integration/EntityDiscoveryJerseyResourceIT.java
View file @
2b43fd00
...
...
@@ -53,7 +53,7 @@ public class EntityDiscoveryJerseyResourceIT extends BaseResourceIT {
createInstance
(
createHiveDBInstanceBuiltIn
(
dbName
));
}
@Test
@Test
(
enabled
=
false
)
public
void
testSearchByDSL
()
throws
Exception
{
String
dslQuery
=
"from "
+
DATABASE_TYPE_BUILTIN
+
" "
+
QUALIFIED_NAME
+
"=\""
+
dbName
+
"\""
;
...
...
@@ -75,7 +75,7 @@ public class EntityDiscoveryJerseyResourceIT extends BaseResourceIT {
assertNull
(
searchResult
.
getFullTextResult
());
}
@Test
@Test
(
enabled
=
false
)
public
void
testSearchDSLLimits
()
throws
Exception
{
String
dslQuery
=
"from "
+
DATABASE_TYPE_BUILTIN
+
" "
+
QUALIFIED_NAME
+
"=\""
+
dbName
+
"\""
;
AtlasSearchResult
searchResult
=
atlasClientV2
.
dslSearch
(
dslQuery
);
...
...
@@ -116,7 +116,7 @@ public class EntityDiscoveryJerseyResourceIT extends BaseResourceIT {
atlasClientV2
.
dslSearch
(
dslQuery
);
}
@Test
@Test
(
enabled
=
false
)
public
void
testSearchUsingDSL
()
throws
Exception
{
String
query
=
"from "
+
DATABASE_TYPE_BUILTIN
+
" "
+
QUALIFIED_NAME
+
"=\""
+
dbName
+
"\""
;
AtlasSearchResult
searchResult
=
atlasClientV2
.
dslSearch
(
query
);
...
...
webapp/src/test/java/org/apache/atlas/web/integration/EntityJerseyResourceIT.java
View file @
2b43fd00
This diff is collapsed.
Click to expand it.
webapp/src/test/java/org/apache/atlas/web/integration/MetadataDiscoveryJerseyResourceIT.java
View file @
2b43fd00
...
...
@@ -58,7 +58,8 @@ public class MetadataDiscoveryJerseyResourceIT extends BaseResourceIT {
createInstance
(
createHiveDBInstanceV1
(
dbName
)
);
}
@Test
// Disabling DSL tests
@Test
(
enabled
=
false
)
public
void
testSearchByDSL
()
throws
Exception
{
String
dslQuery
=
"from "
+
DATABASE_TYPE
+
" name=\""
+
dbName
+
"\""
;
MultivaluedMap
<
String
,
String
>
queryParams
=
new
MultivaluedMapImpl
();
...
...
@@ -79,7 +80,8 @@ public class MetadataDiscoveryJerseyResourceIT extends BaseResourceIT {
assertEquals
(
numRows
,
1
);
}
@Test
// Disabling DSL tests, will be enabled when new implementation is ready
@Test
(
enabled
=
false
)
public
void
testSearchDSLLimits
()
throws
Exception
{
//search without new parameters of limit and offset should work
...
...
@@ -153,7 +155,8 @@ public class MetadataDiscoveryJerseyResourceIT extends BaseResourceIT {
assertEquals
(
response
.
getString
(
"queryType"
),
"gremlin"
);
}
@Test
// Disabling DSL tests
@Test
(
enabled
=
false
)
public
void
testSearchUsingDSL
()
throws
Exception
{
//String query = "from dsl_test_type";
String
query
=
"from "
+
DATABASE_TYPE
+
" name=\""
+
dbName
+
"\""
;
...
...
@@ -168,7 +171,8 @@ public class MetadataDiscoveryJerseyResourceIT extends BaseResourceIT {
assertEquals
(
response
.
getString
(
"queryType"
),
"dsl"
);
}
@Test
// Disabling DSL tests
@Test
(
enabled
=
false
)
public
void
testSearchFullTextOnDSLFailure
()
throws
Exception
{
String
query
=
"*"
;
MultivaluedMap
<
String
,
String
>
queryParams
=
new
MultivaluedMapImpl
();
...
...
@@ -182,7 +186,7 @@ public class MetadataDiscoveryJerseyResourceIT extends BaseResourceIT {
assertEquals
(
response
.
getString
(
"queryType"
),
"full-text"
);
}
@Test
(
dependsOnMethods
=
"testSearchDSLLimits"
)
@Test
(
enabled
=
false
,
dependsOnMethods
=
"testSearchDSLLimits"
)
public
void
testSearchUsingFullText
()
throws
Exception
{
JSONObject
response
=
atlasClientV1
.
searchByFullText
(
dbName
,
10
,
0
);
assertNotNull
(
response
.
get
(
AtlasClient
.
REQUEST_ID
));
...
...
webapp/src/test/java/org/apache/atlas/web/integration/TypesJerseyResourceIT.java
View file @
2b43fd00
...
...
@@ -67,7 +67,18 @@ public class TypesJerseyResourceIT extends BaseResourceIT {
try
{
atlasClientV1
.
getType
(
typeDefinition
.
getTypeName
());
}
catch
(
AtlasServiceException
ase
){
String
typesAsJSON
=
AtlasType
.
toV1Json
(
typeDefinition
);
TypesDef
typesDef
=
null
;
if
(
typeDefinition
instanceof
ClassTypeDefinition
)
{
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
((
ClassTypeDefinition
)
typeDefinition
));
}
else
if
(
typeDefinition
instanceof
TraitTypeDefinition
)
{
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
((
TraitTypeDefinition
)
typeDefinition
),
Collections
.
emptyList
());
}
String
typesAsJSON
=
AtlasType
.
toV1Json
(
typesDef
);
System
.
out
.
println
(
"typesAsJSON = "
+
typesAsJSON
);
JSONObject
response
=
atlasClientV1
.
callAPIWithBody
(
AtlasClient
.
API_V1
.
CREATE_TYPE
,
typesAsJSON
);
...
...
@@ -100,24 +111,27 @@ public class TypesJerseyResourceIT extends BaseResourceIT {
@Test
public
void
testUpdate
()
throws
Exception
{
ClassTypeDefinition
typeDefinition
=
TypesUtil
ClassTypeDefinition
classTypeDef
=
TypesUtil
.
createClassTypeDef
(
randomString
(),
null
,
"1.0"
,
Collections
.<
String
>
emptySet
(),
TypesUtil
.
createUniqueRequiredAttrDef
(
NAME
,
AtlasBaseTypeDef
.
ATLAS_TYPE_STRING
));
List
<
String
>
typesCreated
=
atlasClientV1
.
createType
(
AtlasType
.
toV1Json
(
typeDefinition
));
TypesDef
typesDef
=
new
TypesDef
(
Collections
.<
EnumTypeDefinition
>
emptyList
(),
Collections
.<
StructTypeDefinition
>
emptyList
(),
Collections
.<
TraitTypeDefinition
>
emptyList
(),
Collections
.
singletonList
(
classTypeDef
));
List
<
String
>
typesCreated
=
atlasClientV1
.
createType
(
AtlasType
.
toV1Json
(
typesDef
));
assertEquals
(
typesCreated
.
size
(),
1
);
assertEquals
(
typesCreated
.
get
(
0
),
typeDefinition
.
getTypeName
());
assertEquals
(
typesCreated
.
get
(
0
),
classTypeDef
.
getTypeName
());
//Add attribute description
typeDefinition
=
TypesUtil
.
createClassTypeDef
(
typeDefinition
.
getTypeName
(),
null
,
"2.0"
,
classTypeDef
=
TypesUtil
.
createClassTypeDef
(
classTypeDef
.
getTypeName
(),
null
,
"2.0"
,
Collections
.<
String
>
emptySet
(),
TypesUtil
.
createUniqueRequiredAttrDef
(
NAME
,
AtlasBaseTypeDef
.
ATLAS_TYPE_STRING
),
createOptionalAttrDef
(
DESCRIPTION
,
AtlasBaseTypeDef
.
ATLAS_TYPE_STRING
));
TypesDef
typeDef
=
new
TypesDef
(
Collections
.<
EnumTypeDefinition
>
emptyList
(),
Collections
.<
StructTypeDefinition
>
emptyList
(),
Collections
.<
TraitTypeDefinition
>
emptyList
(),
Collections
.
singletonList
(
typeDefinition
));
TypesDef
typeDef
=
new
TypesDef
(
Collections
.<
EnumTypeDefinition
>
emptyList
(),
Collections
.<
StructTypeDefinition
>
emptyList
(),
Collections
.<
TraitTypeDefinition
>
emptyList
(),
Collections
.
singletonList
(
classTypeDef
));
List
<
String
>
typesUpdated
=
atlasClientV1
.
updateType
(
typeDef
);
assertEquals
(
typesUpdated
.
size
(),
1
);
Assert
.
assertTrue
(
typesUpdated
.
contains
(
typeDefinition
.
getTypeName
()));
Assert
.
assertTrue
(
typesUpdated
.
contains
(
classTypeDef
.
getTypeName
()));
TypesDef
updatedTypeDef
=
atlasClientV1
.
getType
(
typeDefinition
.
getTypeName
());
TypesDef
updatedTypeDef
=
atlasClientV1
.
getType
(
classTypeDef
.
getTypeName
());
assertNotNull
(
updatedTypeDef
);
ClassTypeDefinition
updatedType
=
updatedTypeDef
.
getClassTypes
().
get
(
0
);
...
...
@@ -135,11 +149,18 @@ public class TypesJerseyResourceIT extends BaseResourceIT {
Assert
.
assertNotNull
(
response
.
get
(
AtlasClient
.
DEFINITION
));
Assert
.
assertNotNull
(
response
.
get
(
AtlasClient
.
REQUEST_ID
));
String
typesJson
=
response
.
getString
(
AtlasClient
.
DEFINITION
);
final
TypesDef
typesDef
=
AtlasType
.
fromV1Json
(
typesJson
,
TypesDef
.
class
);
List
<
ClassTypeDefinition
>
hierarchicalTypeDefinitions
=
typesDef
.
getClassTypes
();
for
(
ClassTypeDefinition
classType
:
hierarchicalTypeDefinitions
)
{
for
(
AttributeDefinition
attrDef
:
classType
.
getAttributeDefinitions
())
{
TypesDef
typesDef
=
AtlasType
.
fromV1Json
(
response
.
getString
(
AtlasClient
.
DEFINITION
),
TypesDef
.
class
);
List
<?
extends
HierarchicalTypeDefinition
>
hierarchicalTypeDefs
=
Collections
.
emptyList
();
if
(
typeDefinition
instanceof
ClassTypeDefinition
)
{
hierarchicalTypeDefs
=
typesDef
.
getClassTypes
();
}
else
if
(
typeDefinition
instanceof
TraitTypeDefinition
)
{
hierarchicalTypeDefs
=
typesDef
.
getTraitTypes
();
}
for
(
HierarchicalTypeDefinition
hierarchicalTypes
:
hierarchicalTypeDefs
)
{
for
(
AttributeDefinition
attrDef
:
hierarchicalTypes
.
getAttributeDefinitions
())
{
if
(
NAME
.
equals
(
attrDef
.
getName
()))
{
assertEquals
(
attrDef
.
getIsIndexable
(),
true
);
assertEquals
(
attrDef
.
getIsUnique
(),
true
);
...
...
@@ -190,14 +211,22 @@ public class TypesJerseyResourceIT extends BaseResourceIT {
@Test
public
void
testListTypesByFilter
()
throws
Exception
{
AttributeDefinition
attr
=
TypesUtil
.
createOptionalAttrDef
(
"attr"
,
AtlasBaseTypeDef
.
ATLAS_TYPE_STRING
);
String
a
=
createType
(
AtlasType
.
toV1Json
(
TypesUtil
.
createClassTypeDef
(
"A"
+
randomString
(),
null
,
Collections
.<
String
>
emptySet
(),
attr
))).
get
(
0
);
String
a1
=
createType
(
AtlasType
.
toV1Json
(
TypesUtil
.
createClassTypeDef
(
"A1"
+
randomString
(),
null
,
Collections
.
singleton
(
a
),
attr
))).
get
(
0
);
String
b
=
createType
(
AtlasType
.
toV1Json
(
TypesUtil
.
createClassTypeDef
(
"B"
+
randomString
(),
null
,
Collections
.<
String
>
emptySet
(),
attr
))).
get
(
0
);
String
c
=
createType
(
AtlasType
.
toV1Json
(
TypesUtil
.
createClassTypeDef
(
"C"
+
randomString
(),
null
,
new
HashSet
<>(
Arrays
.
asList
(
a
,
b
)),
attr
))).
get
(
0
);
ClassTypeDefinition
classTypeDef
=
TypesUtil
.
createClassTypeDef
(
"A"
+
randomString
(),
null
,
Collections
.
emptySet
(),
attr
);
TypesDef
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
(
classTypeDef
));
String
a
=
createType
(
AtlasType
.
toV1Json
(
typesDef
)).
get
(
0
);
classTypeDef
=
TypesUtil
.
createClassTypeDef
(
"A1"
+
randomString
(),
null
,
Collections
.
singleton
(
a
),
attr
);
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
(
classTypeDef
));
String
a1
=
createType
(
AtlasType
.
toV1Json
(
typesDef
)).
get
(
0
);
classTypeDef
=
TypesUtil
.
createClassTypeDef
(
"B"
+
randomString
(),
null
,
Collections
.<
String
>
emptySet
(),
attr
);
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
(
classTypeDef
));
String
b
=
createType
(
AtlasType
.
toV1Json
(
typesDef
)).
get
(
0
);
classTypeDef
=
TypesUtil
.
createClassTypeDef
(
"C"
+
randomString
(),
null
,
new
HashSet
<>(
Arrays
.
asList
(
a
,
b
)),
attr
);
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
(
classTypeDef
));
String
c
=
createType
(
AtlasType
.
toV1Json
(
typesDef
)).
get
(
0
);
List
<
String
>
results
=
atlasClientV1
.
listTypes
(
DataTypes
.
TypeCategory
.
CLASS
,
a
,
b
);
assertEquals
(
results
,
Arrays
.
asList
(
a1
),
"Results: "
+
results
);
...
...
@@ -209,7 +238,9 @@ public class TypesJerseyResourceIT extends BaseResourceIT {
for
(
String
traitName
:
traitNames
)
{
TraitTypeDefinition
traitTypeDef
=
TypesUtil
.
createTraitTypeDef
(
traitName
,
null
,
Collections
.<
String
>
emptySet
());
String
json
=
AtlasType
.
toV1Json
(
traitTypeDef
);
TypesDef
typesDef
=
new
TypesDef
(
Collections
.
emptyList
(),
Collections
.
emptyList
(),
Collections
.
singletonList
(
traitTypeDef
),
Collections
.
emptyList
());
String
json
=
AtlasType
.
toV1Json
(
typesDef
);
createType
(
json
);
}
...
...
@@ -236,7 +267,7 @@ public class TypesJerseyResourceIT extends BaseResourceIT {
createOptionalAttrDef
(
"parameters"
,
AtlasBaseTypeDef
.
getMapTypeName
(
AtlasBaseTypeDef
.
ATLAS_TYPE_STRING
,
AtlasBaseTypeDef
.
ATLAS_TYPE_STRING
)),
TypesUtil
.
createRequiredAttrDef
(
"type"
,
AtlasBaseTypeDef
.
ATLAS_TYPE_STRING
),
new
AttributeDefinition
(
"database"
,
"database"
,
Multiplicity
.
REQUIRED
,
false
,
"database"
));
new
AttributeDefinition
(
"database"
,
"database"
,
Multiplicity
.
REQUIRED
,
false
,
null
));
typeDefinitions
.
add
(
tableTypeDefinition
);
TraitTypeDefinition
fetlTypeDefinition
=
TypesUtil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment