svn merge -c 1487647 from trunk for HDFS-4846. Clean up snapshot CLI commands output stacktrace for invalid arguments.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1488093 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ab2588a78b
commit
387b7af02f
|
@ -771,6 +771,9 @@ Release 2.0.5-beta - UNRELEASED
|
|||
HDFS-4842. Identify the correct prior snapshot when deleting a
|
||||
snapshot under a renamed subtree. (jing9)
|
||||
|
||||
HDFS-4846. Clean up snapshot CLI commands output stacktrace for invalid
|
||||
arguments. (Jing Zhao via brandonli)
|
||||
|
||||
Release 2.0.4-alpha - 2013-04-25
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -2152,11 +2152,7 @@ public class DFSClient implements java.io.Closeable {
|
|||
*/
|
||||
public void allowSnapshot(String snapshotRoot) throws IOException {
|
||||
checkOpen();
|
||||
try {
|
||||
namenode.allowSnapshot(snapshotRoot);
|
||||
} catch(RemoteException re) {
|
||||
throw re.unwrapRemoteException();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2166,11 +2162,7 @@ public class DFSClient implements java.io.Closeable {
|
|||
*/
|
||||
public void disallowSnapshot(String snapshotRoot) throws IOException {
|
||||
checkOpen();
|
||||
try {
|
||||
namenode.disallowSnapshot(snapshotRoot);
|
||||
} catch(RemoteException re) {
|
||||
throw re.unwrapRemoteException();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1433,7 +1433,7 @@ public class FSDirectory implements Closeable {
|
|||
INodeDirectorySnapshottable ssTargetDir =
|
||||
(INodeDirectorySnapshottable) targetDir;
|
||||
if (ssTargetDir.getNumSnapshots() > 0) {
|
||||
throw new IOException("The direcotry " + ssTargetDir.getFullPathName()
|
||||
throw new IOException("The directory " + ssTargetDir.getFullPathName()
|
||||
+ " cannot be deleted since " + ssTargetDir.getFullPathName()
|
||||
+ " is snapshottable and already has snapshots");
|
||||
} else {
|
||||
|
|
|
@ -51,8 +51,13 @@ public class LsSnapshottableDir {
|
|||
}
|
||||
DistributedFileSystem dfs = (DistributedFileSystem) fs;
|
||||
|
||||
try {
|
||||
SnapshottableDirectoryStatus[] stats = dfs.getSnapshottableDirListing();
|
||||
SnapshottableDirectoryStatus.print(stats, System.out);
|
||||
} catch (IOException e) {
|
||||
String[] content = e.getLocalizedMessage().split("\n");
|
||||
System.err.println("lsSnapshottableDir: " + content[0]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -82,9 +82,14 @@ public class SnapshotDiff {
|
|||
Path snapshotRoot = new Path(argv[0]);
|
||||
String fromSnapshot = getSnapshotName(argv[1]);
|
||||
String toSnapshot = getSnapshotName(argv[2]);
|
||||
try {
|
||||
SnapshotDiffReport diffReport = dfs.getSnapshotDiffReport(snapshotRoot,
|
||||
fromSnapshot, toSnapshot);
|
||||
System.out.println(diffReport.toString());
|
||||
} catch (IOException e) {
|
||||
String[] content = e.getLocalizedMessage().split("\n");
|
||||
System.err.println("snapshotDiff: " + content[0]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ public class TestNestedSnapshots {
|
|||
try {
|
||||
hdfs.disallowSnapshot(rootPath);
|
||||
fail("Expect snapshot exception when disallowing snapshot on root again");
|
||||
} catch (SnapshotException e) {
|
||||
} catch (RemoteException e) {
|
||||
GenericTestUtils.assertExceptionContains(
|
||||
"Root is not a snapshottable directory", e);
|
||||
}
|
||||
|
@ -149,14 +149,16 @@ public class TestNestedSnapshots {
|
|||
try {
|
||||
hdfs.allowSnapshot(rootPath);
|
||||
Assert.fail();
|
||||
} catch(SnapshotException se) {
|
||||
assertNestedSnapshotException(se, "subdirectory");
|
||||
} catch(RemoteException se) {
|
||||
assertNestedSnapshotException(
|
||||
(SnapshotException) se.unwrapRemoteException(), "subdirectory");
|
||||
}
|
||||
try {
|
||||
hdfs.allowSnapshot(foo);
|
||||
Assert.fail();
|
||||
} catch(SnapshotException se) {
|
||||
assertNestedSnapshotException(se, "subdirectory");
|
||||
} catch(RemoteException se) {
|
||||
assertNestedSnapshotException(
|
||||
(SnapshotException) se.unwrapRemoteException(), "subdirectory");
|
||||
}
|
||||
|
||||
final Path sub1Bar = new Path(bar, "sub1");
|
||||
|
@ -165,14 +167,16 @@ public class TestNestedSnapshots {
|
|||
try {
|
||||
hdfs.allowSnapshot(sub1Bar);
|
||||
Assert.fail();
|
||||
} catch(SnapshotException se) {
|
||||
assertNestedSnapshotException(se, "ancestor");
|
||||
} catch(RemoteException se) {
|
||||
assertNestedSnapshotException(
|
||||
(SnapshotException) se.unwrapRemoteException(), "ancestor");
|
||||
}
|
||||
try {
|
||||
hdfs.allowSnapshot(sub2Bar);
|
||||
Assert.fail();
|
||||
} catch(SnapshotException se) {
|
||||
assertNestedSnapshotException(se, "ancestor");
|
||||
} catch(RemoteException se) {
|
||||
assertNestedSnapshotException(
|
||||
(SnapshotException) se.unwrapRemoteException(), "ancestor");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -112,7 +112,7 @@ public class TestSnapshotDeletion {
|
|||
|
||||
// Deleting a snapshottable dir with snapshots should fail
|
||||
exception.expect(RemoteException.class);
|
||||
String error = "The direcotry " + sub.toString()
|
||||
String error = "The directory " + sub.toString()
|
||||
+ " cannot be deleted since " + sub.toString()
|
||||
+ " is snapshottable and already has snapshots";
|
||||
exception.expectMessage(error);
|
||||
|
|
Loading…
Reference in New Issue