[ 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