use of org.apache.nifi.registry.db.entity.FlowSnapshotEntity in project nifi-registry by apache.
the class TestRegistryService method testGetLatestSnapshotMetadataWhenNoVersionsExist.
@Test
public void testGetLatestSnapshotMetadataWhenNoVersionsExist() {
final BucketEntity existingBucket = new BucketEntity();
existingBucket.setId("b1");
existingBucket.setName("My Bucket");
existingBucket.setDescription("This is my bucket");
existingBucket.setCreated(new Date());
when(metadataService.getBucketById(existingBucket.getId())).thenReturn(existingBucket);
// return a flow with the existing snapshot when getFlowById is called
final FlowEntity existingFlow = new FlowEntity();
existingFlow.setId("flow1");
existingFlow.setName("My Flow");
existingFlow.setDescription("This is my flow.");
existingFlow.setCreated(new Date());
existingFlow.setModified(new Date());
existingFlow.setBucketId(existingBucket.getId());
when(metadataService.getFlowById(existingFlow.getId())).thenReturn(existingFlow);
final FlowSnapshotEntity existingSnapshot1 = new FlowSnapshotEntity();
existingSnapshot1.setVersion(1);
existingSnapshot1.setFlowId(existingFlow.getId());
existingSnapshot1.setCreatedBy("user1");
existingSnapshot1.setCreated(new Date());
existingSnapshot1.setComments("This is snapshot 1");
when(metadataService.getLatestSnapshot(existingFlow.getId())).thenReturn(null);
try {
registryService.getLatestFlowSnapshotMetadata(existingBucket.getId(), existingFlow.getId());
Assert.fail("Should have thrown exception");
} catch (ResourceNotFoundException e) {
assertEquals("The specified flow ID has no versions", e.getMessage());
}
}
use of org.apache.nifi.registry.db.entity.FlowSnapshotEntity in project nifi-registry by apache.
the class RegistryService method getFlowSnapshots.
/**
* Returns all versions of a flow, sorted newest to oldest.
*
* @param bucketIdentifier the id of the bucket to search for the flowIdentifier
* @param flowIdentifier the id of the flow to retrieve from the specified bucket
* @return all versions of the specified flow, sorted newest to oldest
*/
public SortedSet<VersionedFlowSnapshotMetadata> getFlowSnapshots(final String bucketIdentifier, final String flowIdentifier) {
if (StringUtils.isBlank(bucketIdentifier)) {
throw new IllegalArgumentException("Bucket identifier cannot be null or blank");
}
if (StringUtils.isBlank(flowIdentifier)) {
throw new IllegalArgumentException("Flow identifier cannot be null or blank");
}
readLock.lock();
try {
// ensure the bucket exists
final BucketEntity existingBucket = metadataService.getBucketById(bucketIdentifier);
if (existingBucket == null) {
LOGGER.warn("The specified bucket id [{}] does not exist.", bucketIdentifier);
throw new ResourceNotFoundException("The specified bucket ID does not exist in this registry.");
}
// ensure the flow exists
final FlowEntity existingFlow = metadataService.getFlowById(flowIdentifier);
if (existingFlow == null) {
LOGGER.warn("The specified flow id [{}] does not exist.", flowIdentifier);
throw new ResourceNotFoundException("The specified flow ID does not exist in this bucket.");
}
if (!existingBucket.getId().equals(existingFlow.getBucketId())) {
throw new IllegalStateException("The requested flow is not located in the given bucket");
}
// convert the set of FlowSnapshotEntity to set of VersionedFlowSnapshotMetadata, ordered by version descending
final SortedSet<VersionedFlowSnapshotMetadata> sortedSnapshots = new TreeSet<>(Collections.reverseOrder());
final List<FlowSnapshotEntity> existingFlowSnapshots = metadataService.getSnapshots(existingFlow.getId());
if (existingFlowSnapshots != null) {
existingFlowSnapshots.stream().forEach(s -> sortedSnapshots.add(DataModelMapper.map(existingBucket, s)));
}
return sortedSnapshots;
} finally {
readLock.unlock();
}
}
use of org.apache.nifi.registry.db.entity.FlowSnapshotEntity in project nifi-registry by apache.
the class TestDatabaseMetadataService method testGetLatestSnapshot.
@Test
public void testGetLatestSnapshot() {
final FlowSnapshotEntity latest = metadataService.getLatestSnapshot("1");
assertNotNull(latest);
assertEquals("1", latest.getFlowId());
assertEquals(3, latest.getVersion().intValue());
}
use of org.apache.nifi.registry.db.entity.FlowSnapshotEntity in project nifi-registry by apache.
the class TestDatabaseMetadataService method testGetFlowSnapshotDoesNotExist.
@Test
public void testGetFlowSnapshotDoesNotExist() {
final FlowSnapshotEntity entity = metadataService.getFlowSnapshot("DOES-NOT-EXIST", 1);
assertNull(entity);
}
use of org.apache.nifi.registry.db.entity.FlowSnapshotEntity in project nifi-registry by apache.
the class TestDatabaseMetadataService method testCreateFlowSnapshot.
@Test
public void testCreateFlowSnapshot() {
final FlowSnapshotEntity flowSnapshot = new FlowSnapshotEntity();
flowSnapshot.setFlowId("1");
flowSnapshot.setVersion(4);
flowSnapshot.setCreated(new Date());
flowSnapshot.setCreatedBy("test-user");
flowSnapshot.setComments("Comments");
metadataService.createFlowSnapshot(flowSnapshot);
final FlowSnapshotEntity createdFlowSnapshot = metadataService.getFlowSnapshot(flowSnapshot.getFlowId(), flowSnapshot.getVersion());
assertNotNull(createdFlowSnapshot);
assertEquals(flowSnapshot.getFlowId(), createdFlowSnapshot.getFlowId());
assertEquals(flowSnapshot.getVersion(), createdFlowSnapshot.getVersion());
assertEquals(flowSnapshot.getComments(), createdFlowSnapshot.getComments());
assertEquals(flowSnapshot.getCreated(), createdFlowSnapshot.getCreated());
assertEquals(flowSnapshot.getCreatedBy(), createdFlowSnapshot.getCreatedBy());
}
Aggregations