You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2019/10/08 10:45:33 UTC
[hbase] branch branch-2.1 updated: HBASE-23134 Enable_all and
Disable_all table by Regex fail from Shell (#698)
This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 340e6c0 HBASE-23134 Enable_all and Disable_all table by Regex fail from Shell (#698)
340e6c0 is described below
commit 340e6c096c4125a29360c673eebff4d4d8173c0a
Author: Karthik Palanisamy <kp...@hortonworks.com>
AuthorDate: Tue Oct 8 03:16:47 2019 -0700
HBASE-23134 Enable_all and Disable_all table by Regex fail from Shell (#698)
Signed-off-by: Duo Zhang <zh...@apache.org>
---
hbase-shell/src/main/ruby/hbase/admin.rb | 24 +++++++++++++++++++++---
hbase-shell/src/test/ruby/hbase/admin_test.rb | 16 ++++++++++++++++
2 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb
index 140c724..b98cce0 100644
--- a/hbase-shell/src/main/ruby/hbase/admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/admin.rb
@@ -295,8 +295,17 @@ module Hbase
#----------------------------------------------------------------------------------------------
# Enables all tables matching the given regex
def enable_all(regex)
- regex = regex.to_s
- @admin.enableTables(Pattern.compile(regex))
+ pattern = Pattern.compile(regex.to_s)
+ failed = java.util.ArrayList.new
+ @admin.listTableNames(pattern).each do |table_name|
+ begin
+ @admin.enableTable(table_name)
+ rescue java.io.IOException => e
+ puts "table:#{table_name}, error:#{e.toString}"
+ failed.add(table_name)
+ end
+ end
+ failed
end
#----------------------------------------------------------------------------------------------
@@ -311,7 +320,16 @@ module Hbase
# Disables all tables matching the given regex
def disable_all(regex)
pattern = Pattern.compile(regex.to_s)
- @admin.disableTables(pattern).map { |t| t.getTableName.getNameAsString }
+ failed = java.util.ArrayList.new
+ @admin.listTableNames(pattern).each do |table_name|
+ begin
+ @admin.disableTable(table_name)
+ rescue java.io.IOException => e
+ 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 c2a350a..da73158 100644
--- a/hbase-shell/src/test/ruby/hbase/admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb
@@ -333,6 +333,22 @@ module Hbase
#-------------------------------------------------------------------------------
+ define_test 'enable and disable tables by regex' do
+ @t1 = 't1'
+ @t2 = 't11'
+ @regex = 't1.*'
+ command(:create, @t1, 'f')
+ command(:create, @t2, 'f')
+ admin.disable_all(@regex)
+ assert(command(:is_disabled, @t1))
+ assert(command(:is_disabled, @t2))
+ admin.enable_all(@regex)
+ assert(command(:is_enabled, @t1))
+ assert(command(:is_enabled, @t2))
+ end
+
+ #-------------------------------------------------------------------------------
+
define_test "list_regions should fail for disabled table" do
drop_test_table(@create_test_name)
admin.create(@create_test_name, 'a')