diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 766b43e0cc6..de6ccb4c723 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -372,7 +372,15 @@ module Hbase # Drops a table def drop_all(regex) pattern = Pattern.compile(regex.to_s) - failed = @admin.deleteTables(pattern).map { |t| t.getTableName.getNameAsString } + failed = java.util.ArrayList.new + @admin.listTableNames(pattern).each do |table_name| + begin + @admin.deleteTable(table_name) + rescue java.io.IOException => e + puts puts "table:#{table_name}, error:#{e.toString}" + failed.add(table_name) + end + end failed end diff --git a/hbase-shell/src/test/ruby/hbase/admin_test.rb b/hbase-shell/src/test/ruby/hbase/admin_test.rb index 66a17e80428..24a42daae04 100644 --- a/hbase-shell/src/test/ruby/hbase/admin_test.rb +++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb @@ -429,6 +429,10 @@ module Hbase admin.enable_all(@regex) assert(command(:is_enabled, @t1)) assert(command(:is_enabled, @t2)) + admin.disable_all(@regex) + admin.drop_all(@regex) + assert(!command(:exists, @t1)) + assert(!command(:exists, @t2)) end #-------------------------------------------------------------------------------