hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From apurt...@apache.org
Subject [2/5] hbase git commit: HBASE-13550 [Shell] Support unset of a list of table attributes
Date Sat, 25 Apr 2015 01:22:28 GMT
HBASE-13550 [Shell] Support unset of a list of table attributes


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

Branch: refs/heads/branch-1.1
Commit: d4c630968ec018a9caa9280d1c130ad5da7f44a4
Parents: 0fdd93f
Author: Andrew Purtell <apurtell@apache.org>
Authored: Thu Apr 23 17:12:58 2015 -0700
Committer: Andrew Purtell <apurtell@apache.org>
Committed: Fri Apr 24 17:51:30 2015 -0700

----------------------------------------------------------------------
 hbase-shell/src/main/ruby/hbase/admin.rb      | 15 ++++++++++++---
 hbase-shell/src/test/ruby/hbase/admin_test.rb | 16 ++++++++++++++++
 2 files changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/d4c63096/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 5219b99..e10e2be 100644
--- a/hbase-shell/src/main/ruby/hbase/admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/admin.rb
@@ -518,10 +518,19 @@ module Hbase
           # Unset table attributes
           elsif method == "table_att_unset"
             raise(ArgumentError, "NAME parameter missing for table_att_unset method") unless
name
-            if (htd.getValue(name) == nil)
-              raise ArgumentError, "Can not find attribute: #{name}"
+            if name.kind_of?(Array)
+              name.each do |key|
+                if (htd.getValue(key) == nil)
+                  raise ArgumentError, "Could not find attribute: #{key}"
+                end
+                htd.remove(key)
+              end
+            else
+              if (htd.getValue(name) == nil)
+                raise ArgumentError, "Could not find attribute: #{name}"
+              end
+              htd.remove(name)
             end
-            htd.remove(name)
             @admin.modifyTable(table_name.to_java_bytes, htd)
           # Unknown method
           else

http://git-wip-us.apache.org/repos/asf/hbase/blob/d4c63096/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 1925864..b643890 100644
--- a/hbase-shell/src/test/ruby/hbase/admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb
@@ -348,6 +348,22 @@ module Hbase
       assert_no_match(eval("/" + key + "/"), admin.describe(@test_name))
     end
 
+    define_test "alter should be able to remove a list of table attributes" do
+      drop_test_table(@test_name)
+
+      key_1 = "TestAttr1"
+      key_2 = "TestAttr2"
+      admin.create(@test_name, { NAME => 'i'}, METADATA => { key_1 => 1, key_2 =>
2 })
+
+      # eval() is used to convert a string to regex
+      assert_match(eval("/" + key_1 + "/"), admin.describe(@test_name))
+      assert_match(eval("/" + key_2 + "/"), admin.describe(@test_name))
+
+      admin.alter(@test_name, true, 'METHOD' => 'table_att_unset', 'NAME' => [ key_1,
key_2 ])
+      assert_no_match(eval("/" + key_1 + "/"), admin.describe(@test_name))
+      assert_no_match(eval("/" + key_2 + "/"), admin.describe(@test_name))
+    end
+
     define_test "get_table should get a real table" do
       drop_test_table(@test_name)
       create_test_table(@test_name)


Mime
View raw message