HBASE-14105 Add shell tests for Snapshot

Signed-off-by: Andrew Purtell <apurtell@apache.org>
This commit is contained in:
Ashish Singhi 2015-08-07 11:14:38 -07:00 committed by Andrew Purtell
parent e53d2481ee
commit 9ea7ab849c
2 changed files with 211 additions and 0 deletions

View File

@ -385,4 +385,207 @@ module Hbase
replication_status("replication", "sink")
end
end
# Simple administration methods tests
class AdminSnapshotTest < Test::Unit::TestCase
include TestHelpers
def setup
setup_hbase
# Create test table if it does not exist
@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'
end
def teardown
shutdown
end
#-------------------------------------------------------------------------------
define_test "Snapshot should fail with non-string snapshot name" do
assert_raise(NoMethodError) do
admin.snapshot(123, 'xxx')
end
end
define_test "Snapshot should fail with non-string table name" do
assert_raise(NoMethodError) do
admin.snapshot(@create_test_snapshot, 123)
end
end
define_test "Snapshot should fail without table name" do
assert_raise(ArgumentError) do
admin.snapshot("hbase_create_test_snapshot")
end
end
define_test "Snapshot should work with string args" do
drop_test_snapshot()
admin.snapshot(@test_name, @create_test_snapshot)
list = admin.list_snapshot(@create_test_snapshot)
assert_equal(1, list.size)
end
define_test "Snapshot should work when SKIP_FLUSH args" do
drop_test_snapshot()
admin.snapshot(@test_name, @create_test_snapshot, {SKIP_FLUSH => true})
list = admin.list_snapshot(@create_test_snapshot)
assert_equal(1, list.size)
end
define_test "List snapshot without any args" do
drop_test_snapshot()
admin.snapshot(@test_name, @create_test_snapshot)
list = admin.list_snapshot()
assert_equal(1, list.size)
end
define_test "List snapshot for a non-existing snapshot" do
list = admin.list_snapshot("xyz")
assert_equal(0, list.size)
end
define_test "Restore snapshot without any args" do
assert_raise(ArgumentError) do
admin.restore_snapshot()
end
end
define_test "Restore snapshot should work" do
drop_test_snapshot()
restore_table = "test_restore_snapshot_table"
admin.create(restore_table, 'f1', 'f2')
assert_match(eval("/" + "f1" + "/"), admin.describe(restore_table))
assert_match(eval("/" + "f2" + "/"), admin.describe(restore_table))
admin.snapshot(restore_table, @create_test_snapshot)
admin.alter(restore_table, true, METHOD => 'delete', NAME => 'f1')
assert_no_match(eval("/" + "f1" + "/"), admin.describe(restore_table))
assert_match(eval("/" + "f2" + "/"), admin.describe(restore_table))
drop_test_table(restore_table)
admin.restore_snapshot(@create_test_snapshot)
assert_match(eval("/" + "f1" + "/"), admin.describe(restore_table))
assert_match(eval("/" + "f2" + "/"), admin.describe(restore_table))
drop_test_table(restore_table)
end
define_test "Clone snapshot without any args" do
assert_raise(ArgumentError) do
admin.restore_snapshot()
end
end
define_test "Clone snapshot without table name args" do
assert_raise(ArgumentError) do
admin.clone_snapshot(@create_test_snapshot)
end
end
define_test "Clone snapshot should work" do
drop_test_snapshot()
clone_table = "test_clone_snapshot_table"
assert_match(eval("/" + "x" + "/"), admin.describe(@test_name))
assert_match(eval("/" + "y" + "/"), admin.describe(@test_name))
admin.snapshot(@test_name, @create_test_snapshot)
admin.clone_snapshot(@create_test_snapshot, clone_table)
assert_match(eval("/" + "x" + "/"), admin.describe(clone_table))
assert_match(eval("/" + "y" + "/"), admin.describe(clone_table))
drop_test_table(clone_table)
end
define_test "Delete snapshot without any args" do
assert_raise(ArgumentError) do
admin.delete_snapshot()
end
end
define_test "Delete snapshot should work" do
drop_test_snapshot()
admin.snapshot(@test_name, @create_test_snapshot)
list = admin.list_snapshot()
assert_equal(1, list.size)
admin.delete_snapshot(@create_test_snapshot)
list = admin.list_snapshot()
assert_equal(0, list.size)
end
define_test "Delete all snapshots without any args" do
assert_raise(ArgumentError) do
admin.delete_all_snapshot()
end
end
define_test "Delete all snapshots should work" do
drop_test_snapshot()
admin.snapshot(@test_name, "delete_all_snapshot1")
admin.snapshot(@test_name, "delete_all_snapshot2")
admin.snapshot(@test_name, "snapshot_delete_all_1")
admin.snapshot(@test_name, "snapshot_delete_all_2")
list = admin.list_snapshot()
assert_equal(4, list.size)
admin.delete_all_snapshot("d.*")
list = admin.list_snapshot()
assert_equal(2, list.size)
admin.delete_all_snapshot(".*")
list = admin.list_snapshot()
assert_equal(0, list.size)
end
define_test "Delete table snapshots without any args" do
assert_raise(ArgumentError) do
admin.delete_table_snapshots()
end
end
define_test "Delete table snapshots should work" do
drop_test_snapshot()
admin.snapshot(@test_name, "delete_table_snapshot1")
admin.snapshot(@test_name, "delete_table_snapshot2")
admin.snapshot(@test_name, "snapshot_delete_table1")
new_table = "test_delete_table_snapshots_table"
admin.create(new_table, 'f1')
admin.snapshot(new_table, "delete_table_snapshot3")
list = admin.list_snapshot()
assert_equal(4, list.size)
admin.delete_table_snapshots(@test_name, "d.*")
list = admin.list_snapshot()
assert_equal(2, list.size)
admin.delete_table_snapshots(@test_name)
list = admin.list_snapshot()
assert_equal(1, list.size)
admin.delete_table_snapshots(".*", "d.*")
list = admin.list_snapshot()
assert_equal(0, list.size)
drop_test_table(new_table)
end
define_test "List table snapshots without any args" do
assert_raise(ArgumentError) do
admin.list_table_snapshots()
end
end
define_test "List table snapshots should work" do
drop_test_snapshot()
admin.snapshot(@test_name, "delete_table_snapshot1")
admin.snapshot(@test_name, "delete_table_snapshot2")
admin.snapshot(@test_name, "snapshot_delete_table1")
new_table = "test_list_table_snapshots_table"
admin.create(new_table, 'f1')
admin.snapshot(new_table, "delete_table_snapshot3")
list = admin.list_table_snapshots(".*")
assert_equal(4, list.size)
list = admin.list_table_snapshots(@test_name, "d.*")
assert_equal(2, list.size)
list = admin.list_table_snapshots(@test_name)
assert_equal(3, list.size)
admin.delete_table_snapshots(".*")
list = admin.list_table_snapshots(".*", ".*")
assert_equal(0, list.size)
drop_test_table(new_table)
end
end
end

View File

@ -114,6 +114,14 @@ module Hbase
def replication_status(format,type)
return admin.status(format,type)
end
def drop_test_snapshot()
begin
admin.delete_all_snapshot(".*")
rescue => e
puts "IGNORING DELETE ALL SNAPSHOT ERROR: #{e}"
end
end
end
end