@Override public void scrubSearchResults(AtlasSearchResultScrubRequest request) throws AtlasAuthorizationException { if (LOG.isDebugEnabled()) { LOG.debug("==> SimpleAtlasAuthorizer.scrubSearchResults({})", request); } final AtlasSearchResult result = request.getSearchResult(); if (CollectionUtils.isNotEmpty(result.getEntities())) { for (AtlasEntityHeader entity : result.getEntities()) { checkAccessAndScrub(entity, request); } } if (CollectionUtils.isNotEmpty(result.getFullTextResult())) { for (AtlasFullTextResult fullTextResult : result.getFullTextResult()) { if (fullTextResult != null) { checkAccessAndScrub(fullTextResult.getEntity(), request); } } } if (MapUtils.isNotEmpty(result.getReferredEntities())) { for (AtlasEntityHeader entity : result.getReferredEntities().values()) { checkAccessAndScrub(entity, request); } } if (LOG.isDebugEnabled()) { LOG.debug("<== SimpleAtlasAuthorizer.scrubSearchResults({}): {}", request, result); } }
private void search() throws Exception { System.out.println("\nSample DSL Queries: "); for (String dslQuery : getDSLQueries()) { try { AtlasSearchResult results = atlasClientV2.dslSearchWithParams(dslQuery, 10, 0); if (results != null) { List<AtlasEntityHeader> entitiesResult = results.getEntities(); List<AtlasFullTextResult> fullTextResults = results.getFullTextResult(); AttributeSearchResult attribResult = results.getAttributes(); if (CollectionUtils.isNotEmpty(entitiesResult)) { System.out.println("query [" + dslQuery + "] returned [" + entitiesResult.size() + "] rows."); } else if (CollectionUtils.isNotEmpty(fullTextResults)) { System.out.println("query [" + dslQuery + "] returned [" + fullTextResults.size() + "] rows."); } else if (attribResult != null) { System.out.println("query [" + dslQuery + "] returned [" + attribResult.getValues().size() + "] rows."); } else { System.out.println("query [" + dslQuery + "] returned [ 0 ] rows."); } } else { System.out.println("query [" + dslQuery + "] failed, results:" + results); } } catch (Exception e) { System.out.println("query [" + dslQuery + "] execution failed!"); } } }
public AtlasSearchResult(String queryText, AtlasQueryType queryType) { setQueryText(queryText); setQueryType(queryType); setSearchParameters(null); setEntities(null); setAttributes(null); setFullTextResult(null); setReferredEntities(null); }
private void assertSearchResult(AtlasSearchResult searchResult, int expected, String query) { assertNotNull(searchResult); if(expected == 0) { assertTrue(searchResult.getAttributes() == null || CollectionUtils.isEmpty(searchResult.getAttributes().getValues())); assertNull(searchResult.getEntities(), query); } else if(searchResult.getEntities() != null) { assertEquals(searchResult.getEntities().size(), expected, query); } else { assertNotNull(searchResult.getAttributes()); assertNotNull(searchResult.getAttributes().getValues()); assertEquals(searchResult.getAttributes().getValues().size(), expected, query); } }
int offset) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(AtlasQueryType.BASIC); ret.setType(typeName); ret.setClassification(classification); AtlasEntityType entityType = typeRegistry.getEntityTypeByName(typeName); ret.setQueryType(AtlasQueryType.ATTRIBUTE); ret.addEntity(header); if (ret.getEntities().size() == resultSize) { break; if (ret.getEntities() != null && ret.getEntities().size() == resultSize) { break; if (element instanceof AtlasVertex) { ret.addEntity(entityRetriever.toAtlasEntityHeader((AtlasVertex) element)); } else { LOG.warn("searchUsingBasicQuery({}): expected an AtlasVertex; found unexpected entry in result {}", basicQuery, element);
dslResult.setDataType(result.getType()); dslResult.setQuery(result.getQueryText()); dslResult.setCount(0); if (CollectionUtils.isNotEmpty(result.getEntities())) { for (AtlasEntityHeader entityHeader : result.getEntities()) { Referenceable entity = getEntity(entityHeader.getGuid()); dslResult.setCount(dslResult.getResults().size()); } else if (result.getAttributes() != null && CollectionUtils.isNotEmpty(result.getAttributes().getName())) { List<String> attrNames = result.getAttributes().getName(); for (List<Object> attrValues : result.getAttributes().getValues()) { if (attrValues == null) { continue;
public AtlasSearchResult searchRelatedEntities(String guid, String relation, String sortByAttributeName, SortOrder sortOrder, boolean excludeDeletedEntities, int limit, int offset) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(AtlasQueryType.RELATIONSHIP); ret.setEntities(resultList); if (ret.getEntities() == null) { ret.setEntities(new ArrayList<>());
private List<ExportImportAuditEntry> toExportImportAuditEntry(AtlasSearchResult result) { List<ExportImportAuditEntry> ret = new ArrayList<>(); if(CollectionUtils.isEmpty(result.getEntities())) { return ret; } for (AtlasEntityHeader entityHeader : result.getEntities()) { ExportImportAuditEntry entry = ExportImportAuditEntryDTO.from(entityHeader.getGuid(), entityHeader.getAttributes()); if(entry == null) { continue; } ret.add(entry); } return ret; }
@Override @GraphTransaction public AtlasSearchResult searchWithParameters(SearchParameters searchParameters) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(searchParameters); final QueryParams params = QueryParams.getNormalizedParams(searchParameters.getLimit(),searchParameters.getOffset()); searchParameters.setLimit(params.limit()); ret.addEntity(entity); AtlasObjectId objId = (AtlasObjectId) attrValue; if (ret.getReferredEntities() == null) { ret.setReferredEntities(new HashMap<>()); if (!ret.getReferredEntities().containsKey(objId.getGuid())) { ret.getReferredEntities().put(objId.getGuid(), entityRetriever.toAtlasEntityHeader(objId.getGuid())); AtlasObjectId objId = (AtlasObjectId) obj; if (ret.getReferredEntities() == null) { ret.setReferredEntities(new HashMap<>()); if (!ret.getReferredEntities().containsKey(objId.getGuid())) { ret.getReferredEntities().put(objId.getGuid(), entityRetriever.toAtlasEntityHeader(objId.getGuid()));
int offset) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(AtlasQueryType.BASIC); ret.setType(typeName); ret.setClassification(classification); AtlasEntityType entityType = typeRegistry.getEntityTypeByName(typeName); ret.setQueryType(AtlasQueryType.ATTRIBUTE);
@Override @GraphTransaction public AtlasSearchResult searchUsingDslQuery(String dslQuery, int limit, int offset) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(dslQuery, AtlasQueryType.DSL); GremlinQuery gremlinQuery = toGremlinQuery(dslQuery, limit, offset); String queryStr = gremlinQuery.queryStr(); for (Object element : queryResult) { if (element instanceof AtlasVertex) { ret.addEntity(entityRetriever.toAtlasEntityHeaderWithClassifications((AtlasVertex)element)); } else { LOG.warn("searchUsingDslQuery({}): expected an AtlasVertex; found unexpected entry in result {}", dslQuery, element); ret.setAttributes(toAttributesResult(queryResult, gremlinQuery)); } else if (firstElement instanceof Map) { for (Object element : queryResult) { Object entry = o; if (entry instanceof AtlasVertex) { ret.addEntity(entityRetriever.toAtlasEntityHeader((AtlasVertex) entry));
fullTextResult.setDataType(result.getType()); fullTextResult.setQuery(result.getQueryText()); fullTextResult.setCount(0); if (CollectionUtils.isNotEmpty(result.getFullTextResult())) { for (AtlasSearchResult.AtlasFullTextResult entity : result.getFullTextResult()) { fullTextResult.addResult(entity);
@Override @GraphTransaction public AtlasSearchResult searchUsingFullTextQuery(String fullTextQuery, boolean excludeDeletedEntities, int limit, int offset) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(fullTextQuery, AtlasQueryType.FULL_TEXT); QueryParams params = QueryParams.getNormalizedParams(limit, offset); AtlasIndexQuery idxQuery = toAtlasIndexQuery(fullTextQuery); if (LOG.isDebugEnabled()) { LOG.debug("Executing Full text query: {}", fullTextQuery); } ret.setFullTextResult(getIndexQueryResults(idxQuery, params, excludeDeletedEntities)); scrubSearchResults(ret); return ret; }
ret.addEntity(entityRetriever.toAtlasEntityHeader((AtlasVertex)entry)); ret.setAttributes(toAttributesResult(queryResult, gremlinQuery));
@Override @GraphTransaction public AtlasSearchResult searchUsingFullTextQuery(String fullTextQuery, boolean excludeDeletedEntities, int limit, int offset) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(fullTextQuery, AtlasQueryType.FULL_TEXT); QueryParams params = validateSearchParams(limit, offset); AtlasIndexQuery idxQuery = toAtlasIndexQuery(fullTextQuery); if (LOG.isDebugEnabled()) { LOG.debug("Executing Full text query: {}", fullTextQuery); } ret.setFullTextResult(getIndexQueryResults(idxQuery, params, excludeDeletedEntities)); return ret; }
private void assertSearchResult(AtlasSearchResult searchResult, int expected, String query) { assertNotNull(searchResult); if(expected == 0) { assertTrue(searchResult.getAttributes() == null || CollectionUtils.isEmpty(searchResult.getAttributes().getValues())); assertNull(searchResult.getEntities(), query); } else if(searchResult.getEntities() != null) { assertEquals(searchResult.getEntities().size(), expected, query); } else { assertNotNull(searchResult.getAttributes()); assertNotNull(searchResult.getAttributes().getValues()); assertEquals(searchResult.getAttributes().getValues().size(), expected, query); } }
private List<AtlasEntityHeader> getImportedEntities(String query, String guid) throws AtlasBaseException { String q = StringUtils.isEmpty(guid) ? query : String.format("%s where __guid = '%s'", query, guid); return discoveryService.searchUsingDslQuery(q, DEFAULT_LIMIT, 0).getEntities(); }
public AtlasSearchResult(String queryText, AtlasQueryType queryType) { setQueryText(queryText); setQueryType(queryType); setSearchParameters(null); setEntities(null); setAttributes(null); setFullTextResult(null); setReferredEntities(null); }
private void assertSearchResult(AtlasSearchResult searchResult, FieldValueValidator expected) { assertNotNull(searchResult); assertNull(searchResult.getEntities()); assertEquals(searchResult.getAttributes().getName().size(), expected.getFieldNamesCount()); for (int i = 0; i < searchResult.getAttributes().getName().size(); i++) { String s = searchResult.getAttributes().getName().get(i); assertEquals(s, expected.fieldNames[i]); } assertEquals(searchResult.getAttributes().getValues().size(), expected.values.size()); }
@Override public void scrubSearchResults(AtlasSearchResultScrubRequest request) throws AtlasAuthorizationException { if (LOG.isDebugEnabled()) { LOG.debug("==> SimpleAtlasAuthorizer.scrubSearchResults({})", request); } final AtlasSearchResult result = request.getSearchResult(); if (CollectionUtils.isNotEmpty(result.getEntities())) { for (AtlasEntityHeader entity : result.getEntities()) { checkAccessAndScrub(entity, request); } } if (CollectionUtils.isNotEmpty(result.getFullTextResult())) { for (AtlasFullTextResult fullTextResult : result.getFullTextResult()) { if (fullTextResult != null) { checkAccessAndScrub(fullTextResult.getEntity(), request); } } } if (MapUtils.isNotEmpty(result.getReferredEntities())) { for (AtlasEntityHeader entity : result.getReferredEntities().values()) { checkAccessAndScrub(entity, request); } } if (LOG.isDebugEnabled()) { LOG.debug("<== SimpleAtlasAuthorizer.scrubSearchResults({}): {}", request, result); } }