1
0

[HUDI-692] Add delete savepoint for cli (#1397)

* Add delete savepoint for cli
* Add check
* Move JavaSparkContext to try
This commit is contained in:
hongdd
2020-03-12 07:49:02 +08:00
committed by GitHub
parent 7d66831444
commit 0f892ef62c

View File

@@ -76,17 +76,17 @@ public class SavepointsCommand implements CommandMarker {
return "Commit " + commitTime + " not found in Commits " + timeline;
}
JavaSparkContext jsc = SparkUtil.initJavaSparkConf("Create Savepoint");
HoodieWriteClient client = createHoodieClient(jsc, metaClient.getBasePath());
String result;
if (client.savepoint(commitTime, user, comments)) {
// Refresh the current
refreshMetaClient();
result = String.format("The commit \"%s\" has been savepointed.", commitTime);
} else {
result = String.format("Failed: Could not savepoint commit \"%s\".", commitTime);
try (JavaSparkContext jsc = SparkUtil.initJavaSparkConf("Create Savepoint")) {
HoodieWriteClient client = createHoodieClient(jsc, metaClient.getBasePath());
if (client.savepoint(commitTime, user, comments)) {
// Refresh the current
refreshMetaClient();
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;
}
@@ -127,6 +127,27 @@ public class SavepointsCommand implements CommandMarker {
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 {
HoodieWriteConfig config = HoodieWriteConfig.newBuilder().withPath(basePath)
.withIndexConfig(HoodieIndexConfig.newBuilder().withIndexType(HoodieIndex.IndexType.BLOOM).build()).build();