use of org.commonjava.indy.folo.dto.TrackedContentEntryDTO in project indy by Commonjava.
the class RetrieveFileFromGroupAndVerifyInTrackingReportTest method run.
@Test
public void run() throws Exception {
final String trackingId = newName();
final String repoId = "repo";
final String groupId = "group";
final String path = "/path/to/foo.class";
final InputStream stream = new ByteArrayInputStream(("This is a test: " + System.nanoTime()).getBytes());
server.expect(server.formatUrl(repoId, path), 200, stream);
RemoteRepository rr = new RemoteRepository(repoId, server.formatUrl(repoId));
rr = client.stores().create(rr, "adding test remote", RemoteRepository.class);
Group g = new Group(groupId, rr.getKey());
g = client.stores().create(g, "Adding test group", Group.class);
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final InputStream in = client.module(IndyFoloContentClientModule.class).get(trackingId, group, groupId, path);
IOUtils.copy(in, baos);
in.close();
final byte[] bytes = baos.toByteArray();
final String md5 = md5Hex(bytes);
final String sha256 = sha256Hex(bytes);
assertThat(md5, equalTo(DigestUtils.md5Hex(bytes)));
assertThat(sha256, equalTo(DigestUtils.sha256Hex(bytes)));
assertThat(client.module(IndyFoloAdminClientModule.class).sealTrackingRecord(trackingId), equalTo(true));
final TrackedContentDTO report = client.module(IndyFoloAdminClientModule.class).getTrackingReport(trackingId);
assertThat(report, notNullValue());
final Set<TrackedContentEntryDTO> downloads = report.getDownloads();
assertThat(downloads, notNullValue());
assertThat(downloads.size(), equalTo(1));
final TrackedContentEntryDTO entry = downloads.iterator().next();
System.out.println(entry);
assertThat(entry, notNullValue());
assertThat(entry.getStoreKey(), equalTo(new StoreKey(remote, repoId)));
assertThat(entry.getPath(), equalTo(path));
assertThat(entry.getLocalUrl(), equalTo(client.content().contentUrl(remote, repoId, path)));
assertThat(entry.getOriginUrl(), equalTo(server.formatUrl(repoId, path)));
assertThat(entry.getMd5(), equalTo(md5));
assertThat(entry.getSha256(), equalTo(sha256));
}
use of org.commonjava.indy.folo.dto.TrackedContentEntryDTO in project indy by Commonjava.
the class AbstractCacheReportTest method doRealTest.
protected void doRealTest() throws Exception {
final String trackingId = newName();
final String path = "org/commonjava/commonjava/2/commonjava-2.pom";
final InputStream result = client.module(IndyFoloContentClientModule.class).get(trackingId, remote, CENTRAL, path);
assertThat(result, notNullValue());
result.close();
assertThat(client.module(IndyFoloAdminClientModule.class).initReport(trackingId), equalTo(true));
assertThat(client.module(IndyFoloAdminClientModule.class).sealTrackingRecord(trackingId), equalTo(true));
final TrackedContentDTO report = client.module(IndyFoloAdminClientModule.class).getTrackingReport(trackingId);
assertThat(report, notNullValue());
final TrackedContentEntryDTO entry = report.getDownloads().iterator().next();
doDeletion(entry.getStoreKey(), path);
final String filePath = String.format("%s/var/lib/indy/storage/%s-%s/%s", fixture.getBootOptions().getIndyHome(), remote.name(), CENTRAL, path);
final File pomFile = new File(filePath);
assertThat("File should be deleted", pomFile.exists(), equalTo(false));
final TrackedContentDTO reportAgain = client.module(IndyFoloAdminClientModule.class).getTrackingReport(trackingId);
assertThat(reportAgain, equalTo(report));
final TrackedContentEntryDTO entryAgain = report.getDownloads().iterator().next();
assertThat(entryAgain, equalTo(entry));
assertThat(entryAgain.getSha1(), equalTo(entry.getSha1()));
assertThat(entryAgain.getSha256(), equalTo(entry.getSha256()));
assertThat(entryAgain.getMd5(), equalTo(entry.getMd5()));
}
use of org.commonjava.indy.folo.dto.TrackedContentEntryDTO in project indy by Commonjava.
the class RetrievedPomInAlwaysOnTrackingReportTest method run.
@Test
public void run() throws Exception {
final String testRepo = "test";
final PomRef pom = loadPom("simple.pom", Collections.<String, String>emptyMap());
final String url = server.formatUrl(testRepo, pom.path);
server.expect(url, 200, pom.pom);
final HttpGet get = new HttpGet(url);
final CloseableHttpClient client = proxiedHttp();
CloseableHttpResponse response = null;
InputStream stream = null;
try {
response = client.execute(get, proxyContext(USER, PASS));
assertThat(response.getStatusLine().getStatusCode(), equalTo(200));
stream = response.getEntity().getContent();
final String resultingPom = IOUtils.toString(stream);
assertThat(resultingPom, notNullValue());
assertThat(resultingPom, equalTo(pom.pom));
} finally {
IOUtils.closeQuietly(stream);
HttpResources.cleanupResources(get, response, client);
}
assertThat(this.client.module(IndyFoloAdminClientModule.class).sealTrackingRecord(USER), equalTo(true));
final TrackedContentDTO content = this.client.module(IndyFoloAdminClientModule.class).getRawTrackingContent(USER);
assertThat(content, notNullValue());
final Set<TrackedContentEntryDTO> downloads = content.getDownloads();
assertThat(downloads, notNullValue());
assertThat(downloads.size(), equalTo(1));
final TrackedContentEntryDTO entry = downloads.iterator().next();
assertThat(entry, notNullValue());
final String downloadPath = entry.getPath();
assertThat(downloadPath, notNullValue());
assertThat(downloadPath, equalTo("/test/" + pom.path));
//TODO: As new api format for "GET /folo/admin/track/record", these tests are deperacated, will keep for a while and remove later
// final String repoName = "httprox_127-0-0-1";
// final TrackedContentRecord record = this.client.module( IndyFoloAdminClientModule.class )
// .getRawTrackingRecord( USER );
// final Map<StoreKey, AffectedStoreRecord> affectedStores = record.getAffectedStores();
// assertThat( affectedStores, notNullValue() );
// assertThat( affectedStores.size(), equalTo( 1 ) );
// final AffectedStoreRecord storeRecord = affectedStores.get( new StoreKey( StoreType.remote, repoName ) );
// assertThat( storeRecord, notNullValue() );
//
// final Set<String> downloads = storeRecord.getDownloadedPaths();
// assertThat( downloads, notNullValue() );
// assertThat( downloads.size(), equalTo( 1 ) );
// assertThat( downloads.iterator()
// .next(), equalTo( "/test/" + pom.path ) );
}
use of org.commonjava.indy.folo.dto.TrackedContentEntryDTO in project indy by Commonjava.
the class StoreOneTrackedAndVerifyUrlInReportTest method storeOneFileAndVerifyItInParentDirectoryListing.
@Test
public void storeOneFileAndVerifyItInParentDirectoryListing() throws Exception {
final byte[] data = "this is a test".getBytes();
final ByteArrayInputStream stream = new ByteArrayInputStream(data);
final String root = "/path/to/";
final String path = root + "foo.txt";
final String trackingId = "tracker";
content.store(trackingId, hosted, STORE, path, stream);
assertThat(client.module(IndyFoloAdminClientModule.class).sealTrackingRecord(trackingId), equalTo(true));
final TrackedContentDTO report = admin.getTrackingReport(trackingId);
final Set<TrackedContentEntryDTO> uploads = report.getUploads();
for (final TrackedContentEntryDTO upload : uploads) {
final String uploadPath = upload.getPath();
final String localUrl = client.content().contentUrl(hosted, STORE, uploadPath);
assertThat("Incorrect local URL for upload: '" + uploadPath + "'", upload.getLocalUrl(), equalTo(localUrl));
}
}
use of org.commonjava.indy.folo.dto.TrackedContentEntryDTO in project indy by Commonjava.
the class PullReportWithoutContentAccess404Test method run.
@Test
public void run() throws Exception {
final String trackingId = newName();
boolean success = client.module(IndyFoloAdminClientModule.class).sealTrackingRecord(trackingId);
assertThat(success, equalTo(true));
final TrackedContentDTO report = client.module(IndyFoloAdminClientModule.class).getTrackingReport(trackingId);
assertThat(report, notNullValue());
Set<TrackedContentEntryDTO> downloads = report.getDownloads();
assertThat(downloads == null || downloads.isEmpty(), equalTo(true));
Set<TrackedContentEntryDTO> uploads = report.getUploads();
assertThat(uploads == null || uploads.isEmpty(), equalTo(true));
}
Aggregations