You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2014/03/17 05:44:20 UTC
svn commit: r1578225 - in /hbase/branches/0.96/hbase-server/src:
main/java/org/apache/hadoop/hbase/master/HMaster.java
test/java/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java
Author: stack
Date: Mon Mar 17 04:44:19 2014
New Revision: 1578225
URL: http://svn.apache.org/r1578225
Log:
HBASE-10762 clone_snapshot doesn't check for missing namespace
Modified:
hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java
Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1578225&r1=1578224&r2=1578225&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Mon Mar 17 04:44:19 2014
@@ -2930,6 +2930,14 @@ MasterServices, Server {
throw new ServiceException(e);
}
+ // ensure namespace exists
+ try {
+ TableName dstTable = TableName.valueOf(request.getSnapshot().getTable());
+ getNamespaceDescriptor(dstTable.getNamespaceAsString());
+ } catch (IOException ioe) {
+ throw new ServiceException(ioe);
+ }
+
try {
SnapshotDescription reqSnapshot = request.getSnapshot();
snapshotManager.restoreSnapshot(reqSnapshot);
Modified: hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java?rev=1578225&r1=1578224&r2=1578225&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java (original)
+++ hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java Mon Mar 17 04:44:19 2014
@@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.HConstant
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.LargeTests;
import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.master.MasterFileSystem;
import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;
@@ -147,6 +148,12 @@ public class TestCloneSnapshotFromClient
admin.cloneSnapshot(snapshotName, tableName);
}
+ @Test(expected = NamespaceNotFoundException.class)
+ public void testCloneOnMissingNamespace() throws IOException, InterruptedException {
+ TableName clonedTableName = TableName.valueOf("unknownNS:clonetb");
+ admin.cloneSnapshot(snapshotName1, clonedTableName);
+ }
+
@Test
public void testCloneSnapshot() throws IOException, InterruptedException {
TableName clonedTableName = TableName.valueOf("clonedtb-" + System.currentTimeMillis());