[ 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)