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 2016/09/09 21:54:30 UTC
[2/3] hbase git commit: HBASE-16576 Shell add_peer doesn't allow
setting cluster_key for custom endpoints
HBASE-16576 Shell add_peer doesn't allow setting cluster_key for custom endpoints
Signed-off-by: Andrew Purtell <ap...@apache.org>
Conflicts:
hbase-shell/src/main/ruby/shell/commands/add_peer.rb
hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/fe57fa4d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/fe57fa4d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/fe57fa4d
Branch: refs/heads/branch-1
Commit: fe57fa4daa303f4d0612c7200a7a1145b336ff7c
Parents: ad67fd0
Author: Andrew Purtell <ap...@apache.org>
Authored: Fri Sep 9 20:36:03 2016 +0000
Committer: Andrew Purtell <ap...@apache.org>
Committed: Fri Sep 9 14:54:15 2016 -0700
----------------------------------------------------------------------
.../src/main/ruby/hbase/replication_admin.rb | 2 --
.../src/main/ruby/shell/commands/add_peer.rb | 8 +++--
.../test/ruby/hbase/replication_admin_test.rb | 35 ++++++++++----------
3 files changed, 23 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/fe57fa4d/hbase-shell/src/main/ruby/hbase/replication_admin.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/replication_admin.rb b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
index 41f8180..d0719d8 100644
--- a/hbase-shell/src/main/ruby/hbase/replication_admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
@@ -55,8 +55,6 @@ module Hbase
# or neither are provided
if endpoint_classname.nil? and cluster_key.nil?
raise(ArgumentError, "Either ENDPOINT_CLASSNAME or CLUSTER_KEY must be specified.")
- elsif !endpoint_classname.nil? and !cluster_key.nil?
- raise(ArgumentError, "ENDPOINT_CLASSNAME and CLUSTER_KEY cannot both be specified.")
end
# Cluster Key is required for ReplicationPeerConfig for a custom replication endpoint
http://git-wip-us.apache.org/repos/asf/hbase/blob/fe57fa4d/hbase-shell/src/main/ruby/shell/commands/add_peer.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands/add_peer.rb b/hbase-shell/src/main/ruby/shell/commands/add_peer.rb
index 0fcdd3d..cf9862a 100644
--- a/hbase-shell/src/main/ruby/shell/commands/add_peer.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/add_peer.rb
@@ -51,9 +51,13 @@ the key TABLE_CFS.
TABLE_CFS => { "table1" => [], "table2" => ["cf1"], "table3" => ["cf1", "cf2"] }
hbase> add_peer '11', ENDPOINT_CLASSNAME => 'org.apache.hadoop.hbase.MyReplicationEndpoint',
DATA => { "key1" => 1 }, CONFIG => { "config1" => "value1", "config2" => "value2" },
- TABLE_CFS => { "table1" => [], "table2" => ["cf1"], "table3" => ["cf1", "cf2"] }
+ TABLE_CFS => { "table1" => [], "ns2:table2" => ["cf1"], "ns3:table3" => ["cf1", "cf2"] }
+ hbase> add_peer '12', ENDPOINT_CLASSNAME => 'org.apache.hadoop.hbase.MyReplicationEndpoint',
+ CLUSTER_KEY => "server2.cie.com:2181:/hbase"
+
+Note: Either CLUSTER_KEY or ENDPOINT_CLASSNAME must be specified. If ENDPOINT_CLASSNAME is specified, CLUSTER_KEY is
+optional and should only be specified if a particular custom endpoint requires it.
-Note: Either CLUSTER_KEY or ENDPOINT_CLASSNAME must be specified but not both.
EOF
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/fe57fa4d/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb b/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
index ac088ed..5b99c37 100644
--- a/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
@@ -55,15 +55,7 @@ module Hbase
end
end
- define_test "add_peer: fail when both CLUSTER_KEY and ENDPOINT_CLASSNAME are specified" do
- assert_raise(ArgumentError) do
- args = { CLUSTER_KEY => 'zk1,zk2,zk3:2182:/hbase-prod',
- ENDPOINT_CLASSNAME => 'org.apache.hadoop.hbase.MyReplicationEndpoint' }
- replication_admin.add_peer(@peer_id, args)
- end
- end
-
- define_test "add_peer: args must be a string or number" do
+ define_test "add_peer: args must be a hash" do
assert_raise(ArgumentError) do
replication_admin.add_peer(@peer_id, 1)
end
@@ -144,15 +136,19 @@ module Hbase
define_test "add_peer: multiple zk cluster key and table_cfs - peer config" do
cluster_key = "zk4,zk5,zk6:11000:/hbase-test"
table_cfs = { "table1" => [], "table2" => ["cf1"], "table3" => ["cf1", "cf2"] }
- table_cfs_str = "table1;table2:cf1;table3:cf1,cf2"
+ #table_cfs_str = "default.table1;default.table3:cf1,cf2;default.table2:cf1"
args = { CLUSTER_KEY => cluster_key, TABLE_CFS => table_cfs }
replication_admin.add_peer(@peer_id, args)
- assert_equal(1, replication_admin.list_peers.length)
- assert(replication_admin.list_peers.key?(@peer_id))
- assert_equal(cluster_key, replication_admin.list_peers.fetch(@peer_id))
- assert_equal(table_cfs_str, replication_admin.show_peer_tableCFs(@peer_id))
+ assert_equal(1, command(:list_peers).length)
+ assert(command(:list_peers).key?(@peer_id))
+ assert_equal(cluster_key, command(:list_peers).fetch(@peer_id).get_cluster_key)
+
+ # Note: below assertion is dependent on the sort order of an unordered
+ # map and hence flaky depending on JVM
+ # Commenting out until HBASE-16274 is worked.
+ # assert_equal(table_cfs_str, command(:show_peer_tableCFs, @peer_id))
# cleanup for future tests
replication_admin.remove_peer(@peer_id)
@@ -179,11 +175,14 @@ module Hbase
end
define_test "get_peer_config: works with replicationendpointimpl peer and config params" do
- repl_impl = "org.apache.hadoop.hbase.replication.ReplicationEndpointForTest"
+ cluster_key = 'localhost:2181:/hbase-test'
+ repl_impl = 'org.apache.hadoop.hbase.replication.ReplicationEndpointForTest'
config_params = { "config1" => "value1", "config2" => "value2" }
- args = { ENDPOINT_CLASSNAME => repl_impl, CONFIG => config_params}
- replication_admin.add_peer(@peer_id, args)
- peer_config = replication_admin.get_peer_config(@peer_id)
+ args = { CLUSTER_KEY => cluster_key, ENDPOINT_CLASSNAME => repl_impl,
+ CONFIG => config_params }
+ command(:add_peer, @peer_id, args)
+ peer_config = command(:get_peer_config, @peer_id)
+ assert_equal(cluster_key, peer_config.get_cluster_key)
assert_equal(repl_impl, peer_config.get_replication_endpoint_impl)
assert_equal(2, peer_config.get_configuration.size)
assert_equal("value1", peer_config.get_configuration.get("config1"))