use of alluxio.job.wire.JobInfo in project alluxio by Alluxio.
the class PersistIntegrationTest method persistOnlyCompleteFiles.
@Test(timeout = 30000)
public void persistOnlyCompleteFiles() throws Exception {
AlluxioURI path = new AlluxioURI("/" + CommonUtils.randomAlphaNumString(10));
// Create file, but do not complete
FileOutStream os = mFileSystem.createFile(path, CreateFilePOptions.newBuilder().setWriteType(WritePType.MUST_CACHE).setMode(TEST_MODE.toProto()).build());
URIStatus status = mFileSystem.getStatus(path);
// Generate a temporary path to be used by the persist job.
String tempUfsPath = PathUtils.temporaryFileName(System.currentTimeMillis(), status.getUfsPath());
JobMaster jobMaster = mLocalAlluxioJobCluster.getMaster().getJobMaster();
// Run persist job on incomplete file (expected to fail)
long failId = jobMaster.run(new PersistConfig(path.toString(), status.getMountId(), false, tempUfsPath));
CommonUtils.waitFor("Wait for persist job to complete", () -> {
try {
JobInfo jobInfo = jobMaster.getStatus(failId);
Assert.assertNotEquals("Persist should not succeed for incomplete file", COMPLETED, jobInfo.getStatus());
if (jobInfo.getStatus() == FAILED) {
// failed job is expected
Assert.assertTrue("Failure expected to be about incomplete files", jobInfo.getErrorMessage().toLowerCase().contains("incomplete"));
return true;
}
return false;
} catch (Exception e) {
throw new RuntimeException(e);
}
}, WaitForOptions.defaults().setTimeoutMs(10 * Constants.SECOND_MS).setInterval(100));
// close the file to allow persist to happen
os.close();
// Run persist job on complete file (expected to succeed)
long successId = jobMaster.run(new PersistConfig(path.toString(), status.getMountId(), false, tempUfsPath));
CommonUtils.waitFor("Wait for persist job to complete", () -> {
try {
JobInfo jobInfo = jobMaster.getStatus(successId);
Assert.assertNotEquals("Persist should not fail", FAILED, jobInfo.getStatus());
return jobInfo.getStatus() == COMPLETED;
} catch (Exception e) {
throw new RuntimeException(e);
}
}, WaitForOptions.defaults().setTimeoutMs(10 * Constants.SECOND_MS).setInterval(100));
}
use of alluxio.job.wire.JobInfo in project alluxio by Alluxio.
the class CompositeIntegrationTest method waitSequential.
@Test
public void waitSequential() throws Exception {
CompositeConfig config = new CompositeConfig(Lists.newArrayList(new SleepJobConfig(1000000), new SleepJobConfig(1)), true);
long jobId = mJobMaster.run(config);
JobInfo status = mJobMaster.getStatus(jobId);
assertEquals(Status.RUNNING, status.getStatus());
assertEquals(1, status.getChildren().size());
}
Aggregations