You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2015/04/25 03:22:29 UTC
[3/5] hbase git commit: HBASE-13550 [Shell] Support unset of a list
of table attributes
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/0d6d87d0
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0d6d87d0
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0d6d87d0
Branch: refs/heads/branch-1
Commit: 0d6d87d0f83ec0b9bab0287612bad681ec5c0faf
Parents: 85d090d
Author: Andrew Purtell <ap...@apache.org>
Authored: Thu Apr 23 17:12:58 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Fri Apr 24 17:51:33 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/0d6d87d0/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/0d6d87d0/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)