use of com.thinkbiganalytics.feedmgr.rest.model.FeedSummary in project kylo by Teradata.
the class FeedModelTransform method domainToFeedMetadata.
/**
* Transforms the specified Metadata feed to a Feed Manager feed.
*
* @param domain the Metadata feed
* @param userFieldMap cache map from category to user-defined fields, or {@code null}
* @return the Feed Manager feed
*/
@Nonnull
private FeedMetadata domainToFeedMetadata(@Nonnull final Feed domain, @Nullable final Map<Category, Set<UserFieldDescriptor>> userFieldMap, @Nullable ActionGroup actionGroup) {
FeedMetadata feed = deserializeFeedMetadata(domain, false);
feed.setId(domain.getId().toString());
feed.setFeedId(domain.getId().toString());
feed.setFeedName(domain.getDisplayName());
feed.setSystemFeedName(domain.getName());
feed.setDescription(domain.getDescription());
feed.setAllowIndexing(domain.isAllowIndexing());
feed.setHistoryReindexingStatus(domain.getCurrentHistoryReindexingStatus().getHistoryReindexingState().toString());
feed.setOwner(domain.getOwner() != null ? new User(domain.getOwner().getName()) : null);
if (domain.getCreatedTime() != null) {
feed.setCreateDate(domain.getCreatedTime().toDate());
}
if (domain.getModifiedTime() != null) {
feed.setUpdateDate(domain.getModifiedTime().toDate());
}
setFeedMetadataRegisteredTemplate(domain, feed);
Category category = domain.getCategory();
if (category != null) {
feed.setCategory(categoryModelTransform.domainToFeedCategorySimple(category));
}
feed.setState(domain.getState() != null ? domain.getState().name() : null);
// Set user-defined properties
final Set<UserFieldDescriptor> userFields;
if (userFieldMap == null) {
userFields = getUserFields(category);
} else if (userFieldMap.containsKey(category)) {
userFields = userFieldMap.get(category);
} else {
userFields = getUserFields(category);
userFieldMap.put(category, userFields);
}
@SuppressWarnings("unchecked") final Set<UserProperty> userProperties = UserPropertyTransform.toUserProperties(domain.getUserProperties(), userFields);
feed.setUserProperties(userProperties);
// Convert JCR securitygroup to DTO
List<com.thinkbiganalytics.feedmgr.rest.model.HadoopSecurityGroup> restSecurityGroups = new ArrayList<>();
if (domain.getSecurityGroups() != null && domain.getSecurityGroups().size() > 0) {
for (Object group : domain.getSecurityGroups()) {
HadoopSecurityGroup hadoopSecurityGroup = (HadoopSecurityGroup) group;
com.thinkbiganalytics.feedmgr.rest.model.HadoopSecurityGroup restSecurityGroup = new com.thinkbiganalytics.feedmgr.rest.model.HadoopSecurityGroup();
restSecurityGroup.setDescription(hadoopSecurityGroup.getDescription());
restSecurityGroup.setId(hadoopSecurityGroup.getGroupId());
restSecurityGroup.setName(hadoopSecurityGroup.getName());
restSecurityGroups.add(restSecurityGroup);
}
}
feed.setSecurityGroups(restSecurityGroups);
feed.setTags(domain.getTags().stream().map(name -> new DefaultTag(name)).collect(Collectors.toList()));
if (domain.getUsedByFeeds() != null) {
final List<FeedSummary> usedByFeeds = domain.getUsedByFeeds().stream().map(this::domainToFeedSummary).collect(Collectors.toList());
feed.setUsedByFeeds(usedByFeeds);
}
List<DataSet> srcDataSets = domain.getSources().stream().map(FeedConnection::getDataSet).filter(Optional::isPresent).map(Optional::get).map(dataSet -> {
try {
return catalogModelTransform.dataSetToRestModel().apply(dataSet);
} catch (final AccessControlException e) {
log.debug("Denied access to data set: {}: {}", domain.getId(), e);
final DataSource dataSource = new DataSource();
dataSource.setAllowedActions(new ActionGroup());
dataSource.getAllowedActions().setActions(Collections.emptyList());
final DataSet model = new DataSet();
model.setId(domain.getId().toString());
model.setDataSource(dataSource);
return model;
}
}).collect(Collectors.toList());
feed.setSourceDataSets(srcDataSets);
if (actionGroup == null) {
// add in access control items
securityTransform.applyAccessControl(domain, feed);
} else {
feed.setAllowedActions(actionGroup);
}
return feed;
}
use of com.thinkbiganalytics.feedmgr.rest.model.FeedSummary in project kylo by Teradata.
the class InMemoryFeedManagerFeedService method saveFeed.
public void saveFeed(FeedMetadata feed) {
if (feed.getId() == null || !feeds.containsKey(feed.getId())) {
feed.setId(UUID.randomUUID().toString());
} else {
FeedMetadata previousFeed = feeds.get(feed.getId());
feed.setId(previousFeed.getId());
}
// match up the related category
String categoryId = feed.getCategory().getId();
FeedCategory category = null;
if (categoryId != null) {
category = categoryProvider.getCategoryById(categoryId);
}
if (category == null) {
final String categoryName = feed.getCategory().getSystemName();
category = categoryProvider.getCategoryBySystemName(categoryName);
feed.setCategory(category);
}
if (category != null) {
category.addRelatedFeed(new FeedSummary(feed));
}
// saveToMetadataStore(feed);
feeds.put(feed.getId(), feed);
FileObjectPersistence.getInstance().writeFeedsToFile(feeds.values());
}
use of com.thinkbiganalytics.feedmgr.rest.model.FeedSummary in project kylo by Teradata.
the class InMemoryFeedManagerFeedService method postConstruct.
@PostConstruct
private void postConstruct() {
Collection<FeedMetadata> savedFeeds = FileObjectPersistence.getInstance().getFeedsFromFile();
if (savedFeeds != null) {
Long maxId = 0L;
for (FeedMetadata feed : savedFeeds) {
// update the category mappings
String categoryId = feed.getCategory().getId();
FeedCategory category = categoryProvider.getCategoryById(categoryId);
feed.setCategory(category);
category.addRelatedFeed(new FeedSummary(feed));
// add it to the map
feeds.put(feed.getId(), feed);
}
loadSavedFeedsToMetaClientStore();
}
}
use of com.thinkbiganalytics.feedmgr.rest.model.FeedSummary in project kylo by Teradata.
the class InMemoryFeedManagerFeedService method getFeedSummaryForCategory.
public List<FeedSummary> getFeedSummaryForCategory(String categoryId) {
List<FeedSummary> summaryList = new ArrayList<>();
FeedCategory category = categoryProvider.getCategoryById(categoryId);
if (category != null && category.getFeeds() != null) {
summaryList.addAll(category.getFeeds());
}
return summaryList;
}
use of com.thinkbiganalytics.feedmgr.rest.model.FeedSummary in project kylo by Teradata.
the class IntegrationTestBase method disableExistingFeeds.
protected void disableExistingFeeds() {
LOG.info("Disabling existing feeds");
// start clean - disable all feeds before deleting them - this
// will give time for processors to stop before they are deleted, otherwise
// will get an error if processor is still running while we try to delete the process group
FeedSummary[] feeds = getFeeds();
for (FeedSummary feed : feeds) {
disableFeed(feed.getFeedId());
}
if (feeds.length > 0) {
// give time for processors to stop
waitFor(PROCESSOR_STOP_WAIT_DELAY, TimeUnit.SECONDS, "for processors to stop");
}
}
Aggregations