Wei-Chiu Chuang created HDDS-15420:
--------------------------------------
Summary: Update Ozone command help menu
Key: HDDS-15420
URL: https://issues.apache.org/jira/browse/HDDS-15420
Project: Apache Ozone
Issue Type: Sub-task
Affects Versions: 2.1.1
Reporter: Wei-Chiu Chuang
The Ozone command help menu is outdated, and can use some help.
{noformat}
$ /opt/ozone/bin/ozone
Usage: ozone [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS] OPTIONS is none or any
of:--buildpaths attempt to add class files from build tree
--config dir Ozone config directory
--daemon (start|status|stop) operate on a daemon
--debug turn on shell script debug mode
--help usage information
--hostnames list[,of,host,names] hosts to use in worker mode
--hosts filename list of hosts to use in worker mode
--jvmargs arguments append JVM options to any existing options
defined in the OZONE_OPTS environment variable. Any defined in
OZONE_CLIENT_OPTS will be append after these
jvmargs
--loglevel level set the log4j level for this command
--validate (continue) validates if all jars as indicated in the
corresponding OZONE_RUN_ARTIFACT_NAME classpath file are present, command
execution shall continue post validation
failure if 'continue' is passed
--workers turn on worker mode SUBCOMMAND is one of:
Admin Commands:daemonlog get/set the log level for each daemon Client
Commands:admin Ozone admin tool
classpath prints the class path needed for running ozone commands
completion generate autocompletion script for bash/zsh
debug Ozone debug tool
dtutil operations related to delegation tokens
envvars display computed Hadoop environment variables
freon runs an ozone data generator
fs run a filesystem command on Ozone file system. Equivalent to
'hadoop fs'
genconf generate minimally required ozone configs and output to
ozone-site.xml in specified path
getconf get ozone config values from configuration
insight tool to get runtime operation information
ratis Ozone ratis tool
repair Ozone repair tool
s3 command line interface for s3 related operations
sh command line interface for object store operations
tenant command line interface for multi-tenant related operations
version print the version Daemon Commands:csi run the
standalone CSI daemon
datanode run a HDDS datanode
httpfs run the HTTPFS compatible REST gateway
om Ozone Manager
recon run the Recon service
s3g run the S3 compatible REST gateway
scm run the Storage Container Manager serviceSUBCOMMAND may print help
when invoked w/o parameters or with -h. {noformat}
Here's the suggested change:
{noformat}
Based on a deep-dive review of the Apache Ozone shell entrypoint script (
ozone ), its helper library ( ozone-functions.sh ), and the Java auto-
completion
generation tools ( AutoCompletion.java ), here is the comprehensive analysis
of incorrect, missing, confusing, and outdated items in the provided help
message.
──────
### 1. Missing Subcommands
There are two fully implemented and supported Client Commands in the ozone
script that are completely missing from the help message:
• interactive : An interactive shell for Ozone commands.
• Registration in code: ozone_add_subcommand "interactive" client
"interactive shell for ozone commands"
• vapor : An Ozone server simulator (often used for benchmarks and
high-throughput generator simulation).
• Registration in code: ozone_add_subcommand "vapor" client "Ozone
server simulator"
──────
### 2. Missing Aliases & Undocumented Deprecated Commands
• shell (Alias): In the entrypoint script, the command shell is accepted
as an alias/synonym for sh (refer to sh | shell) inside the subcommand
case handler). It is fully supported but undocumented in the help list.
• auditparser (Deprecated): This legacy command is deprecated and no longer
documented. If executed, it outputs a warning and automatically redirects
to ozone debug auditparser :
warning: 'ozone auditparser' is deprecated, use 'ozone debug auditparser'
instead.
• checknative (Deprecated): Similar to auditparser , this is a legacy
command that is accepted with a deprecation warning and automatically rerouted
to ozone debug checknative :
warning: 'ozone checknative' is deprecated, use 'ozone debug checknative'
instead.
──────
### 3. Typographical and Grammatical Errors
• --jvmargs Option Typo:
• Help Text: "...Any defined in OZONE_CLIENT_OPTS will be append after
these jvmargs"
• Fix: Change append to appended (e.g., "...will be appended after
these jvmargs" ).
• --validate (continue) Option Clutter:
• Help Text: "...as indicated in the corresponding
OZONE_RUN_ARTIFACT_NAME classpath file..."
• Fix: Reference to the internal developer variable
OZONE_RUN_ARTIFACT_NAME is leaky and confusing for normal users. It should be
simplified to
describe that it validates the classpath jars.
──────
### 4. ⚠️ Developer Code Bug (Discovered in AutoCompletion.java )
There is a major description discrepancy inside the Java class
AutoCompletion.java which is used to generate the bash/zsh shell
auto-completion
scripts.
In
/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/utils/AutoCompletion.java
(lines 141–143):
@Option(names = {"--daemon"},
description = "attempt to add class files from build tree")
private String daemon;
• The Bug: The description for the --daemon option was accidentally
copy-pasted from the --buildpaths option ( "attempt to add class files from
build tree" ).
• The Correct Behavior: It should be "operate on a daemon" (accepting
start|status|stop ). As a result, the auto-completion scripts generated via
ozone completion will provide incorrect helper text for --daemon .
──────
### 5. Confusing / Outdated Design
• --validate (continue) Syntax:
• The help message formats this as --validate (continue) . The
parenthesis notation is ambiguous. It's not clear to an end-user whether they
should type --validate continue or --validate (continue) literally.
• A clearer representation would be --validate [continue] .
• csi Daemon Command:
• The csi (Container Storage Interface) daemon command is still listed
under Daemon Commands. In recent Kubernetes and container orchestration
setups, Ozone integrates through modern standard CSI plugins, making this
standalone CSI daemon command mostly legacy or obsolete for most
production deployments.
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]