You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2018/04/25 21:13:31 UTC
[2/4] hbase git commit: HBASE-18842 Fix unknown namespace message in
clone_snapshot
HBASE-18842 Fix unknown namespace message in clone_snapshot
Signed-off-by: Jesse Yates <jy...@apache.org>
(cherry picked from commit 0ff4f5fba9cef8b4dea599357d935b47f6151152)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/73a59a93
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/73a59a93
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/73a59a93
Branch: refs/heads/branch-2.0
Commit: 73a59a930ac8c1d02d00e9a02207dca3b2efba02
Parents: 3c6cfd9
Author: Thoralf Gutierrez <th...@gmail.com>
Authored: Tue Sep 26 10:01:53 2017 -0700
Committer: Sean Busbey <bu...@apache.org>
Committed: Wed Apr 25 14:46:41 2018 -0500
----------------------------------------------------------------------
.../main/ruby/shell/commands/clone_snapshot.rb | 4 ++
.../src/test/ruby/shell/commands_test.rb | 48 ++++++++++++++++++++
2 files changed, 52 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/73a59a93/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb b/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
index 6d9c5de..8f0b35b 100644
--- a/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
@@ -47,6 +47,10 @@ EOF
tableName = args[1]
raise "Table already exists: #{tableName}!"
end
+ if cause.is_a?(org.apache.hadoop.hbase.NamespaceNotFoundException)
+ namespace_name = args[1].split(':')[0]
+ raise "Unknown namespace: #{namespace_name}!"
+ end
end
end
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/73a59a93/hbase-shell/src/test/ruby/shell/commands_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/shell/commands_test.rb b/hbase-shell/src/test/ruby/shell/commands_test.rb
index 9fa291a..5daf9fa 100644
--- a/hbase-shell/src/test/ruby/shell/commands_test.rb
+++ b/hbase-shell/src/test/ruby/shell/commands_test.rb
@@ -21,6 +21,9 @@ require 'hbase_constants'
require 'hbase/table'
require 'shell'
+##
+# Tests whether all registered commands have a help and command method
+
class ShellCommandsTest < Test::Unit::TestCase
Shell.commands.each do |name, klass|
define_test "#{name} command class #{klass} should respond to help" do
@@ -32,3 +35,48 @@ class ShellCommandsTest < Test::Unit::TestCase
end
end
end
+
+##
+# Tests commands from the point of view of the shell to validate
+# that the error messages returned to the user are correct
+
+class ShellCloneSnapshotTest < Test::Unit::TestCase
+ include Hbase::TestHelpers
+
+ def setup
+ setup_hbase
+ @shell.interactive = false
+ # Create test table
+ @test_name = 'hbase_shell_tests_table'
+ drop_test_table(@test_name)
+ create_test_table(@test_name)
+ # Test snapshot name
+ @create_test_snapshot = 'hbase_shell_tests_snapshot'
+ drop_test_snapshot
+ end
+
+ def teardown
+ drop_test_table(@test_name)
+ drop_test_snapshot
+ shutdown
+ end
+
+ define_test 'Clone snapshot with table that already exists' do
+ existing_table = 'existing_table'
+ create_test_table(existing_table)
+ admin.snapshot(@test_name, @create_test_snapshot)
+ error = assert_raise(RuntimeError) do
+ @shell.command(:clone_snapshot, @create_test_snapshot, existing_table)
+ end
+ assert_match(/Table already exists: existing_table!/, error.message)
+ end
+
+ define_test 'Clone snapshot with unknown namespace' do
+ clone_table = 'does_not_exist:test_clone_snapshot_table'
+ admin.snapshot(@test_name, @create_test_snapshot)
+ error = assert_raise(RuntimeError) do
+ @shell.command(:clone_snapshot, @create_test_snapshot, clone_table)
+ end
+ assert_match(/Unknown namespace: does_not_exist!/, error.message)
+ end
+end