use of com.thinkbiganalytics.metadata.api.feed.Feed in project kylo by Teradata.
the class JcrFeedAllowedActionsTest method testSeeOwnFeedContentOnly.
@Test
public void testSeeOwnFeedContentOnly() {
metadata.read(() -> {
Feed feedA = this.feedProvider.getFeed(idA);
assertThat(feedA.getDescription()).isNotNull().isEqualTo("Feed A");
assertThat(feedA.getJson()).isNotNull();
assertThat(feedA.getState()).isNotNull();
Feed feedB = this.feedProvider.getFeed(idB);
assertThat(feedB).isNull();
}, TEST_USER1);
}
use of com.thinkbiganalytics.metadata.api.feed.Feed in project kylo by Teradata.
the class JcrFeedRolesTest method testAddMembership.
@Test
public void testAddMembership() {
metadata.read(() -> {
Feed feedA = this.feedProvider.getFeed(idA);
assertThat(feedA).isNull();
Feed feedB = this.feedProvider.getFeed(idB);
assertThat(feedB).isNull();
}, TEST_USER3);
metadata.commit(() -> {
this.feedProvider.findById(idA).getRoleMembership("testViewer").ifPresent(m -> m.addMember(TEST_USER3));
this.feedProvider.findById(idB).getRoleMembership("testEditor").ifPresent(m -> m.addMember(TEST_USER3));
}, JcrMetadataAccess.SERVICE);
metadata.read(() -> {
Feed feedA = this.feedProvider.getFeed(idA);
assertThat(feedA.getDescription()).isNotNull().isEqualTo("Feed A");
assertThat(feedA.getJson()).isNull();
assertThat(feedA.getState()).isNull();
Feed feedB = this.feedProvider.getFeed(idB);
assertThat(feedB.getDescription()).isNotNull().isEqualTo("Feed B");
assertThat(feedB.getJson()).isNotNull();
assertThat(feedB.getState()).isNotNull();
}, TEST_USER3);
}
use of com.thinkbiganalytics.metadata.api.feed.Feed in project kylo by Teradata.
the class JcrFeedSlaTest method testCreateFeedSLAEntity.
@Test
public void testCreateFeedSLAEntity() {
// create 2 feeds
final int numberOfFeeds = 2;
Set<Feed.ID> feedIds = createFeeds(numberOfFeeds);
final String feedSlaTitle = "My New SLA";
final String nonFeedSlaTitle = "No Feed SLA";
ServiceLevelAgreement.ID feedSlaId = createFeedSla(feedIds, feedSlaTitle);
ServiceLevelAgreement.ID nonFeedSla = createGenericSla(nonFeedSlaTitle);
ServiceLevelAgreement.ID slaId = metadata.read(() -> {
JcrFeedServiceLevelAgreementProvider jcrFeedSlaProvider = (JcrFeedServiceLevelAgreementProvider) feedSlaProvider;
// ASSERT everything is good
// Assert query returns the correct result
List<FeedServiceLevelAgreementRelationship> rels = jcrFeedSlaProvider.findAllRelationships();
Assert.assertEquals(rels.size(), 1);
// Assert relationships are correct
JcrFeedServiceLevelAgreementRelationship relationship = (JcrFeedServiceLevelAgreementRelationship) jcrFeedSlaProvider.findRelationship(feedSlaId);
ServiceLevelAgreement feedSla = relationship.getAgreement();
Assert.assertNotNull(feedSla);
List<? extends ServiceLevelAgreement> agreements = slaProvider.getAgreements();
// assert both agreements are there
Assert.assertEquals(agreements.size(), 2);
Set<JcrFeed> feeds = relationship.getPropertyAsSet(JcrFeedServiceLevelAgreementRelationship.FEEDS, JcrFeed.class);
Assert.assertEquals(feeds.size(), numberOfFeeds);
for (JcrFeed feed : feeds) {
Assert.assertTrue(feedIds.contains(feed.getId()));
}
// find it by the SLA now
JcrFeedServiceLevelAgreementRelationship finalFeedSla = (JcrFeedServiceLevelAgreementRelationship) jcrFeedSlaProvider.findRelationship(feedSla.getId());
Assert.assertNotNull(finalFeedSla);
// query for SLA objects and assert the result is correct
List<FeedServiceLevelAgreement> feedAgreements = jcrFeedSlaProvider.findAllAgreements();
Assert.assertEquals(feedAgreements.size(), 1);
int nonFeedSlaCount = 0;
for (FeedServiceLevelAgreement agreement : feedAgreements) {
Set<? extends Feed> slaFeeds = agreement.getFeeds();
String title = agreement.getName();
if (slaFeeds != null) {
Assert.assertEquals(title, feedSlaTitle);
Assert.assertEquals(slaFeeds.size(), numberOfFeeds);
for (Feed feed : slaFeeds) {
Assert.assertTrue(feedIds.contains(feed.getId()));
}
} else {
Assert.assertEquals(title, nonFeedSlaTitle);
nonFeedSlaCount++;
}
}
Assert.assertEquals(nonFeedSlaCount, 0);
// find by Feed
for (Feed.ID feedId : feedIds) {
List<FeedServiceLevelAgreement> feedServiceLevelAgreements = jcrFeedSlaProvider.findFeedServiceLevelAgreements(feedId);
Assert.assertTrue(feedServiceLevelAgreements != null && !feedServiceLevelAgreements.isEmpty());
}
return feedSla.getId();
}, MetadataAccess.SERVICE);
// now remove the feed relationships
boolean removedFeedRelationships = metadata.commit(() -> {
ServiceLevelAgreement sla = slaProvider.getAgreement(slaId);
return feedSlaProvider.removeFeedRelationships(slaId);
}, MetadataAccess.SERVICE);
Assert.assertTrue(removedFeedRelationships);
// query for the feeds related to this SLA and verify there are none
metadata.read(() -> {
FeedServiceLevelAgreement feedServiceLevelAgreement = feedSlaProvider.findAgreement(slaId);
Assert.assertTrue(feedServiceLevelAgreement.getFeeds() == null || (feedServiceLevelAgreement.getFeeds().isEmpty()));
return null;
}, MetadataAccess.SERVICE);
}
use of com.thinkbiganalytics.metadata.api.feed.Feed in project kylo by Teradata.
the class JobRepoFeedOperationsProvider method findLatest.
@Override
public List<FeedOperation> findLatest(Feed.ID feedId) {
return metadata.read(() -> {
List<FeedOperation> operations = new ArrayList<>();
Feed feed = this.feedProvider.getFeed(feedId);
if (feed != null) {
BatchJobExecution latestJobExecution = this.jobExecutionProvider.findLatestJobForFeed(feed.getQualifiedName());
if (latestJobExecution != null) {
operations.add(createOperation(latestJobExecution));
}
}
return operations;
});
}
use of com.thinkbiganalytics.metadata.api.feed.Feed in project kylo by Teradata.
the class JobRepoFeedOperationsProvider method getDependentDeltaResults.
@Override
public FeedDependencyDeltaResults getDependentDeltaResults(Feed.ID feedId, Set<String> props) {
Feed feed = this.feedProvider.getFeed(feedId);
if (feed != null) {
String systemFeedName = FeedNameUtil.fullName(feed.getCategory().getSystemName(), feed.getName());
FeedDependencyDeltaResults results = new FeedDependencyDeltaResults(feed.getId().toString(), systemFeedName);
// find this feeds latest completion
BatchJobExecution latest = jobExecutionProvider.findLatestCompletedJobForFeed(systemFeedName);
// get the dependent feeds
List<Feed> dependents = feed.getDependentFeeds();
if (dependents != null) {
for (Feed depFeed : dependents) {
String depFeedSystemName = FeedNameUtil.fullName(depFeed.getCategory().getSystemName(), depFeed.getName());
// find Completed feeds executed since time
Set<BatchJobExecution> jobs = null;
if (latest != null) {
jobs = (Set<BatchJobExecution>) jobExecutionProvider.findJobsForFeedCompletedSince(depFeedSystemName, latest.getStartTime());
} else {
BatchJobExecution job = jobExecutionProvider.findLatestCompletedJobForFeed(depFeedSystemName);
if (job != null) {
jobs = new HashSet<>();
jobs.add(job);
}
}
if (jobs != null) {
for (BatchJobExecution job : jobs) {
DateTime endTime = job.getEndTime();
Map<String, String> executionContext = job.getJobExecutionContextAsMap();
Map<String, Object> map = new HashMap<>();
// filter the map
if (executionContext != null) {
// add those requested to the results map
for (Entry<String, String> entry : executionContext.entrySet()) {
if (props == null || props.isEmpty() || props.contains(entry.getKey())) {
map.put(entry.getKey(), entry.getValue());
}
}
}
results.addFeedExecutionContext(depFeedSystemName, job.getJobExecutionId(), job.getStartTime(), endTime, map);
}
} else {
results.getDependentFeedNames().add(depFeedSystemName);
}
}
}
return results;
} else {
throw new FeedNotFoundException(feedId);
}
}
Aggregations