[ 
https://issues.apache.org/jira/browse/HBASE-16576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15475433#comment-15475433
 ] 

Enis Soztutar commented on HBASE-16576:
---------------------------------------

Makes sense. Here is the code that does this: 
ReplicationPeerZKImpl.getPeerConf(). We split the clusterKey into 3 pieces, and 
manually set the zk quorum and root znode in the cloned configuration for the 
peer. Then we do a compound configuration from the base one + 
ReplicationPeerConfig.getConfiguration() entries. This was designed to be the 
way to pass custom configuration (like hbase-site.xml properties) per peer. For 
example, you can have different rpc timeouts, retries etc per peer if you 
manually set it in the peer config. 

> Shell add_peer doesn't allow setting cluster_key for custom endpoints
> ---------------------------------------------------------------------
>
>                 Key: HBASE-16576
>                 URL: https://issues.apache.org/jira/browse/HBASE-16576
>             Project: HBase
>          Issue Type: Bug
>          Components: shell
>    Affects Versions: 2.0.0, 1.1.5, 0.98.22
>            Reporter: Geoffrey Jacoby
>            Assignee: Geoffrey Jacoby
>         Attachments: HBASE-16576.patch, HBASE-16576.v1.patch
>
>
> The HBase shell allows a user to create a replication peer using the add_peer 
> method, which can take a peer id and a Ruby hash. It creates a 
> ReplicationPeerConfig and passes it through to the Java 
> ReplicationAdmin#addPeer. 
> The Ruby code makes an assumption that the Java API doesn't: that CLUSTER_KEY 
> and ENDPOINT_CLASSNAME are mutually exclusive. If both are specified, it 
> throws an error. If only ENDPOINT_CLASSNAME is set, the add_peer logic 
> derives a local dummy cluster key based on the local cluster's configuration. 
> CLUSTER_KEY shouldn't be required when an ENDPOINT_CLASSNAME is specified, 
> because a custom endpoint might not need it. The dummy default logic is fine. 
>  
> But if an endpoint does require a remote cluster key, it shouldn't be 
> forbidden to provide one, especially since the Java API permits it, and even 
> the custom replication endpoint Java tests rely on this. (See 
> TestReplicationEndpoint#testCustomReplicationEndpoint)
>   



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to