Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ static final class Options {
"Do not verify checksum, use name+length only.");
static final Option NO_TARGET_VERIFY = new Option(null, "no-target-verify", false,
"Do not verify the integrity of the exported snapshot.");
static final Option NO_SOURCE_VERIFY = new Option(null, "no-source-verify", false,
"Do not verify the source of the snapshot.");
static final Option OVERWRITE = new Option(null, "overwrite", false,
"Rewrite the snapshot manifest if already exists.");
static final Option CHUSER = new Option(null, "chuser", true,
Expand Down Expand Up @@ -915,6 +917,7 @@ private void setPermissionParallel(final FileSystem outputFs, final short filesM
}

private boolean verifyTarget = true;
private boolean verifySource = true;
private boolean verifyChecksum = true;
private String snapshotName = null;
private String targetName = null;
Expand Down Expand Up @@ -946,6 +949,7 @@ protected void processOptions(CommandLine cmd) {
// And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).
verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());
verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());
verifySource = !cmd.hasOption(Options.NO_SOURCE_VERIFY.getLongOpt());
}

/**
Expand Down Expand Up @@ -996,6 +1000,12 @@ public int doWork() throws IOException {
LOG.debug("outputFs={}, outputRoot={}, skipTmp={}, initialOutputSnapshotDir={}",
outputFs, outputRoot.toString(), skipTmp, initialOutputSnapshotDir);

// Verify snapshot source before copying files
if (verifySource) {
LOG.info("Verify snapshot source.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about adding srcConf, inputFs, inputRoot, snapshotDir values in the log as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added inputFs, inputRoot, snapshotDir values in the log, srcConf contains too many things that I didn't add.

verifySnapshot(srcConf, inputFs, inputRoot, snapshotDir);
}

// Find the necessary directory which need to change owner and group
Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);
if (outputFs.exists(needSetOwnerDir)) {
Expand Down Expand Up @@ -1146,6 +1156,7 @@ protected void printUsage() {
addOption(Options.TARGET_NAME);
addOption(Options.NO_CHECKSUM_VERIFY);
addOption(Options.NO_TARGET_VERIFY);
addOption(Options.NO_SOURCE_VERIFY);
addOption(Options.OVERWRITE);
addOption(Options.CHUSER);
addOption(Options.CHGROUP);
Expand Down