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 04:56:52 UTC

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

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

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


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 5086bf1  HBASE-24196 [Shell] Add rename rsgroup command in hbase shell (#1554)
5086bf1 is described below

commit 5086bf1a3efbceddafc7b0543675f984331b87b7
Author: Reid Chan <re...@apache.org>
AuthorDate: Tue Apr 21 12:56:44 2020 +0800

    HBASE-24196 [Shell] Add rename rsgroup command in hbase shell (#1554)
    
    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 4e32ea4..76a480b 100644
--- a/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
@@ -179,5 +179,11 @@ module Hbase
       end
       @admin.removeServers(servers)
     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 9697c73..6303d6b 100644
--- a/hbase-shell/src/main/ruby/shell.rb
+++ b/hbase-shell/src/main/ruby/shell.rb
@@ -507,5 +507,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 ab7ba0d..5e7f37d 100644
--- a/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb
+++ b/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb
@@ -129,5 +129,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(@rsgroup_admin.getRSGroupInfo(new_rs_group_name))
+      assert_nil(@rsgroup_admin.getRSGroupInfo(old_rs_group_name))
+      assert_equal(1, @rsgroup_admin.getRSGroupInfo(new_rs_group_name).getServers.count)
+      assert_equal(1, @rsgroup_admin.getRSGroupInfo(new_rs_group_name).getTables.count)
+      assert_equal(table_name, @rsgroup_admin.getRSGroupInfo(new_rs_group_name).getTables.iterator.next.toString)
+    end
   end
 end