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

Mikhail Stepura commented on CASSANDRA-6381:
--------------------------------------------

Command specific comments:
* INFO - prints the token at the end of output. The old implementation prints 
it first. Not sure if it's important
* REBUILD_INDEX - The 3rd argument (comma separated list of indexes) will not 
be split, and will be used as is.
* REMOVETOKEN - will just print a warning and exit. The old implementation 
would call  REMOVENODE after a warning. Not sure if it's important
* REPAIR - I believe {{!startToken.isEmpty() && !endToken.isEmpty()}} condition 
is wrong, and doesn’t match the original {{cmd.hasOption(START_TOKEN_OPT.left) 
|| cmd.hasOption(END_TOKEN_OPT.left)}}.  There should be OR instead of AND
* SETCOMPACTIONTHRESHOLD - the combination of {{minthreshold == maxthreshold == 
0}} is no more valid. Not sure if it’s important
* STATUS - doesn’t contain changes from CASSANDRA-2238 ( 
https://github.com/apache/cassandra/commit/76ee9a155ea14304595bc2e9755accbfded04e62)

Commands missing in the new implementation
* DISABLEHANDOFF
* DISABLETHRIFT
* DRAIN
* TPSTATS
* TRUNCATEHINTS

General comment - all the commands share the same structure of {{run()}} 
method: 
{code:java}
        @Override
        public void run()
        {
            try (NodeProbe probe = connect())
            {
                  <command specific calls>
            } catch (IOException e)
            {
                throw new RuntimeException("Error while closing JMX 
connection", e);
            }
        }
{code}
I believe it can be moved up into the base class ({{NodeToolCmd}}) , so each 
concrete command will just need to implement  an abstract method.

The above is specifically true for the commands sprung from 
{{optionalKSandCFs}} method.

> Refactor nodetool
> -----------------
>
>                 Key: CASSANDRA-6381
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6381
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Yuki Morishita
>            Assignee: Clément Lardeur
>            Priority: Minor
>              Labels: lhf, nodetool
>         Attachments: trunk-6381.patch
>
>
> We have way too many nodetool commands(more than 40) packed in one NodeCmd 
> class. And we are trying to add more commands.
> https://github.com/airlift/airline could be a good fit to take out each 
> command into sub command class.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to