Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Problem
1. Inconsistencies in our user facing tools.
- options:
start with single/double dash
words separated by dash or underscore or just joined together
someplace use '=' to separate value, other use space (ExportSnapshot vs HashTable)
- Description
Manually formatting options and their descriptions in printUsage()
Inconsistant formatting, sometimes even weird.
Incomplete. Sometimes people forget to add new option to description
2. Manual parsing of options (those huge if-else loops iterating over args)
Solution
Use Apache CLI
- It has various validations for option names which'll fix first set of issues.
- using AbstractHBaseTool's print usage function will ensure consistent formatting (although we loose the power to order the options)
- If we enforce the method of defining options as in patch, it's highly unlikely to forget adding description.
- CLI parses the options for us.
Using Apache CLI when writing new tools is straight forward, but it's not easy when porting exiting tools since some option names are not valid as per CLI's validation.
New method, processOldArgs(), will allow to port these tools in a backward compatible manner.
Attachments
Attachments
Issue Links
- is related to
-
HBASE-17019 Guidelines for naming CLI options of external tools
- Open
- links to