You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by re...@apache.org on 2020/04/21 02:22:49 UTC

[hbase] branch master updated: HBASE-24196 [Shell] Add rename rsgroup command in hbase shell (#1551)

This is an automated email from the ASF dual-hosted git repository.

reidchan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 9cddac0  HBASE-24196 [Shell] Add rename rsgroup command in hbase shell (#1551)
9cddac0 is described below

commit 9cddac01badfd64afae34e8048f4a6607bcc2b0e
Author: Reid Chan <re...@apache.org>
AuthorDate: Tue Apr 21 10:22:33 2020 +0800

    HBASE-24196 [Shell] Add rename rsgroup command in hbase shell (#1551)
    
    Signed-off-by: Viraj Jasani <vj...@apache.org>
    Signed-off-by: Jan Hentschel <ja...@ultratendency.com>
---
 hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb   |  6 ++++
 hbase-shell/src/main/ruby/shell.rb                 |  1 +
 .../src/main/ruby/shell/commands/rename_rsgroup.rb | 35 ++++++++++++++++++++++
 .../src/test/ruby/shell/rsgroup_shell_test.rb      | 13 ++++++++
 4 files changed, 55 insertions(+)

diff --git a/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb b/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
index cdfeec9..fd39634 100644
--- a/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
@@ -185,5 +185,11 @@ module Hbase
     def list_tables_in_rs_group(group_name)
       @admin.listTablesInRSGroup(group_name)
     end
+
+    #--------------------------------------------------------------------------
+    # rename rsgroup
+    def rename_rsgroup(oldname, newname)
+      @admin.renameRSGroup(oldname, newname)
+    end
   end
 end
diff --git a/hbase-shell/src/main/ruby/shell.rb b/hbase-shell/src/main/ruby/shell.rb
index eb013f6..885394c 100644
--- a/hbase-shell/src/main/ruby/shell.rb
+++ b/hbase-shell/src/main/ruby/shell.rb
@@ -508,5 +508,6 @@ Shell.load_command_group(
     get_server_rsgroup
     get_table_rsgroup
     remove_servers_rsgroup
+    rename_rsgroup
   ]
 )
diff --git a/hbase-shell/src/main/ruby/shell/commands/rename_rsgroup.rb b/hbase-shell/src/main/ruby/shell/commands/rename_rsgroup.rb
new file mode 100644
index 0000000..5403c32
--- /dev/null
+++ b/hbase-shell/src/main/ruby/shell/commands/rename_rsgroup.rb
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+module Shell
+  module Commands
+    class RenameRsgroup < Command
+      def help
+        <<-EOF
+Rename a RegionServer group.
+
+  hbase> rename_rsgroup 'old_rsgroup_name', 'new_rsgroup_name'
+
+EOF
+      end
+
+      def command(oldname, newname)
+        rsgroup_admin.rename_rsgroup(oldname, newname)
+      end
+    end
+  end
+end
diff --git a/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb b/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb
index 3a44a12..d7bccdb 100644
--- a/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb
+++ b/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb
@@ -127,5 +127,18 @@ module Hbase
         @hbase.rsgroup_admin().get_rsgroup_of_table('foobar')
       end
     end
+
+    define_test 'Test rsgroup rename' do
+      old_rs_group_name = 'test_group'
+      new_rs_group_name = 'renamed_test_group'
+      table_name = 'test_table'
+
+      @hbase.rsgroup_admin.rename_rsgroup(old_rs_group_name, new_rs_group_name)
+      assert_not_nil(@admin.getRSGroup(new_rs_group_name))
+      assert_nil(@admin.getRSGroup(old_rs_group_name))
+      assert_equal(1, @admin.getRSGroup(new_rs_group_name).getServers.count)
+      assert_equal(1, @admin.listTablesInRSGroup(new_rs_group_name).count)
+      assert_true(@admin.listTablesInRSGroup(new_rs_group_name).contains(org.apache.hadoop.hbase.TableName.valueOf(table_name)))
+    end
   end
 end