use of org.apache.atlas.model.discovery.SearchParameters in project ranger by apache.
the class AtlasRESTTagSource method getAtlasActiveEntities.
private List<RangerAtlasEntityWithTags> getAtlasActiveEntities() {
if (LOG.isDebugEnabled()) {
LOG.debug("==> getAtlasActiveEntities()");
}
List<RangerAtlasEntityWithTags> ret = null;
SearchParameters searchParams = new SearchParameters();
AtlasTypeRegistry typeRegistry = new AtlasTypeRegistry();
AtlasTypeRegistry.AtlasTransientTypeRegistry tty = null;
AtlasSearchResult searchResult = null;
searchParams.setClassification("*");
searchParams.setIncludeClassificationAttributes(true);
searchParams.setOffset(0);
searchParams.setLimit(Integer.MAX_VALUE);
boolean commitUpdates = false;
try {
AtlasClientV2 atlasClient = getAtlasClient();
searchResult = atlasClient.facetedSearch(searchParams);
AtlasTypesDef typesDef = atlasClient.getAllTypeDefs(new SearchFilter());
tty = typeRegistry.lockTypeRegistryForUpdate();
tty.addTypes(typesDef);
commitUpdates = true;
} catch (AtlasServiceException | AtlasBaseException | IOException excp) {
LOG.error("failed to download tags from Atlas", excp);
} catch (Exception unexpectedException) {
LOG.error("Failed to download tags from Atlas due to unexpected exception", unexpectedException);
} finally {
if (tty != null) {
typeRegistry.releaseTypeRegistryForUpdate(tty, commitUpdates);
}
}
if (commitUpdates && searchResult != null) {
if (LOG.isDebugEnabled()) {
LOG.debug(AtlasType.toJson(searchResult));
}
ret = new ArrayList<>();
List<AtlasEntityHeader> entityHeaders = searchResult.getEntities();
if (CollectionUtils.isNotEmpty(entityHeaders)) {
for (AtlasEntityHeader header : entityHeaders) {
if (!header.getStatus().equals(AtlasEntity.Status.ACTIVE)) {
if (LOG.isDebugEnabled()) {
LOG.debug("Skipping entity because it is not ACTIVE, header:[" + header + "]");
}
continue;
}
String typeName = header.getTypeName();
if (!AtlasResourceMapperUtil.isEntityTypeHandled(typeName)) {
if (LOG.isDebugEnabled()) {
LOG.debug("Not fetching Atlas entities of type:[" + typeName + "]");
}
continue;
}
List<EntityNotificationWrapper.RangerAtlasClassification> allTagsForEntity = new ArrayList<>();
for (AtlasClassification classification : header.getClassifications()) {
List<EntityNotificationWrapper.RangerAtlasClassification> tags = resolveTag(typeRegistry, classification);
if (tags != null) {
allTagsForEntity.addAll(tags);
}
}
if (CollectionUtils.isNotEmpty(allTagsForEntity)) {
RangerAtlasEntity entity = new RangerAtlasEntity(typeName, header.getGuid(), header.getAttributes());
RangerAtlasEntityWithTags entityWithTags = new RangerAtlasEntityWithTags(entity, allTagsForEntity, typeRegistry);
ret.add(entityWithTags);
}
}
}
}
if (LOG.isDebugEnabled()) {
LOG.debug("<== getAtlasActiveEntities()");
}
return ret;
}
use of org.apache.atlas.model.discovery.SearchParameters in project atlas by apache.
the class UserProfileServiceTest method atteptsToAddAlreadyExistingQueryForAnExistingUser.
@Test(dependsOnMethods = { "createsNewProfile", "savesQueryForAnNonExistentUser" }, expectedExceptions = AtlasBaseException.class)
public void atteptsToAddAlreadyExistingQueryForAnExistingUser() throws AtlasBaseException {
SearchParameters expectedSearchParameter = getActualSearchParameters();
for (int i = 0; i < 2; i++) {
String userName = getIndexBasedUserName(i);
for (int j = 0; j < max_searches; j++) {
String queryName = getIndexBasedQueryName(j);
AtlasUserSavedSearch expected = getDefaultSavedSearch(userName, queryName, expectedSearchParameter);
AtlasUserSavedSearch actual = userProfileService.addSavedSearch(expected);
assertNotNull(actual);
assertNotNull(actual.getGuid());
assertEquals(actual.getOwnerName(), expected.getOwnerName());
assertEquals(actual.getName(), expected.getName());
assertEquals(actual.getSearchType(), expected.getSearchType());
assertEquals(actual.getSearchParameters(), expected.getSearchParameters());
}
}
}
use of org.apache.atlas.model.discovery.SearchParameters in project atlas by apache.
the class UserProfileServiceTest method savesQueryForAnNonExistentUser.
@Test(dependsOnMethods = "createsNewProfile")
public void savesQueryForAnNonExistentUser() throws AtlasBaseException {
String expectedUserName = getIndexBasedUserName(0);
String expectedQueryName = "testQuery";
SearchParameters expectedSearchParam = getActualSearchParameters();
AtlasUserSavedSearch expectedSavedSearch = getDefaultSavedSearch(expectedUserName, expectedQueryName, expectedSearchParam);
AtlasUserSavedSearch actual = userProfileService.addSavedSearch(expectedSavedSearch);
assertEquals(actual.getOwnerName(), expectedUserName);
assertEquals(actual.getName(), expectedQueryName);
}
use of org.apache.atlas.model.discovery.SearchParameters in project atlas by apache.
the class UserProfileServiceTest method savesExistingQueryForAnExistingUser.
@Test(dependsOnMethods = { "createsNewProfile", "savesQueryForAnNonExistentUser", "atteptsToAddAlreadyExistingQueryForAnExistingUser" })
public void savesExistingQueryForAnExistingUser() throws AtlasBaseException {
SearchParameters expectedSearchParameter = getActualSearchParameters();
for (int i = 0; i < 2; i++) {
String userName = getIndexBasedUserName(i);
for (int j = 4; j < max_searches + 6; j++) {
String queryName = getIndexBasedQueryName(j);
AtlasUserSavedSearch actual = userProfileService.addSavedSearch(getDefaultSavedSearch(userName, queryName, expectedSearchParameter));
assertNotNull(actual);
AtlasUserSavedSearch savedSearch = userProfileService.getSavedSearch(userName, queryName);
assertNotNull(savedSearch);
assertEquals(savedSearch.getSearchParameters(), expectedSearchParameter);
}
}
}
use of org.apache.atlas.model.discovery.SearchParameters in project atlas by apache.
the class UserProfileServiceTest method getActualSearchParameters.
private SearchParameters getActualSearchParameters() {
SearchParameters sp = new SearchParameters();
sp.setClassification("test-classification");
sp.setQuery("g.v().has('__guid').__guid.toList()");
sp.setLimit(10);
sp.setTypeName("some-type");
return sp;
}
Aggregations