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

Brad Schoening edited comment on CASSANDRA-18661 at 12/20/23 5:10 AM:
----------------------------------------------------------------------

[~claude] I initiated a [discussion of this on the ML in 
July|https://mail.google.com/mail/u/0/#search/cassandra-stress/CllgCJlHnMbMzxtWxqMpbSKpdNcCJdJXmMxMfzrxgRfzHZzCcvMgWjQRLpsHCNRmSGgfZtwtXmL]
 which received essentially no comments, but it did lead to us updating the 
Apache Commons CLI library in use in the other tools from 1.1 to 1.5.0 in 
CASSANDRA-18659 and removing the legacy option in CASSANDRA-18529. 

Meaningfully using Apache Commons CLI would require reworking the command line 
arguments for cassandra-stress to align with the other command line tools.  It 
does look complex, perhaps too complex, and I was hoping for someone with 
expertise in Apache Commons CLI to weigh in. At the same time, the complexity 
of the existing command line args makes cassandra-stress hard to use for new 
users to users (esp. with authentication buried in -mode from back when there 
was both thrift and cql) and hard for contributors.


was (Author: bschoeni):
[~claude] I initiated a [discussion of this on the ML in 
July|https://mail.google.com/mail/u/0/#search/cassandra-stress/CllgCJlHnMbMzxtWxqMpbSKpdNcCJdJXmMxMfzrxgRfzHZzCcvMgWjQRLpsHCNRmSGgfZtwtXmL]
 which received essentially no comments, but it did lead to us updating the 
Apache Commons CLI library in use in the other tools from 1.1 to 1.5.0 in 
CASSANDRA-18659 |https://issues.apache.org/jira/browse/CASSANDRA-18659] and 
removing the legacy option in CASSANDRA-18529. 

Meaningfully using Apache Commons CLI would require reworking the command line 
arguments for cassandra-stress to align with the other command line tools.  It 
does look complex, perhaps too complex, and I was hoping for someone with 
expertise in Apache Commons CLI to weigh in. At the same time, the complexity 
of the existing command line args makes cassandra-stress hard to use for new 
users to users (esp. with authentication buried in -mode from back when there 
was both thrift and cql) and hard for contributors.

> Update cassandra-stress to use Apache Commons CLI
> -------------------------------------------------
>
>                 Key: CASSANDRA-18661
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18661
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tool/stress
>            Reporter: Brad Schoening
>            Assignee: Claude Warren
>            Priority: Normal
>              Labels: lhf
>
> The Apache Commons CLI library provides an API for parsing command line 
> options with the package org.apache.commons.cli and this is already used by a 
> dozen of existing Cassandra utilities including:
> {quote}SSTableMetadataViewer, StandaloneScrubber, StandaloneSplitter, 
> SSTableExport, BulkLoader, and others.
> {quote}
> However, cassandra-stress is an outlier which uses its own custom classes to 
> parse command line options with classes such as OptionsSimple.  In addition, 
> the options syntax for username, password, and others are not aligned with 
> the format used by CQLSH.
> Currently, there are > 5K lines of code in 'settings' which appears to just 
> process command line args.
> This suggestion is to:
>  
> a) Upgrade cassandra-stress to use Apache Commons CLI (no new dependencies 
> are required as this library is already used by the project)
>  
> b) Align the cassandra-stress CLI options with those in CQLSH, 
>  
> {quote}For example, using the new syntax like CQLSH:
> {quote}
>  
> cassandra-stress -username foo -password bar
> {quote}and replacing the old syntax:
> {quote}
> cassandra-stress -mode username=foo and password=bar
>  
> This will simplify and unify the code base, eliminate code and reduce the 
> confusion between similar named classes such as 
> org.apache.cassandra.stress.settings.\{Option, OptionsMulti, OptionsSimple} 
> and org.apache.commons.cli.{Option, OptionGroup, Options)
>  
> Note: documentation will need to be updated as well



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to