You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by GitBox <gi...@apache.org> on 2019/09/29 15:21:57 UTC

[GitHub] [qpid-dispatch] nicob87 opened a new pull request #575: optparse to argparse migration

nicob87 opened a new pull request #575: optparse to argparse migration
URL: https://github.com/apache/qpid-dispatch/pull/575
 
 
   Main reason to migrate from optparse to argparse is python documentation itself.
   - from: https://docs.python.org/2/library/optparse.html
     Deprecated since version 2.7: The optparse module is deprecated and will not be developed further; development will continue with the argparse module.
   - from: https://docs.python.org/2/library/argparse.html
   The argparse module improves on the standard library optparse module in a number of ways including:
       Handling positional arguments.
       Supporting sub-commands.
       Allowing alternative option prefixes like + and /.
       Handling zero-or-more and one-or-more style arguments.
       Producing more informative usage messages.
       Providing a much simpler interface for custom type and action.
   
   Regarding to the migration job done in this pr:
   - optarse library is removed from the source, all library argument parsing is now done with argparse.
   - version argument is now handled by argparse, that supports special version argument.
   - qdstat arguments: fully handled by argparse library.
   - qdmanage arguments: all optparse arguments are now migrated to argparse.
       - positional argument parsing (operation) remains "unmodified", in the future it may be changed so argparse also parsing positional arguments.
   - incompatible arguments (like -r, --all-routers) or (-c --all-entities) are now handled by the special "mutually_exclusive_group".
   - Help message is also handled by argparse.
   - Usage message is also handled by argparse.
   - some unittests created to test specifically the parsing.
       - some more could be added.
   - some unittests added to the "main" method in command.py module.
   - help messages could be customized, right now they are being printed with the default argparse format.
   qdstat_help:
   ```
   usage: qdstat [-h] [-b URL] [-t SECS] [--ssl-certificate CERT] [--ssl-key KEY]
                 [--ssl-trustfile TRUSTED-CA-DB] [--ssl-password PASSWORD]
                 [--ssl-password-file SSL-PASSWORD-FILE]
                 [--sasl-mechanisms SASL-MECHANISMS]
                 [--sasl-username SASL-USERNAME] [--sasl-password SASL-PASSWORD]
                 [--sasl-password-file SASL-PASSWORD-FILE]
                 [--ssl-disable-peer-name-verify] [--version] [-v]
                 [-g | -c | -l | -n | -e | -a | -m | --autolinks | --linkroutes | --log | --all-entities]
                 [--all-routers | -r ROUTER-ID] [--limit LIMIT]
   
   optional arguments:
     -h, --help            show this help message and exit
     --version             show program's version number and exit
     -v, --verbose         Show maximum detail
     --limit LIMIT         Limit number of output rows
   
   Connection:
     Connection Options
   
     -b URL, --bus URL     URL of the messaging bus to connect to default 0.0.0.0
     -t SECS, --timeout SECS
                           Maximum time to wait for connection in seconds default
                           5
     --ssl-certificate CERT
                           Client SSL certificate (PEM Format)
     --ssl-key KEY         Client SSL private key (PEM Format)
     --ssl-trustfile TRUSTED-CA-DB
                           Trusted Certificate Authority Database file (PEM
                           Format)
     --ssl-password PASSWORD
                           Certificate password, will be prompted if not
                           specifed.
     --ssl-password-file SSL-PASSWORD-FILE
                           Certificate password, will be prompted if not
                           specifed.
     --sasl-mechanisms SASL-MECHANISMS
                           Allowed sasl mechanisms to be supplied during the sasl
                           handshake.
     --sasl-username SASL-USERNAME
                           User name for SASL plain authentication
     --sasl-password SASL-PASSWORD
                           Password for SASL plain authentication
     --sasl-password-file SASL-PASSWORD-FILE
                           Password for SASL plain authentication
     --ssl-disable-peer-name-verify
                           Disables SSL peer name verification. WARNING - This
                           option is insecure and must not be used in production
                           environments
   
   Display:
     Choose what kind of information you want to be displayed
   
     -g, --general         Show General Router Stats
     -c, --connections     Show Connections
     -l, --links           Show Router Links
     -n, --nodes           Show Router Nodes
     -e, --edge            Show edge connections
     -a, --address         Show Router Addresses
     -m, --memory          Show Router Memory Stats
     --autolinks           Show Auto Links
     --linkroutes          Show Link Routes
     --log                 Show recent log entries
     --all-entities        Show all router entities. Can be combined with --all-
                           routers option
   
   Target:
     Choose destination router to required, default the one you connect to.
   
     --all-routers         Show entities for all routers in network. Can also be
                           used in combination with other options
     -r ROUTER-ID, --router ROUTER-ID
                           Router to be queried
   ```
   
   
   qdmanage help:
   ```
   usage: qdmanage [-h] [-b URL] [-t SECS] [--ssl-certificate CERT]
                   [--ssl-key KEY] [--ssl-trustfile TRUSTED-CA-DB]
                   [--ssl-password PASSWORD]
                   [--ssl-password-file SSL-PASSWORD-FILE]
                   [--sasl-mechanisms SASL-MECHANISMS]
                   [--sasl-username SASL-USERNAME]
                   [--sasl-password SASL-PASSWORD]
                   [--sasl-password-file SASL-PASSWORD-FILE]
                   [--ssl-disable-peer-name-verify] [--version] [-v]
                   [-r ROUTER-ID] [--type TYPE] [--name NAME] [--identity ID]
                   [--indent INDENT] [--stdin] [--body BODY]
                   [--properties PROPERTIES]
   
   optional arguments:
     -h, --help            show this help message and exit
     --version             show program's version number and exit
     -v, --verbose         Show maximum detail
     -r ROUTER-ID, --router ROUTER-ID
                           Router to be queried
     --type TYPE           Type of entity to operate on.
     --name NAME           Name of entity to operate on.
     --identity ID         Identity of entity to operate on.
     --indent INDENT       Pretty-printing indent. -1 means don't pretty-print
                           (default 2)
     --stdin               Read attributes as JSON map or list of maps from
                           stdin.
     --body BODY           JSON value to use as body of a non-standard operation
                           call.
     --properties PROPERTIES
                           JSON map to use as properties for a non-standard
                           operation call.
   
   Connection:
     Connection Options
   
     -b URL, --bus URL     URL of the messaging bus to connect to default 0.0.0.0
     -t SECS, --timeout SECS
                           Maximum time to wait for connection in seconds default
                           5
     --ssl-certificate CERT
                           Client SSL certificate (PEM Format)
     --ssl-key KEY         Client SSL private key (PEM Format)
     --ssl-trustfile TRUSTED-CA-DB
                           Trusted Certificate Authority Database file (PEM
                           Format)
     --ssl-password PASSWORD
                           Certificate password, will be prompted if not
                           specifed.
     --ssl-password-file SSL-PASSWORD-FILE
                           Certificate password, will be prompted if not
                           specifed.
     --sasl-mechanisms SASL-MECHANISMS
                           Allowed sasl mechanisms to be supplied during the sasl
                           handshake.
     --sasl-username SASL-USERNAME
                           User name for SASL plain authentication
     --sasl-password SASL-PASSWORD
                           Password for SASL plain authentication
     --sasl-password-file SASL-PASSWORD-FILE
                           Password for SASL plain authentication
     --ssl-disable-peer-name-verify
                           Disables SSL peer name verification. WARNING - This
                           option is insecure and must not be used in production
                           environments
   
   Operation:
     Standard operations: QUERY, CREATE, READ, UPDATE, DELETE, GET-TYPES, GET-
     OPERATIONS, GET-ATTRIBUTES, GET-ANNOTATIONS, GET-MGMT-NODES, GET-SCHEMA,
     GET-LOG. Use GET-OPERATIONS to find additional operations.
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org