Commit 98163440 by Ashutosh Mestry

ATLAS-3515: Migration import now creates new types and then updates existing types.

parent d5c8bf40
...@@ -43,14 +43,13 @@ public class ImportTypeDefProcessor { ...@@ -43,14 +43,13 @@ public class ImportTypeDefProcessor {
public void processTypes(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException { public void processTypes(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException {
setGuidToEmpty(typeDefinitionMap); setGuidToEmpty(typeDefinitionMap);
typeAttributeDifference.updateTypes(typeDefinitionMap, result);
AtlasTypesDef typesToCreate = AtlasTypeDefStoreInitializer.getTypesToCreate(typeDefinitionMap, this.typeRegistry); AtlasTypesDef typesToCreate = AtlasTypeDefStoreInitializer.getTypesToCreate(typeDefinitionMap, this.typeRegistry);
if (!typesToCreate.isEmpty()) { if (!typesToCreate.isEmpty()) {
typeDefStore.createTypesDef(typesToCreate); typeDefStore.createTypesDef(typesToCreate);
updateMetricsForTypesDef(typesToCreate, result); updateMetricsForTypesDef(typesToCreate, result);
} }
typeAttributeDifference.updateTypes(typeDefinitionMap, result);
} }
private void setGuidToEmpty(AtlasTypesDef typesDef) { private void setGuidToEmpty(AtlasTypesDef typesDef) {
......
...@@ -49,16 +49,15 @@ public class TypeAttributeDifference { ...@@ -49,16 +49,15 @@ public class TypeAttributeDifference {
} }
public void updateTypes(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException { public void updateTypes(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException {
updateEnumDef(typeDefinitionMap.getEnumDefs(), result);
updateEntityDef(typeDefinitionMap, result); updateStructDef(typeDefinitionMap.getStructDefs(), result);
updateClassificationDef(typeDefinitionMap, result); updateClassificationDef(typeDefinitionMap.getClassificationDefs(), result);
updateEnumDef(typeDefinitionMap, result); updateEntityDef(typeDefinitionMap.getEntityDefs(), result);
updateStructDef(typeDefinitionMap, result); updateRelationshipDefs(typeDefinitionMap.getRelationshipDefs(), result);
updateRelationshipDefs(typeDefinitionMap, result);
} }
private void updateEntityDef(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException { private void updateEntityDef(List<AtlasEntityDef> entityDefs, AtlasImportResult result) throws AtlasBaseException {
for (AtlasEntityDef def : typeDefinitionMap.getEntityDefs()) { for (AtlasEntityDef def : entityDefs) {
AtlasEntityDef existing = typeRegistry.getEntityDefByName(def.getName()); AtlasEntityDef existing = typeRegistry.getEntityDefByName(def.getName());
if (existing != null && addAttributes(existing, def)) { if (existing != null && addAttributes(existing, def)) {
typeDefStore.updateEntityDefByName(existing.getName(), existing); typeDefStore.updateEntityDefByName(existing.getName(), existing);
...@@ -67,8 +66,8 @@ public class TypeAttributeDifference { ...@@ -67,8 +66,8 @@ public class TypeAttributeDifference {
} }
} }
private void updateClassificationDef(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException { private void updateClassificationDef(List<AtlasClassificationDef> classificationDefs, AtlasImportResult result) throws AtlasBaseException {
for (AtlasClassificationDef def : typeDefinitionMap.getClassificationDefs()) { for (AtlasClassificationDef def : classificationDefs) {
AtlasClassificationDef existing = typeRegistry.getClassificationDefByName(def.getName()); AtlasClassificationDef existing = typeRegistry.getClassificationDefByName(def.getName());
if (existing != null && addAttributes(existing, def)) { if (existing != null && addAttributes(existing, def)) {
typeDefStore.updateClassificationDefByName(existing.getName(), existing); typeDefStore.updateClassificationDefByName(existing.getName(), existing);
...@@ -77,18 +76,20 @@ public class TypeAttributeDifference { ...@@ -77,18 +76,20 @@ public class TypeAttributeDifference {
} }
} }
private void updateEnumDef(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException { private void updateEnumDef(List<AtlasEnumDef> enumDefs, AtlasImportResult result) throws AtlasBaseException {
for (AtlasEnumDef def : typeDefinitionMap.getEnumDefs()) { for (AtlasEnumDef def : enumDefs) {
AtlasEnumDef existing = typeRegistry.getEnumDefByName(def.getName()); AtlasEnumDef existing = typeRegistry.getEnumDefByName(def.getName());
if (existing != null && addElements(existing, def)) { if (existing != null && addElements(existing, def)) {
typeDefStore.updateEnumDefByName(existing.getName(), existing); typeDefStore.updateEnumDefByName(existing.getName(), existing);
result.incrementMeticsCounter("typedef:enum:update"); result.incrementMeticsCounter("typedef:enum:update");
} else {
} }
} }
} }
private void updateStructDef(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException { private void updateStructDef(List<AtlasStructDef> structDefs, AtlasImportResult result) throws AtlasBaseException {
for (AtlasStructDef def : typeDefinitionMap.getStructDefs()) { for (AtlasStructDef def : structDefs) {
AtlasStructDef existing = typeRegistry.getStructDefByName(def.getName()); AtlasStructDef existing = typeRegistry.getStructDefByName(def.getName());
if (existing != null && addAttributes(existing, def)) { if (existing != null && addAttributes(existing, def)) {
typeDefStore.updateStructDefByName(existing.getName(), existing); typeDefStore.updateStructDefByName(existing.getName(), existing);
...@@ -97,8 +98,8 @@ public class TypeAttributeDifference { ...@@ -97,8 +98,8 @@ public class TypeAttributeDifference {
} }
} }
private void updateRelationshipDefs(AtlasTypesDef typeDefinitionMap, AtlasImportResult result) throws AtlasBaseException { private void updateRelationshipDefs(List<AtlasRelationshipDef> relationshipDefs, AtlasImportResult result) throws AtlasBaseException {
for (AtlasRelationshipDef def : typeDefinitionMap.getRelationshipDefs()) { for (AtlasRelationshipDef def : relationshipDefs) {
AtlasRelationshipDef existing = typeRegistry.getRelationshipDefByName(def.getName()); AtlasRelationshipDef existing = typeRegistry.getRelationshipDefByName(def.getName());
if (existing != null && addAttributes(existing, def)) { if (existing != null && addAttributes(existing, def)) {
typeDefStore.updateRelationshipDefByName(existing.getName(), existing); typeDefStore.updateRelationshipDefByName(existing.getName(), existing);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment