You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by sh...@apache.org on 2015/12/22 11:24:02 UTC
incubator-atlas git commit: ATLAS-383 tests for classtype.convert()
with id (sumasai via shwethags)
Repository: incubator-atlas
Updated Branches:
refs/heads/master 30a2ec1fa -> aeec7618a
ATLAS-383 tests for classtype.convert() with id (sumasai via shwethags)
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/aeec7618
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/aeec7618
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/aeec7618
Branch: refs/heads/master
Commit: aeec7618a8505f75715f74530ea900cf65bc847d
Parents: 30a2ec1
Author: Shwetha GS <ss...@hortonworks.com>
Authored: Tue Dec 22 15:52:25 2015 +0530
Committer: Shwetha GS <ss...@hortonworks.com>
Committed: Tue Dec 22 15:52:25 2015 +0530
----------------------------------------------------------------------
release-log.txt | 1 +
.../test/java/org/apache/atlas/TestUtils.java | 57 ++++++++++++++++----
.../GraphBackedMetadataRepositoryTest.java | 2 +-
.../graph/GraphRepoMapperScaleTest.java | 2 +-
.../service/DefaultMetadataServiceTest.java | 44 +++++++++++----
5 files changed, 85 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/aeec7618/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index cdee3f6..d403982 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -5,6 +5,7 @@ Apache Atlas Release Notes
INCOMPATIBLE CHANGES:
ALL CHANGES:
+ATLAS-383 tests for classtype.convert() with id (sumasai via shwethags)
ATLAS-263 Searching for a multi word trait always returns empty result (girishrp via shwethags)
--Release 0.6-incubating
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/aeec7618/repository/src/test/java/org/apache/atlas/TestUtils.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/TestUtils.java b/repository/src/test/java/org/apache/atlas/TestUtils.java
index 2a45bc8..a77239c 100755
--- a/repository/src/test/java/org/apache/atlas/TestUtils.java
+++ b/repository/src/test/java/org/apache/atlas/TestUtils.java
@@ -187,12 +187,14 @@ public final class TestUtils {
public static final String DATABASE_TYPE = "hive_database";
public static final String DATABASE_NAME = "foo";
public static final String TABLE_TYPE = "hive_table";
- public static final String PARTITION_TYPE = "partition_type";
- public static final String SERDE_TYPE = "serdeType";
public static final String TABLE_NAME = "bar";
public static final String CLASSIFICATION = "classification";
public static final String PII = "PII";
public static final String SUPER_TYPE_NAME = "Base";
+ public static final String STORAGE_DESC_TYPE = "hive_storagedesc";
+ public static final String PARTITION_STRUCT_TYPE = "partition_struct_type";
+ public static final String PARTITION_CLASS_TYPE = "partition_class_type";
+ public static final String SERDE_TYPE = "serdeType";
public static TypesDef defineHiveTypes() {
HierarchicalTypeDefinition<ClassType> superTypeDefinition =
@@ -210,8 +212,8 @@ public final class TestUtils {
StructTypeDefinition structTypeDefinition = new StructTypeDefinition("serdeType",
new AttributeDefinition[]{createRequiredAttrDef("name", DataTypes.STRING_TYPE),
- createRequiredAttrDef("serde", DataTypes.STRING_TYPE),
- createOptionalAttrDef("description", DataTypes.STRING_TYPE)});
+ createRequiredAttrDef("serde", DataTypes.STRING_TYPE),
+ createOptionalAttrDef("description", DataTypes.STRING_TYPE)});
EnumValue values[] = {new EnumValue("MANAGED", 1), new EnumValue("EXTERNAL", 2),};
@@ -222,9 +224,46 @@ public final class TestUtils {
createRequiredAttrDef("name", DataTypes.STRING_TYPE),
createRequiredAttrDef("type", DataTypes.STRING_TYPE));
- StructTypeDefinition partitionDefinition = new StructTypeDefinition("partition_type",
+ StructTypeDefinition partitionDefinition = new StructTypeDefinition("partition_struct_type",
new AttributeDefinition[]{createRequiredAttrDef("name", DataTypes.STRING_TYPE),});
+ AttributeDefinition[] attributeDefinitions = new AttributeDefinition[]{
+ new AttributeDefinition("cols", String.format("array<%s>", "column_type"),
+ Multiplicity.OPTIONAL, true, null),
+ new AttributeDefinition("location", DataTypes.STRING_TYPE.getName(), Multiplicity.OPTIONAL, false,
+ null),
+ new AttributeDefinition("inputFormat", DataTypes.STRING_TYPE.getName(), Multiplicity.OPTIONAL, false,
+ null),
+ new AttributeDefinition("outputFormat", DataTypes.STRING_TYPE.getName(), Multiplicity.OPTIONAL, false,
+ null),
+ new AttributeDefinition("compressed", DataTypes.BOOLEAN_TYPE.getName(), Multiplicity.REQUIRED, false,
+ null),
+ new AttributeDefinition("numBuckets", DataTypes.INT_TYPE.getName(), Multiplicity.OPTIONAL, false,
+ null),
+ };
+
+ HierarchicalTypeDefinition<ClassType> storageDescClsDef =
+ new HierarchicalTypeDefinition<>(ClassType.class, STORAGE_DESC_TYPE,
+ ImmutableList.of(SUPER_TYPE_NAME), attributeDefinitions);
+
+ AttributeDefinition[] partClsAttributes = new AttributeDefinition[]{
+ new AttributeDefinition("values", DataTypes.arrayTypeName(DataTypes.STRING_TYPE.getName()),
+ Multiplicity.OPTIONAL, false, null),
+ new AttributeDefinition("table", TABLE_TYPE, Multiplicity.REQUIRED, false, null),
+ new AttributeDefinition("createTime", DataTypes.LONG_TYPE.getName(), Multiplicity.OPTIONAL, false,
+ null),
+ new AttributeDefinition("lastAccessTime", DataTypes.LONG_TYPE.getName(), Multiplicity.OPTIONAL, false,
+ null),
+ new AttributeDefinition("sd", STORAGE_DESC_TYPE, Multiplicity.REQUIRED, true,
+ null),
+ new AttributeDefinition("columns", DataTypes.arrayTypeName("column_type"),
+ Multiplicity.OPTIONAL, true, null),
+ new AttributeDefinition("parameters", new DataTypes.MapType(DataTypes.STRING_TYPE, DataTypes.STRING_TYPE).getName(), Multiplicity.OPTIONAL, false, null),};
+
+ HierarchicalTypeDefinition<ClassType> partClsDef =
+ new HierarchicalTypeDefinition<>(ClassType.class, "partition_class_type",
+ ImmutableList.of(SUPER_TYPE_NAME), partClsAttributes);
+
HierarchicalTypeDefinition<ClassType> tableTypeDefinition =
createClassTypeDef(TABLE_TYPE, ImmutableList.of(SUPER_TYPE_NAME),
TypesUtil.createUniqueRequiredAttrDef("name", DataTypes.STRING_TYPE),
@@ -241,13 +280,13 @@ public final class TestUtils {
new AttributeDefinition("columns", String.format("array<%s>", "column_type"),
Multiplicity.OPTIONAL, true, null),
// array of structs
- new AttributeDefinition("partitions", String.format("array<%s>", "partition_type"),
+ new AttributeDefinition("partitions", String.format("array<%s>", "partition_struct_type"),
Multiplicity.OPTIONAL, true, null),
// map of primitives
new AttributeDefinition("parametersMap",
DataTypes.mapTypeName(DataTypes.STRING_TYPE.getName(), DataTypes.STRING_TYPE.getName()),
Multiplicity.OPTIONAL, true, null),
- //map of classes -
+ //map of classes -
new AttributeDefinition("columnsMap",
DataTypes.mapTypeName(DataTypes.STRING_TYPE.getName(),
"column_type"),
@@ -255,7 +294,7 @@ public final class TestUtils {
//map of structs
new AttributeDefinition("partitionsMap",
DataTypes.mapTypeName(DataTypes.STRING_TYPE.getName(),
- "partition_type"),
+ "partition_struct_type"),
Multiplicity.OPTIONAL, true, null),
// struct reference
new AttributeDefinition("serde1", "serdeType", Multiplicity.OPTIONAL, false, null),
@@ -279,7 +318,7 @@ public final class TestUtils {
return TypesUtil.getTypesDef(ImmutableList.of(enumTypeDefinition),
ImmutableList.of(structTypeDefinition, partitionDefinition),
ImmutableList.of(classificationTypeDefinition, fetlClassificationTypeDefinition, piiTypeDefinition),
- ImmutableList.of(superTypeDefinition, databaseTypeDefinition, columnsDefinition, tableTypeDefinition));
+ ImmutableList.of(superTypeDefinition, databaseTypeDefinition, columnsDefinition, tableTypeDefinition, storageDescClsDef, partClsDef));
}
public static Collection<IDataType> createHiveTypes(TypeSystem typeSystem) throws Exception {
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/aeec7618/repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryTest.java b/repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryTest.java
index 22ff1d6..a23556b 100755
--- a/repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryTest.java
+++ b/repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryTest.java
@@ -561,7 +561,7 @@ public class GraphBackedMetadataRepositoryTest {
// HashMap<String, Struct> partitionsMap = new HashMap<>();
ArrayList<Struct> partitions = new ArrayList<>();
for (int index = 0; index < 5; index++) {
- Struct partitionInstance = new Struct("partition_type");
+ Struct partitionInstance = new Struct(TestUtils.PARTITION_STRUCT_TYPE);
final String name = "partition_" + index;
partitionInstance.set("name", name);
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/aeec7618/repository/src/test/java/org/apache/atlas/repository/graph/GraphRepoMapperScaleTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/graph/GraphRepoMapperScaleTest.java b/repository/src/test/java/org/apache/atlas/repository/graph/GraphRepoMapperScaleTest.java
index 2d01bbe..3f71eb3 100755
--- a/repository/src/test/java/org/apache/atlas/repository/graph/GraphRepoMapperScaleTest.java
+++ b/repository/src/test/java/org/apache/atlas/repository/graph/GraphRepoMapperScaleTest.java
@@ -215,7 +215,7 @@ public class GraphRepoMapperScaleTest {
ArrayList<Struct> partitions = new ArrayList<>();
for (int index = 0; index < 5; index++) {
- Struct partitionInstance = new Struct("partition_type");
+ Struct partitionInstance = new Struct(TestUtils.PARTITION_STRUCT_TYPE);
partitionInstance.set("name", "partition_" + "-" + uberIndex + "-" + index);
partitions.add(partitionInstance);
}
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/aeec7618/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java b/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
index 8a80d8c..085888d 100644
--- a/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
+++ b/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
@@ -22,6 +22,10 @@ import com.google.common.collect.ImmutableList;
import com.google.inject.Inject;
import com.thinkaurelius.titan.core.TitanGraph;
import com.thinkaurelius.titan.core.util.TitanCleanup;
+import org.apache.atlas.AtlasClient;
+import org.apache.atlas.typesystem.exception.TypeNotFoundException;
+import org.apache.atlas.typesystem.exception.EntityNotFoundException;
+import org.apache.atlas.utils.ParamChecker;
import org.apache.atlas.RepositoryMetadataModule;
import org.apache.atlas.TestUtils;
import org.apache.atlas.repository.graph.GraphProvider;
@@ -29,15 +33,12 @@ import org.apache.atlas.services.MetadataService;
import org.apache.atlas.typesystem.Referenceable;
import org.apache.atlas.typesystem.Struct;
import org.apache.atlas.typesystem.TypesDef;
-import org.apache.atlas.typesystem.exception.EntityNotFoundException;
-import org.apache.atlas.typesystem.exception.TypeNotFoundException;
import org.apache.atlas.typesystem.json.InstanceSerialization;
import org.apache.atlas.typesystem.json.TypesSerialization;
import org.apache.atlas.typesystem.persistence.Id;
import org.apache.atlas.typesystem.types.EnumValue;
import org.apache.atlas.typesystem.types.TypeSystem;
import org.apache.atlas.typesystem.types.ValueConversionException;
-import org.apache.atlas.utils.ParamChecker;
import org.apache.commons.lang.RandomStringUtils;
import org.codehaus.jettison.json.JSONArray;
import org.testng.Assert;
@@ -208,7 +209,7 @@ public class DefaultMetadataServiceTest {
public void testUpdateEntityWithMap() throws Exception {
final Map<String, Struct> partsMap = new HashMap<>();
- partsMap.put("part0", new Struct("partition_type",
+ partsMap.put("part0", new Struct(TestUtils.PARTITION_STRUCT_TYPE,
new HashMap<String, Object>() {{
put("name", "test");
}}));
@@ -223,7 +224,7 @@ public class DefaultMetadataServiceTest {
Assert.assertTrue(partsMap.get("part0").equalsContents(((Map<String, Struct>)tableDefinition.get("partitionsMap")).get("part0")));
//update map - add a map key
- partsMap.put("part1", new Struct("partition_type",
+ partsMap.put("part1", new Struct(TestUtils.PARTITION_STRUCT_TYPE,
new HashMap<String, Object>() {{
put("name", "test1");
}}));
@@ -239,7 +240,7 @@ public class DefaultMetadataServiceTest {
//update map - remove a key and add another key
partsMap.remove("part0");
- partsMap.put("part2", new Struct("partition_type",
+ partsMap.put("part2", new Struct(TestUtils.PARTITION_STRUCT_TYPE,
new HashMap<String, Object>() {{
put("name", "test2");
}}));
@@ -440,6 +441,29 @@ public class DefaultMetadataServiceTest {
Assert.assertNull(((Struct)tableDefinition.get("serde1")).get("description"));
}
+
+ @Test
+ public void testCreateEntityWithReferenceableHavingIdNoValue() throws Exception {
+
+ //ATLAS-383 Test
+ Referenceable sdReferenceable = new Referenceable(TestUtils.STORAGE_DESC_TYPE);
+ sdReferenceable.set(AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, TestUtils.randomString());
+ sdReferenceable.set("compressed", "false");
+ sdReferenceable.set("location", "hdfs://tmp/hive-user");
+ String sdGuid = createInstance(sdReferenceable);
+
+ Referenceable sdRef2 = new Referenceable(sdGuid, TestUtils.STORAGE_DESC_TYPE, null);
+
+ Referenceable partRef = new Referenceable(TestUtils.PARTITION_CLASS_TYPE);
+ partRef.set(AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, "part-unique");
+ partRef.set("values", ImmutableList.of("2014-10-01"));
+ partRef.set("table", table);
+ partRef.set("sd", sdRef2);
+
+ String partGuid = createInstance(partRef);
+ Assert.assertNotNull(partGuid);
+ }
+
@Test
public void testClassUpdate() throws Exception {
//Create new db instance
@@ -486,10 +510,10 @@ public class DefaultMetadataServiceTest {
//Add array of structs
TestUtils.dumpGraph(graphProvider.get());
- final Struct partition1 = new Struct(TestUtils.PARTITION_TYPE);
+ final Struct partition1 = new Struct(TestUtils.PARTITION_STRUCT_TYPE);
partition1.set("name", "part1");
- final Struct partition2 = new Struct(TestUtils.PARTITION_TYPE);
+ final Struct partition2 = new Struct(TestUtils.PARTITION_STRUCT_TYPE);
partition2.set("name", "part2");
List<Struct> partitions = new ArrayList<Struct>(){{ add(partition1); add(partition2); }};
@@ -508,7 +532,7 @@ public class DefaultMetadataServiceTest {
Assert.assertTrue(partitions.get(0).equalsContents(partitionsActual.get(0)));
//add a new element to array of struct
- final Struct partition3 = new Struct(TestUtils.PARTITION_TYPE);
+ final Struct partition3 = new Struct(TestUtils.PARTITION_STRUCT_TYPE);
partition3.set("name", "part3");
partitions.add(partition3);
table.set("partitions", partitions);
@@ -555,7 +579,7 @@ public class DefaultMetadataServiceTest {
Assert.assertTrue(partitions.get(0).equalsContents(partitionsActual.get(0)));
//add a repeated element to array of struct
- final Struct partition4 = new Struct(TestUtils.PARTITION_TYPE);
+ final Struct partition4 = new Struct(TestUtils.PARTITION_STRUCT_TYPE);
partition4.set("name", "part4");
partitions.add(partition4);
table.set("partitions", partitions);