ATLAS-4129: Glossary Bulk Import Bugs consolidated fix (ATLAS-4128, ATLAS-4131, ATLAS-4160, ATLAS-4130, ATLAS-4129)
Signed-off-by: Sarath Subramanian <sarath@apache.org>
diff --git a/client/client-v2/src/main/java/org/apache/atlas/AtlasClientV2.java b/client/client-v2/src/main/java/org/apache/atlas/AtlasClientV2.java
index 7bf5023..eb0e630 100644
--- a/client/client-v2/src/main/java/org/apache/atlas/AtlasClientV2.java
+++ b/client/client-v2/src/main/java/org/apache/atlas/AtlasClientV2.java
@@ -1014,10 +1014,10 @@
return readStreamContents(inputStream);
}
- public List<AtlasGlossaryTerm> importGlossary(String fileName) throws AtlasServiceException {
+ public BulkImportResponse importGlossary(String fileName) throws AtlasServiceException {
MultiPart multipartEntity = getMultiPartData(fileName);
- return callAPI(API_V2.IMPORT_GLOSSARY, List.class, multipartEntity);
+ return callAPI(API_V2.IMPORT_GLOSSARY, BulkImportResponse.class, multipartEntity);
}
diff --git a/intg/src/main/java/org/apache/atlas/bulkimport/BulkImportResponse.java b/intg/src/main/java/org/apache/atlas/bulkimport/BulkImportResponse.java
index 047d497..5b95047 100644
--- a/intg/src/main/java/org/apache/atlas/bulkimport/BulkImportResponse.java
+++ b/intg/src/main/java/org/apache/atlas/bulkimport/BulkImportResponse.java
@@ -17,13 +17,18 @@
*/
package org.apache.atlas.bulkimport;
+import org.apache.atlas.model.annotation.AtlasJSON;
+
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-public class BulkImportResponse {
+import static org.apache.atlas.bulkimport.BulkImportResponse.ImportStatus.SUCCESS;
- private List<ImportInfo> failedImportInfoList = new ArrayList<ImportInfo>();
- private List<ImportInfo> successImportInfoList = new ArrayList<ImportInfo>();
+@AtlasJSON
+public class BulkImportResponse implements Serializable {
+ private List<ImportInfo> failedImportInfoList = new ArrayList<>();
+ private List<ImportInfo> successImportInfoList = new ArrayList<>();
public BulkImportResponse() {}
@@ -31,36 +36,32 @@
return failedImportInfoList;
}
- public void setFailedImportInfoList(List<ImportInfo> failedImportInfoList){
+ public void setFailedImportInfoList(List<ImportInfo> failedImportInfoList) {
this.failedImportInfoList = failedImportInfoList;
}
- public void setFailedImportInfoList(ImportInfo importInfo){
- List<ImportInfo> failedImportInfoList = this.failedImportInfoList;
-
- if (failedImportInfoList == null) {
- failedImportInfoList = new ArrayList<>();
+ public void addToFailedImportInfoList(ImportInfo importInfo) {
+ if (this.failedImportInfoList == null) {
+ this.failedImportInfoList = new ArrayList<>();
}
- failedImportInfoList.add(importInfo);
- setFailedImportInfoList(failedImportInfoList);
+
+ this.failedImportInfoList.add(importInfo);
}
public List<ImportInfo> getSuccessImportInfoList() {
return successImportInfoList;
}
- public void setSuccessImportInfoList(List<ImportInfo> successImportInfoList){
+ public void setSuccessImportInfoList(List<ImportInfo> successImportInfoList) {
this.successImportInfoList = successImportInfoList;
}
- public void setSuccessImportInfoList(ImportInfo importInfo){
- List<ImportInfo> successImportInfoList = this.successImportInfoList;
-
+ public void addToSuccessImportInfoList(ImportInfo importInfo) {
if (successImportInfoList == null) {
successImportInfoList = new ArrayList<>();
}
+
successImportInfoList.add(importInfo);
- setSuccessImportInfoList(successImportInfoList);
}
public enum ImportStatus {
@@ -75,14 +76,16 @@
'}';
}
- static public class ImportInfo {
+ public static class ImportInfo {
private String parentObjectName;
private String childObjectName;
private ImportStatus importStatus;
private String remarks;
private Integer rowNumber;
+ public ImportInfo(){ }
+
public ImportInfo(String parentObjectName, String childObjectName, ImportStatus importStatus, String remarks, Integer rowNumber) {
this.parentObjectName = parentObjectName;
this.childObjectName = childObjectName;
@@ -92,19 +95,19 @@
}
public ImportInfo(String parentObjectName, String childObjectName, ImportStatus importStatus) {
- this(parentObjectName, childObjectName, importStatus, "",-1);
+ this(parentObjectName, childObjectName, importStatus, "", -1);
}
- public ImportInfo( ImportStatus importStatus, String remarks) {
- this("","", importStatus, remarks, -1);
+ public ImportInfo(ImportStatus importStatus, String remarks) {
+ this("", "", importStatus, remarks, -1);
}
- public ImportInfo( ImportStatus importStatus, String remarks, Integer rowNumber) {
- this("","", importStatus, remarks, rowNumber);
+ public ImportInfo(ImportStatus importStatus, String remarks, Integer rowNumber) {
+ this("", "", importStatus, remarks, rowNumber);
}
public ImportInfo(String parentObjectName, String childObjectName) {
- this(parentObjectName,childObjectName, ImportStatus.SUCCESS, "", -1);
+ this(parentObjectName, childObjectName, SUCCESS, "", -1);
}
public ImportInfo(String parentObjectName, String childObjectName, ImportStatus importStatus, String remarks) {
@@ -154,5 +157,4 @@
'}';
}
}
-
}
\ No newline at end of file
diff --git a/repository/src/main/java/org/apache/atlas/glossary/GlossaryService.java b/repository/src/main/java/org/apache/atlas/glossary/GlossaryService.java
index e526e1a..d156700 100644
--- a/repository/src/main/java/org/apache/atlas/glossary/GlossaryService.java
+++ b/repository/src/main/java/org/apache/atlas/glossary/GlossaryService.java
@@ -20,6 +20,8 @@
import org.apache.atlas.AtlasErrorCode;
import org.apache.atlas.SortOrder;
import org.apache.atlas.annotation.GraphTransaction;
+import org.apache.atlas.bulkimport.BulkImportResponse;
+import org.apache.atlas.bulkimport.BulkImportResponse.ImportInfo;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.model.glossary.AtlasGlossary;
import org.apache.atlas.model.glossary.AtlasGlossaryCategory;
@@ -54,7 +56,10 @@
import java.util.Set;
import java.util.stream.Collectors;
-import static org.apache.atlas.glossary.GlossaryUtils.*;
+import static org.apache.atlas.bulkimport.BulkImportResponse.ImportStatus.FAILED;
+import static org.apache.atlas.glossary.GlossaryUtils.getAtlasGlossaryCategorySkeleton;
+import static org.apache.atlas.glossary.GlossaryUtils.getAtlasGlossaryTermSkeleton;
+import static org.apache.atlas.glossary.GlossaryUtils.getGlossarySkeleton;
@Service
public class GlossaryService {
@@ -1106,19 +1111,29 @@
}
}
- public List<AtlasGlossaryTerm> importGlossaryData(InputStream inputStream, String fileName) throws AtlasBaseException {
- List<AtlasGlossaryTerm> ret;
-
+ public BulkImportResponse importGlossaryData(InputStream inputStream, String fileName) throws AtlasBaseException {
+ BulkImportResponse ret = new BulkImportResponse();
try {
if (StringUtils.isBlank(fileName)) {
throw new AtlasBaseException(AtlasErrorCode.INVALID_FILE_TYPE, fileName);
}
- List<String[]> fileData = FileUtils.readFileData(fileName, inputStream);
- List<String> failedTermMsgs = new ArrayList<>();
+ List<String[]> fileData = FileUtils.readFileData(fileName, inputStream);
+ List<AtlasGlossaryTerm> glossaryTerms = glossaryTermUtils.getGlossaryTermDataList(fileData, ret);
- ret = glossaryTermUtils.getGlossaryTermDataList(fileData, failedTermMsgs);
- ret = createGlossaryTerms(ret);
+ for (AtlasGlossaryTerm glossaryTerm : glossaryTerms) {
+ String glossaryTermName = glossaryTerm.getName();
+ String glossaryName = getGlossaryName(glossaryTerm);
+
+ try {
+ createTerm(glossaryTerm);
+ ret.addToSuccessImportInfoList(new ImportInfo(glossaryName, glossaryTermName));
+ } catch (AtlasBaseException e) {
+ LOG.error("Error while importing glossary term {}", glossaryTermName);
+
+ ret.addToFailedImportInfoList(new ImportInfo(glossaryName, glossaryTermName, FAILED, e.getMessage()));
+ }
+ }
} catch (IOException e) {
throw new AtlasBaseException(AtlasErrorCode.FAILED_TO_UPLOAD, fileName);
}
@@ -1126,6 +1141,19 @@
return ret;
}
+ private String getGlossaryName(AtlasGlossaryTerm glossaryTerm) {
+ String ret = "";
+ String glossaryTermQName = glossaryTerm.getQualifiedName();
+
+ if (StringUtils.isNotBlank(glossaryTermQName)){
+ String[] glossaryQnameSplit = glossaryTermQName.split("@");
+
+ ret = (glossaryQnameSplit.length == 2) ? glossaryQnameSplit[1] : "";
+ }
+
+ return ret;
+ }
+
private List<AtlasGlossaryTerm> createGlossaryTerms(List<AtlasGlossaryTerm> glossaryTerms) throws AtlasBaseException {
List<AtlasGlossaryTerm> ret = new ArrayList<>();
diff --git a/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java b/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java
index 0871ab5..647dd3b 100644
--- a/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java
+++ b/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java
@@ -18,6 +18,8 @@
package org.apache.atlas.glossary;
import org.apache.atlas.AtlasErrorCode;
+import org.apache.atlas.bulkimport.BulkImportResponse;
+import org.apache.atlas.bulkimport.BulkImportResponse.ImportInfo;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.model.glossary.AtlasGlossary;
import org.apache.atlas.model.glossary.AtlasGlossaryTerm;
@@ -53,6 +55,8 @@
import java.util.Set;
import java.util.stream.Collectors;
+import static org.apache.atlas.bulkimport.BulkImportResponse.ImportStatus.FAILED;
+
public class GlossaryTermUtils extends GlossaryUtils {
private static final Logger LOG = LoggerFactory.getLogger(GlossaryTermUtils.class);
private static final boolean DEBUG_ENABLED = LOG.isDebugEnabled();
@@ -529,12 +533,14 @@
}
}
- protected List<AtlasGlossaryTerm> getGlossaryTermDataList(List<String[]> fileData, List<String> failedTermMsgs) throws AtlasBaseException {
+ protected List<AtlasGlossaryTerm> getGlossaryTermDataList(List<String[]> fileData, BulkImportResponse bulkImportResponse) throws AtlasBaseException {
List<AtlasGlossaryTerm> glossaryTerms = new ArrayList<>();
Map<String, String> glossaryNameCache = new HashMap<>();
+ int rowCount = 1;
for (String[] record : fileData) {
- AtlasGlossaryTerm glossaryTerm = new AtlasGlossaryTerm();
+ List<String> failedTermMsgs = new ArrayList<>();
+ AtlasGlossaryTerm glossaryTerm = new AtlasGlossaryTerm();
if ((record.length < 1) || StringUtils.isBlank(record[0])) {
LOG.error("The GlossaryName is blank for the record : ", Arrays.toString(record));
@@ -570,15 +576,21 @@
if (glossaryGuid != null) {
glossaryNameCache.put(glossaryName, glossaryGuid);
glossaryTerm = populateGlossaryTermObject(failedTermMsgs, record, glossaryGuid);
- glossaryTerms.add(glossaryTerm);
}
+
+ if (failedTermMsgs.size() == 0) {
+ glossaryTerms.add(glossaryTerm);
+ } else {
+ String failedTermMsg = StringUtils.join(failedTermMsgs, "\n");
+ String glossaryTermName = glossaryTerm.getName();
+
+ bulkImportResponse.addToFailedImportInfoList(new ImportInfo(glossaryName, glossaryTermName, FAILED, failedTermMsg, rowCount));
+ }
+
+ rowCount++;
}
- if (failedTermMsgs.size() == 0) {
- return glossaryTerms;
- } else {
- throw new AtlasBaseException("The uploaded file has not been processed due to the following errors : " + "\n" + failedTermMsgs.toString());
- }
+ return glossaryTerms;
}
public static String getGlossaryTermHeaders() {
@@ -667,7 +679,7 @@
relatedTermHeader.setTermGuid(glossaryTermGuid);
ret.add(relatedTermHeader);
} else {
- failedTermMsgs.add("\n" + "The provided Reference Glossary and TermName does not exist in the system " +
+ failedTermMsgs.add(System.lineSeparator() + "The provided Reference Glossary and TermName does not exist in the system " +
dataArray[1] + FileUtils.COLON_CHARACTER + dataArray[0] + " for record with TermName : " + termName + " and GlossaryName : " + glossaryName);
}
}
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
index e6fe306..9f143d4 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
@@ -60,6 +60,7 @@
import org.apache.atlas.type.AtlasTypeRegistry;
import org.apache.atlas.type.AtlasTypeUtil;
import org.apache.atlas.bulkimport.BulkImportResponse;
+import org.apache.atlas.bulkimport.BulkImportResponse.ImportInfo;
import org.apache.atlas.util.FileUtils;
import org.apache.atlas.utils.AtlasEntityUtil;
import org.apache.atlas.utils.AtlasPerfMetrics.MetricRecorder;
@@ -87,6 +88,7 @@
import static java.lang.Boolean.FALSE;
import static org.apache.atlas.AtlasConfiguration.STORE_DIFFERENTIAL_AUDITS;
+import static org.apache.atlas.bulkimport.BulkImportResponse.ImportStatus.FAILED;
import static org.apache.atlas.model.instance.EntityMutations.EntityOperation.DELETE;
import static org.apache.atlas.model.instance.EntityMutations.EntityOperation.PURGE;
import static org.apache.atlas.model.instance.EntityMutations.EntityOperation.UPDATE;
@@ -1534,18 +1536,17 @@
Map<String, AtlasEntity> attributesToAssociate = getBusinessMetadataDefList(fileData, ret);
for (AtlasEntity entity : attributesToAssociate.values()) {
+ Map<String, Map<String, Object>> businessAttributes = entity.getBusinessAttributes();
+ String guid = entity.getGuid();
+
try {
- addOrUpdateBusinessAttributes(entity.getGuid(), entity.getBusinessAttributes(), true);
+ addOrUpdateBusinessAttributes(guid, businessAttributes, true);
- BulkImportResponse.ImportInfo successImportInfo = new BulkImportResponse.ImportInfo(entity.getGuid(), entity.getBusinessAttributes().toString());
-
- ret.setSuccessImportInfoList(successImportInfo);
+ ret.addToSuccessImportInfoList(new ImportInfo(guid, businessAttributes.toString()));
}catch (Exception e) {
- LOG.error("Error occurred while updating BusinessMetadata Attributes for Entity " + entity.getGuid());
+ LOG.error("Error occurred while updating BusinessMetadata Attributes for Entity " + guid);
- BulkImportResponse.ImportInfo failedImportInfo = new BulkImportResponse.ImportInfo(entity.getGuid(), entity.getBusinessAttributes().toString(), BulkImportResponse.ImportStatus.FAILED, e.getMessage());
-
- ret.getFailedImportInfoList().add(failedImportInfo);
+ ret.addToFailedImportInfoList(new ImportInfo(guid, businessAttributes.toString(), FAILED, e.getMessage()));
}
}
} catch (IOException e) {
@@ -1676,9 +1677,7 @@
for (String failedMsg : failedMsgList) {
LOG.error(failedMsg);
- BulkImportResponse.ImportInfo importInfo = new BulkImportResponse.ImportInfo(BulkImportResponse.ImportStatus.FAILED, failedMsg);
-
- bulkImportResponse.getFailedImportInfoList().add(importInfo);
+ bulkImportResponse.addToFailedImportInfoList(new ImportInfo(FAILED, failedMsg));
}
return ret;
@@ -1731,9 +1730,10 @@
if(missingFieldsCheck){
LOG.error("Missing fields: " + Arrays.toString(record) + " at line #" + lineIndex);
+
String failedTermMsgs = "Missing fields: " + Arrays.toString(record) + " at line #" + lineIndex;
- BulkImportResponse.ImportInfo importInfo = new BulkImportResponse.ImportInfo(BulkImportResponse.ImportStatus.FAILED, failedTermMsgs, lineIndex);
- bulkImportResponse.getFailedImportInfoList().add(importInfo);
+
+ bulkImportResponse.addToFailedImportInfoList(new ImportInfo(FAILED, failedTermMsgs, lineIndex));
}
return missingFieldsCheck;
}
diff --git a/repository/src/test/java/org/apache/atlas/glossary/GlossaryServiceTest.java b/repository/src/test/java/org/apache/atlas/glossary/GlossaryServiceTest.java
index 5867f2a..371b942 100644
--- a/repository/src/test/java/org/apache/atlas/glossary/GlossaryServiceTest.java
+++ b/repository/src/test/java/org/apache/atlas/glossary/GlossaryServiceTest.java
@@ -20,6 +20,7 @@
import org.apache.atlas.AtlasErrorCode;
import org.apache.atlas.SortOrder;
import org.apache.atlas.TestModules;
+import org.apache.atlas.bulkimport.BulkImportResponse;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.model.glossary.AtlasGlossary;
import org.apache.atlas.model.glossary.AtlasGlossaryCategory;
@@ -65,7 +66,11 @@
import java.util.HashSet;
import java.util.List;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
@Guice(modules = TestModules.TestOnlyModule.class)
public class GlossaryServiceTest {
@@ -933,17 +938,17 @@
@Test( dependsOnGroups = "Glossary.CREATE" )
public void testImportGlossaryData(){
try {
- InputStream inputStream = getFile(CSV_FILES,"template_1.csv");
- List<AtlasGlossaryTerm> atlasGlossaryTermList = glossaryService.importGlossaryData(inputStream,"template_1.csv");
+ InputStream inputStream = getFile(CSV_FILES,"template_1.csv");
+ BulkImportResponse bulkImportResponse = glossaryService.importGlossaryData(inputStream,"template_1.csv");
- assertNotNull(atlasGlossaryTermList);
- assertEquals(atlasGlossaryTermList.size(), 1);
+ assertNotNull(bulkImportResponse);
+ assertEquals(bulkImportResponse.getSuccessImportInfoList().size(), 1);
- InputStream inputStream1 = getFile(EXCEL_FILES,"template_1.xlsx");
- List<AtlasGlossaryTerm> atlasGlossaryTermList1 = glossaryService.importGlossaryData(inputStream1,"template_1.xlsx");
+ InputStream inputStream1 = getFile(EXCEL_FILES,"template_1.xlsx");
+ BulkImportResponse bulkImportResponse1 = glossaryService.importGlossaryData(inputStream1,"template_1.xlsx");
- assertNotNull(atlasGlossaryTermList1);
- assertEquals(atlasGlossaryTermList1.size(), 1);
+ assertNotNull(bulkImportResponse1);
+ assertEquals(bulkImportResponse1.getSuccessImportInfoList().size(), 1);
} catch (AtlasBaseException e){
fail("The GlossaryTerm should have been created "+e);
}
@@ -980,12 +985,11 @@
InputStream inputStream = getFile(CSV_FILES, "incorrectFile.csv");
try {
- glossaryService.importGlossaryData(inputStream, "incorrectFile.csv");
- fail("Error occurred : Failed to recognize the incorrect file.");
+ BulkImportResponse bulkImportResponse = glossaryService.importGlossaryData(inputStream, "incorrectFile.csv");
+
+ assertEquals(bulkImportResponse.getFailedImportInfoList().size(),1);
} catch (AtlasBaseException e) {
- assertEquals(e.getMessage(),"The uploaded file has not been processed due to the following errors : \n" +
- "[\n" +
- "The provided Reference Glossary and TermName does not exist in the system GentsFootwear: for record with TermName : BankBranch1 and GlossaryName : testBankingGlossary]");
+ fail("The incorrect file exception should have handled "+e);
}
}
diff --git a/webapp/src/main/java/org/apache/atlas/web/rest/GlossaryREST.java b/webapp/src/main/java/org/apache/atlas/web/rest/GlossaryREST.java
index 78d52ad..c1cf7be 100644
--- a/webapp/src/main/java/org/apache/atlas/web/rest/GlossaryREST.java
+++ b/webapp/src/main/java/org/apache/atlas/web/rest/GlossaryREST.java
@@ -21,6 +21,7 @@
import com.sun.jersey.multipart.FormDataParam;
import org.apache.atlas.AtlasErrorCode;
import org.apache.atlas.SortOrder;
+import org.apache.atlas.bulkimport.BulkImportResponse;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.glossary.GlossaryService;
import org.apache.atlas.glossary.GlossaryTermUtils;
@@ -983,8 +984,8 @@
@POST
@Path("/import")
@Consumes(MediaType.MULTIPART_FORM_DATA)
- public List<AtlasGlossaryTerm> importGlossaryData(@FormDataParam("file") InputStream inputStream,
- @FormDataParam("file") FormDataContentDisposition fileDetail) throws AtlasBaseException {
+ public BulkImportResponse importGlossaryData(@FormDataParam("file") InputStream inputStream,
+ @FormDataParam("file") FormDataContentDisposition fileDetail) throws AtlasBaseException {
return glossaryService.importGlossaryData(inputStream, fileDetail.getFileName());
}
}
\ No newline at end of file
diff --git a/webapp/src/test/java/org/apache/atlas/web/integration/GlossaryClientV2IT.java b/webapp/src/test/java/org/apache/atlas/web/integration/GlossaryClientV2IT.java
index ff3bcb5..cb68b11 100644
--- a/webapp/src/test/java/org/apache/atlas/web/integration/GlossaryClientV2IT.java
+++ b/webapp/src/test/java/org/apache/atlas/web/integration/GlossaryClientV2IT.java
@@ -23,6 +23,7 @@
import com.sun.jersey.api.client.ClientResponse;
import org.apache.atlas.AtlasClientV2;
import org.apache.atlas.AtlasServiceException;
+import org.apache.atlas.bulkimport.BulkImportResponse;
import org.apache.atlas.model.glossary.AtlasGlossary;
import org.apache.atlas.model.glossary.AtlasGlossaryCategory;
import org.apache.atlas.model.glossary.AtlasGlossaryTerm;
@@ -115,7 +116,7 @@
public void getAllGlossary() throws Exception {
List<AtlasGlossary> list = atlasClientV2.getAllGlossaries("ASC", 5, 0);
assertNotNull(list);
- assertEquals(list.size(), 2);
+ assertEquals(list.size(), 3);
}
@Test(dependsOnMethods = "testCreateGlossary")
@@ -240,7 +241,7 @@
}
List<AtlasGlossaryTerm> termList = atlasClientV2.createGlossaryTerms(list);
assertNotNull(termList);
- assertEquals(termList.size(), 2);
+ assertEquals(termList.size(), 3);
}
@Test(dependsOnMethods = "testCreateGlossary")
@@ -434,22 +435,15 @@
@Test()
public void testImportGlossaryData() {
try {
- String filePath = TestResourceFileUtils.getTestFilePath("template.csv");
- List<AtlasGlossaryTerm> terms = atlasClientV2.importGlossary(filePath);
+ String filePath = TestResourceFileUtils.getTestFilePath("template.csv");
+ BulkImportResponse terms = atlasClientV2.importGlossary(filePath);
assertNotNull(terms);
- List<AtlasGlossaryTerm> termList = mapper.convertValue(terms, new TypeReference<List<AtlasGlossaryTerm>>() { });
+ assertEquals(terms.getSuccessImportInfoList().size(), 1);
- assertEquals(terms.size(), 1);
-
- AtlasGlossaryTerm createdTerm = termList.get(0);
-
- String glossaryGuid = createdTerm.getAnchor().getGlossaryGuid();
-
- atlasClientV2.deleteGlossaryByGuid(glossaryGuid);
} catch (AtlasServiceException ex) {
- fail("Import GlossaryData should've succeeded");
+ fail("Import GlossaryData should've succeeded : "+ex);
}
}