You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Mihir Monani (Jira)" <ji...@apache.org> on 2020/01/06 06:28:00 UTC

[jira] [Comment Edited] (HBASE-23640) Move HBaseClusterManager.CommandProvider and it's different implementations as seperate class/interface

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

Mihir Monani edited comment on HBASE-23640 at 1/6/20 6:27 AM:
--------------------------------------------------------------

Hi [~ndimiduk] 

In our test clusters, we are trying to create framework where we can avoid setup of passwordless-ssh for destructive actions of Chaos Monkey. For this purpose, we are planning to use Zookeeper to create task which will be executed by our framework as local action like kill, restart etc. (Like RESTApiClusterManager class which is merged into hbase-it code and it is not InterfaceAudience.Private )

HBaseClusterManager is InterfaceAudience.Private class and CommandProvider is internal class of HBaseClusterManager. Because of that, we can't extend HBaseClusterManager directly in our test framework and we have to bundle our own ClusterManager in hbase-it package. 

To avoid this, i wanted to make it public (and separate out code for CommandProvider also) so we don't have to merge our Custom implementation of HBaseClusterManager into hbase-it code.

Does this seems like a good approach to you? Purpose here is to make hbase-testing-util extendable.

FYI [HBASE-23639|https://issues.apache.org/jira/browse/HBASE-23639] is first step in this exercise to make hbase-testing-util extendable.


was (Author: mihir6692):
Hi [~ndimiduk] 

In our test clusters, we are trying to create framework where we can avoid setup of passwordless-ssh for destructive actions of Chaos Monkey. For this purpose, we are planning to use Zookeeper to create task which will be executed by our framework as local action like kill, restart etc. (Like RESTApiClusterManager class which is merged into hbase-it code and it is not InterfaceAudience.Private )

HBaseClusterManager is InterfaceAudience.Private class and CommandProvider is internal class of HBaseClusterManager. Because of that, we can't extend HBaseClusterManager directly in our test framework and we have to bundle our own ClusterManager in hbase-it package. 

To avoid this, i wanted to make it public (and separate out code for CommandProvider also) so we don't have to merge our Custom implementation of HBaseClusterManager into hbase-it code.

Does this seems like a good approach to you? Purpose here is to make hbase-testing-util extendable.

> Move HBaseClusterManager.CommandProvider and it's different implementations as seperate class/interface
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-23640
>                 URL: https://issues.apache.org/jira/browse/HBASE-23640
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Mihir Monani
>            Assignee: Mihir Monani
>            Priority: Major
>
> HBaseClusterManager.CommandProvider and it's implementations are private to HBaseClusterManager and hbase-it package. 
> If any one wants to do custom implementations of ClusterManager Interface, they cant's use this code as it is not visible outside the hbase-it package. 
> This Jira is also dependents on [HBASE-23639|https://issues.apache.org/jira/browse/HBASE-23639]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)