HBASE-15799 Two Shell 'close_region' Example Syntaxes Don't Work (Matt 
Warhaftig)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/3b74b6f3
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/3b74b6f3
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/3b74b6f3

Branch: refs/heads/hbase-12439
Commit: 3b74b6f329ad6ebc0d2d2548a7e1290297674529
Parents: 8604f9e
Author: tedyu <yuzhih...@gmail.com>
Authored: Mon May 9 20:58:55 2016 -0700
Committer: tedyu <yuzhih...@gmail.com>
Committed: Mon May 9 20:58:55 2016 -0700

----------------------------------------------------------------------
 hbase-shell/src/main/ruby/hbase/admin.rb        |  6 ++--
 .../main/ruby/shell/commands/close_region.rb    |  1 -
 hbase-shell/src/test/ruby/hbase/admin_test.rb   | 29 ++++++++++++++++++++
 3 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/3b74b6f3/hbase-shell/src/main/ruby/hbase/admin.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb 
b/hbase-shell/src/main/ruby/hbase/admin.rb
index 7ea315f..88a6598 100644
--- a/hbase-shell/src/main/ruby/hbase/admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/admin.rb
@@ -433,8 +433,10 @@ module Hbase
     # If server name is nil, we presume region_name is full region name 
(HRegionInfo.getRegionName).
     # If server name is not nil, we presume it is the region's encoded name 
(HRegionInfo.getEncodedName)
     def close_region(region_name, server)
-      if (server == nil || !closeEncodedRegion?(region_name, server))
-       @admin.closeRegion(region_name, server)
+      if (region_name.end_with? ".")
+        @admin.closeRegion(region_name, server)
+      else
+        closeEncodedRegion?(region_name, server)
       end
     end
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/3b74b6f3/hbase-shell/src/main/ruby/shell/commands/close_region.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands/close_region.rb 
b/hbase-shell/src/main/ruby/shell/commands/close_region.rb
index 9e2900c..ef1c99c 100644
--- a/hbase-shell/src/main/ruby/shell/commands/close_region.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/close_region.rb
@@ -46,7 +46,6 @@ Examples:
 
   hbase> close_region 'REGIONNAME'
   hbase> close_region 'REGIONNAME', 'SERVER_NAME'
-  hbase> close_region 'ENCODED_REGIONNAME'
   hbase> close_region 'ENCODED_REGIONNAME', 'SERVER_NAME'
 EOF
       end

http://git-wip-us.apache.org/repos/asf/hbase/blob/3b74b6f3/hbase-shell/src/test/ruby/hbase/admin_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/hbase/admin_test.rb 
b/hbase-shell/src/test/ruby/hbase/admin_test.rb
index 54f7418..50a65d0 100644
--- a/hbase-shell/src/test/ruby/hbase/admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb
@@ -238,6 +238,35 @@ module Hbase
     end
   end
 
+  # Simple administration methods tests
+  class AdminRegionTest < 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)
+    end
+
+    def teardown
+      shutdown
+    end
+
+    define_test "close_region should allow encoded & non-encoded region names" 
do
+      region = admin.locate_region(@test_name, '')
+      serverName = region.getServerName().getServerName()
+      regionName = region.getRegionInfo().getRegionNameAsString()
+      encodedRegionName = region.getRegionInfo().getEncodedName()
+
+      # Close region with just region name.
+      admin.close_region(regionName, nil)
+      # Close region with region name and server.
+      admin.close_region(regionName, serverName)
+      admin.close_region(encodedRegionName, serverName)
+    end
+  end
+
  # Simple administration methods tests
   class AdminAlterTableTest < Test::Unit::TestCase
     include TestHelpers

Reply via email to