@Command( name = "delete-snapshot", description = "Deletes a named snapshot" ) public void deleteSnapshot( @Parameters(index = "0", paramLabel = "<snapshot name>", description = "Name of the snapshot") String snapshotName ) throws IOException { runWithJet(jet -> { JobStateSnapshot jobStateSnapshot = jet.getJobStateSnapshot(snapshotName); if (jobStateSnapshot == null) { throw new JetException(String.format("No snapshot with name %s was found", snapshotName)); } jobStateSnapshot.destroy(); println("Snapshot was successfully deleted."); }); }
@Override public JobStateSnapshot exportSnapshot(String name) { try { invokeOp(new ExportSnapshotOperation(getId(), name, false)).get(); } catch (Exception e) { throw rethrow(e); } return getJetInstance(container()).getJobStateSnapshot(name); }
@Override public JobStateSnapshot cancelAndExportSnapshot(String name) { try { invokeOp(new ExportSnapshotOperation(getId(), name, true)).get(); } catch (Exception e) { throw rethrow(e); } return getJetInstance(container()).getJobStateSnapshot(name); }
@Test public void test_deleteSnapshot_bySnapshotName() { // Given Job job = newJob(); assertJobStatusEventually(job, JobStatus.RUNNING); JobStateSnapshot snapshot = job.exportSnapshot("my-snapshot"); // When run("delete-snapshot", snapshot.name()); // Then JobStateSnapshot ss = jet.getJobStateSnapshot(snapshot.name()); assertNull("Snapshot should have been deleted", ss); }
@Test public void test_saveSnapshot_byJobName() { // Given Job job = newJob(); assertJobStatusEventually(job, JobStatus.RUNNING); // When run("save-snapshot", job.getName(), "my-snapshot"); // Then JobStateSnapshot ss = jet.getJobStateSnapshot("my-snapshot"); assertNotNull("no snapshot was found", ss); assertEquals(job.getName(), ss.jobName()); }
@Test public void test_saveSnapshot_byJobId() { // Given Job job = newJob(); assertJobStatusEventually(job, JobStatus.RUNNING); // When run("save-snapshot", job.getIdString(), "my-snapshot"); // Then JobStateSnapshot ss = jet.getJobStateSnapshot("my-snapshot"); assertNotNull("no snapshot was found", ss); assertEquals(job.getName(), ss.jobName()); }
@Test public void test_saveSnapshotAndCancel_byJobName() { // Given Job job = newJob(); assertJobStatusEventually(job, JobStatus.RUNNING); // When run("save-snapshot", "-C", job.getName(), "my-snapshot"); // Then JobStateSnapshot ss = jet.getJobStateSnapshot("my-snapshot"); assertNotNull("no snapshot was found", ss); assertEquals(job.getName(), ss.jobName()); assertJobStatusEventually(job, JobStatus.FAILED); }