[HUDI-692] Add delete savepoint for cli (#1397)
* Add delete savepoint for cli * Add check * Move JavaSparkContext to try
This commit is contained in:
@@ -76,17 +76,17 @@ public class SavepointsCommand implements CommandMarker {
|
|||||||
return "Commit " + commitTime + " not found in Commits " + timeline;
|
return "Commit " + commitTime + " not found in Commits " + timeline;
|
||||||
}
|
}
|
||||||
|
|
||||||
JavaSparkContext jsc = SparkUtil.initJavaSparkConf("Create Savepoint");
|
|
||||||
HoodieWriteClient client = createHoodieClient(jsc, metaClient.getBasePath());
|
|
||||||
String result;
|
String result;
|
||||||
if (client.savepoint(commitTime, user, comments)) {
|
try (JavaSparkContext jsc = SparkUtil.initJavaSparkConf("Create Savepoint")) {
|
||||||
// Refresh the current
|
HoodieWriteClient client = createHoodieClient(jsc, metaClient.getBasePath());
|
||||||
refreshMetaClient();
|
if (client.savepoint(commitTime, user, comments)) {
|
||||||
result = String.format("The commit \"%s\" has been savepointed.", commitTime);
|
// Refresh the current
|
||||||
} else {
|
refreshMetaClient();
|
||||||
result = String.format("Failed: Could not savepoint commit \"%s\".", commitTime);
|
result = String.format("The commit \"%s\" has been savepointed.", commitTime);
|
||||||
|
} else {
|
||||||
|
result = String.format("Failed: Could not savepoint commit \"%s\".", commitTime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
jsc.close();
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,6 +127,27 @@ public class SavepointsCommand implements CommandMarker {
|
|||||||
return "Metadata for table " + HoodieCLI.getTableMetaClient().getTableConfig().getTableName() + " refreshed.";
|
return "Metadata for table " + HoodieCLI.getTableMetaClient().getTableConfig().getTableName() + " refreshed.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@CliCommand(value = "savepoint delete", help = "Delete the savepoint")
|
||||||
|
public String deleteSavepoint(@CliOption(key = {"commit"}, help = "Delete a savepoint") final String commitTime) throws Exception {
|
||||||
|
HoodieTableMetaClient metaClient = HoodieCLI.getTableMetaClient();
|
||||||
|
HoodieTimeline completedInstants = metaClient.getActiveTimeline().getSavePointTimeline().filterCompletedInstants();
|
||||||
|
if (completedInstants.empty()) {
|
||||||
|
throw new HoodieException("There are no completed savepoint to run delete");
|
||||||
|
}
|
||||||
|
HoodieInstant savePoint = new HoodieInstant(false, HoodieTimeline.SAVEPOINT_ACTION, commitTime);
|
||||||
|
|
||||||
|
if (!completedInstants.containsInstant(savePoint)) {
|
||||||
|
return "Commit " + commitTime + " not found in Commits " + completedInstants;
|
||||||
|
}
|
||||||
|
|
||||||
|
try (JavaSparkContext jsc = SparkUtil.initJavaSparkConf("Delete Savepoint")) {
|
||||||
|
HoodieWriteClient client = createHoodieClient(jsc, metaClient.getBasePath());
|
||||||
|
client.deleteSavepoint(commitTime);
|
||||||
|
refreshMetaClient();
|
||||||
|
}
|
||||||
|
return "Savepoint " + commitTime + " deleted";
|
||||||
|
}
|
||||||
|
|
||||||
private static HoodieWriteClient createHoodieClient(JavaSparkContext jsc, String basePath) throws Exception {
|
private static HoodieWriteClient createHoodieClient(JavaSparkContext jsc, String basePath) throws Exception {
|
||||||
HoodieWriteConfig config = HoodieWriteConfig.newBuilder().withPath(basePath)
|
HoodieWriteConfig config = HoodieWriteConfig.newBuilder().withPath(basePath)
|
||||||
.withIndexConfig(HoodieIndexConfig.newBuilder().withIndexType(HoodieIndex.IndexType.BLOOM).build()).build();
|
.withIndexConfig(HoodieIndexConfig.newBuilder().withIndexType(HoodieIndex.IndexType.BLOOM).build()).build();
|
||||||
|
|||||||
Reference in New Issue
Block a user