HBASE-18842 Fix unknown namespace message in clone_snapshot
Signed-off-by: Jesse Yates <jyates@apache.org>
(cherry picked from commit 0ff4f5fba9
)
This commit is contained in:
parent
75004408b0
commit
84afd69c63
|
@ -47,6 +47,10 @@ EOF
|
||||||
tableName = args[1]
|
tableName = args[1]
|
||||||
raise "Table already exists: #{tableName}!"
|
raise "Table already exists: #{tableName}!"
|
||||||
end
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -21,6 +21,9 @@ require 'hbase_constants'
|
||||||
require 'hbase/table'
|
require 'hbase/table'
|
||||||
require 'shell'
|
require 'shell'
|
||||||
|
|
||||||
|
##
|
||||||
|
# Tests whether all registered commands have a help and command method
|
||||||
|
|
||||||
class ShellCommandsTest < Test::Unit::TestCase
|
class ShellCommandsTest < Test::Unit::TestCase
|
||||||
Shell.commands.each do |name, klass|
|
Shell.commands.each do |name, klass|
|
||||||
define_test "#{name} command class #{klass} should respond to help" do
|
define_test "#{name} command class #{klass} should respond to help" do
|
||||||
|
@ -32,3 +35,48 @@ class ShellCommandsTest < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
end
|
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
|
||||||
|
|
Loading…
Reference in New Issue