From d7b09bd097265691b60608f6cf32fd4f4ea3bc65 Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Wed, 22 Aug 2012 23:42:26 -0500 Subject: [PATCH] Change '_' to '-' in options This changes every command-line option with a '_' in its name and changes them to '-'. The old option names are maintained for backward compatibility but are no longer in the help text. BP command-options Change-Id: If926bb3b8fa85d628aea197496cf976f71bcdd08 --- README.rst | 54 +++++++-------- cinderclient/shell.py | 84 +++++++++++++++-------- cinderclient/v1/shell.py | 141 ++++++++++++++++++++++++++------------- doc/source/shell.rst | 4 +- 4 files changed, 179 insertions(+), 104 deletions(-) diff --git a/README.rst b/README.rst index ede24bc70..8ad1fabe2 100644 --- a/README.rst +++ b/README.rst @@ -40,14 +40,14 @@ Installing this package gets you a shell command, ``cinder``, that you can use to interact with any Rackspace compatible API (including OpenStack). You'll need to provide your OpenStack username and password. You can do this -with the ``--os_username``, ``--os_password`` and ``--os_tenant_name`` +with the ``--os-username``, ``--os-password`` and ``--os-tenant-name`` params, but it's easier to just set them as environment variables:: export OS_USERNAME=openstack export OS_PASSWORD=yadayada export OS_TENANT_NAME=myproject -You will also need to define the authentication url with ``--os_auth_url`` +You will also need to define the authentication url with ``--os-auth-url`` and the version of the API with ``--version``. Or set them as an environment variables as well:: @@ -60,20 +60,21 @@ endpoint:: export OS_AUTH_URL=http://example.com:5000/v2.0/ Since Keystone can return multiple regions in the Service Catalog, you -can specify the one you want with ``--os_region_name`` (or +can specify the one you want with ``--os-region-name`` (or ``export OS_REGION_NAME``). It defaults to the first in the list returned. You'll find complete documentation on the shell by running ``cinder help``:: - usage: cinder [--debug] [--os_username OS_USERNAME] [--os_password OS_PASSWORD] - [--os_tenant_name OS_TENANT_NAME] [--os_auth_url OS_AUTH_URL] - [--os_region_name OS_REGION_NAME] [--service_type SERVICE_TYPE] - [--service_name SERVICE_NAME] [--endpoint_type ENDPOINT_TYPE] - [--version VERSION] [--username USERNAME] - [--region_name REGION_NAME] [--apikey APIKEY] - [--projectid PROJECTID] [--url URL] - ... + usage: cinder [--debug] [--os-username ] + [--os-password ] + [--os-tenant-name ] [--os-auth-url ] + [--os-region-name ] [--service-type ] + [--service-name ] + [--volume-service-name ] + [--endpoint-type ] + [--os-volume-api-version ] + ... Command-line interface to the OpenStack Nova API. @@ -100,33 +101,26 @@ You'll find complete documentation on the shell by running Optional arguments: --debug Print debugging output - --os_username OS_USERNAME + --os-username Defaults to env[OS_USERNAME]. - --os_password OS_PASSWORD + --os-password Defaults to env[OS_PASSWORD]. - --os_tenant_name OS_TENANT_NAME + --os-tenant-name Defaults to env[OS_TENANT_NAME]. - --os_auth_url OS_AUTH_URL + --os-auth-url Defaults to env[OS_AUTH_URL]. - --os_region_name OS_REGION_NAME + --os-region-name Defaults to env[OS_REGION_NAME]. - --service_type SERVICE_TYPE + --service-type Defaults to compute for most actions - --service_name SERVICE_NAME + --service-name Defaults to env[CINDER_SERVICE_NAME] - --endpoint_type ENDPOINT_TYPE + --volume-service-name + Defaults to env[CINDER_VOLUME_SERVICE_NAME] + --endpoint-type Defaults to env[CINDER_ENDPOINT_TYPE] or publicURL. - --os_compute_api_version VERSION - Accepts 1.1, defaults to env[OS_COMPUTE_API_VERSION]. - --username USERNAME Deprecated - --region_name REGION_NAME - Deprecated - --apikey APIKEY, --password APIKEY - Deprecated - --projectid PROJECTID, --tenant_name PROJECTID - Deprecated - --url URL, --auth_url URL - Deprecated + --os-volume-api-version + Accepts 1, defaults to env[OS_VOLUME_API_VERSION]. See "cinder help COMMAND" for help on a specific command. diff --git a/cinderclient/shell.py b/cinderclient/shell.py index cf9d92b9c..0dfec5bcf 100644 --- a/cinderclient/shell.py +++ b/cinderclient/shell.py @@ -85,53 +85,83 @@ class OpenStackCinderShell(object): action='store_true', help="Print debugging output") - parser.add_argument('--os_username', + parser.add_argument('--os-username', + metavar='', default=utils.env('OS_USERNAME', 'CINDER_USERNAME'), help='Defaults to env[OS_USERNAME].') + parser.add_argument('--os_username', + help=argparse.SUPPRESS) - parser.add_argument('--os_password', + parser.add_argument('--os-password', + metavar='', default=utils.env('OS_PASSWORD', 'CINDER_PASSWORD'), help='Defaults to env[OS_PASSWORD].') + parser.add_argument('--os_password', + help=argparse.SUPPRESS) - parser.add_argument('--os_tenant_name', + parser.add_argument('--os-tenant-name', + metavar='', default=utils.env('OS_TENANT_NAME', 'CINDER_PROJECT_ID'), help='Defaults to env[OS_TENANT_NAME].') + parser.add_argument('--os_tenant_name', + help=argparse.SUPPRESS) - parser.add_argument('--os_auth_url', + parser.add_argument('--os-auth-url', + metavar='', default=utils.env('OS_AUTH_URL', 'CINDER_URL'), help='Defaults to env[OS_AUTH_URL].') + parser.add_argument('--os_auth_url', + help=argparse.SUPPRESS) - parser.add_argument('--os_region_name', + parser.add_argument('--os-region-name', + metavar='', default=utils.env('OS_REGION_NAME', 'CINDER_REGION_NAME'), help='Defaults to env[OS_REGION_NAME].') + parser.add_argument('--os_region_name', + help=argparse.SUPPRESS) - parser.add_argument('--service_type', + parser.add_argument('--service-type', + metavar='', help='Defaults to compute for most actions') + parser.add_argument('--service_type', + help=argparse.SUPPRESS) - parser.add_argument('--service_name', + parser.add_argument('--service-name', + metavar='', default=utils.env('CINDER_SERVICE_NAME'), help='Defaults to env[CINDER_SERVICE_NAME]') + parser.add_argument('--service_name', + help=argparse.SUPPRESS) - parser.add_argument('--volume_service_name', + parser.add_argument('--volume-service-name', + metavar='', default=utils.env('CINDER_VOLUME_SERVICE_NAME'), help='Defaults to env[CINDER_VOLUME_SERVICE_NAME]') + parser.add_argument('--volume_service_name', + help=argparse.SUPPRESS) - parser.add_argument('--endpoint_type', + parser.add_argument('--endpoint-type', + metavar='', default=utils.env('CINDER_ENDPOINT_TYPE', default=DEFAULT_CINDER_ENDPOINT_TYPE), help='Defaults to env[CINDER_ENDPOINT_TYPE] or ' + DEFAULT_CINDER_ENDPOINT_TYPE + '.') + parser.add_argument('--endpoint_type', + help=argparse.SUPPRESS) - parser.add_argument('--os_volume_api_version', + parser.add_argument('--os-volume-api-version', + metavar='', default=utils.env('OS_VOLUME_API_VERSION', default=DEFAULT_OS_VOLUME_API_VERSION), help='Accepts 1,defaults ' 'to env[OS_VOLUME_API_VERSION].') + parser.add_argument('--os_volume_api_version', + help=argparse.SUPPRESS) parser.add_argument('--insecure', default=utils.env('CINDERCLIENT_INSECURE', @@ -142,28 +172,28 @@ class OpenStackCinderShell(object): # FIXME(dtroyer): The args below are here for diablo compatibility, # remove them in folsum cycle - # alias for --os_username, left in for backwards compatibility + # alias for --os-username, left in for backwards compatibility parser.add_argument('--username', - help='Deprecated') + help=argparse.SUPPRESS) - # alias for --os_region_name, left in for backwards compatibility + # alias for --os-region_name, left in for backwards compatibility parser.add_argument('--region_name', - help='Deprecated') + help=argparse.SUPPRESS) - # alias for --os_password, left in for backwards compatibility + # alias for --os-password, left in for backwards compatibility parser.add_argument('--apikey', '--password', dest='apikey', default=utils.env('CINDER_API_KEY'), - help='Deprecated') + help=argparse.SUPPRESS) - # alias for --os_tenant_name, left in for backward compatibility + # alias for --os-tenant-name, left in for backward compatibility parser.add_argument('--projectid', '--tenant_name', dest='projectid', default=utils.env('CINDER_PROJECT_ID'), - help='Deprecated') + help=argparse.SUPPRESS) - # alias for --os_auth_url, left in for backward compatibility + # alias for --os-auth-url, left in for backward compatibility parser.add_argument('--url', '--auth_url', dest='url', default=utils.env('CINDER_URL'), - help='Deprecated') + help=argparse.SUPPRESS) return parser @@ -274,7 +304,7 @@ class OpenStackCinderShell(object): httplib2.debuglevel = 1 def main(self, argv): - # Parse args once to find version + # Parse args once to find version and debug settings parser = self.get_base_parser() (options, args) = parser.parse_known_args(argv) self.setup_debugging(options.debug) @@ -330,14 +360,14 @@ class OpenStackCinderShell(object): if not username: raise exc.CommandError( "You must provide a username " - "via either --os_username or env[OS_USERNAME]") + "via either --os-username or env[OS_USERNAME]") else: os_username = username if not os_password: if not apikey: raise exc.CommandError("You must provide a password " - "via either --os_password or via " + "via either --os-password or via " "env[OS_PASSWORD]") else: os_password = apikey @@ -345,7 +375,7 @@ class OpenStackCinderShell(object): if not os_tenant_name: if not projectid: raise exc.CommandError("You must provide a tenant name " - "via either --os_tenant_name or " + "via either --os-tenant-name or " "env[OS_TENANT_NAME]") else: os_tenant_name = projectid @@ -354,7 +384,7 @@ class OpenStackCinderShell(object): if not url: raise exc.CommandError( "You must provide an auth url " - "via either --os_auth_url or env[OS_AUTH_URL]") + "via either --os-auth-url or env[OS_AUTH_URL]") else: os_auth_url = url @@ -364,12 +394,12 @@ class OpenStackCinderShell(object): if not os_tenant_name: raise exc.CommandError( "You must provide a tenant name " - "via either --os_tenant_name or env[OS_TENANT_NAME]") + "via either --os-tenant-name or env[OS_TENANT_NAME]") if not os_auth_url: raise exc.CommandError( "You must provide an auth url " - "via either --os_auth_url or env[OS_AUTH_URL]") + "via either --os-auth-url or env[OS_AUTH_URL]") self.cs = client.Client(options.os_volume_api_version, os_username, os_password, os_tenant_name, os_auth_url, diff --git a/cinderclient/v1/shell.py b/cinderclient/v1/shell.py index 6dbe1d751..69bed6c48 100644 --- a/cinderclient/v1/shell.py +++ b/cinderclient/v1/shell.py @@ -15,6 +15,7 @@ # License for the specific language governing permissions and limitations # under the License. +import argparse import os import sys import time @@ -101,14 +102,21 @@ def _extract_metadata(arg_list): return metadata -@utils.arg('--all_tenants', - dest='all_tenants', - metavar='<0|1>', - nargs='?', - type=int, - const=1, - default=0, - help='Display information from all tenants (Admin only).') +@utils.arg( + '--all-tenants', + dest='all_tenants', + metavar='<0|1>', + nargs='?', + type=int, + const=1, + default=0, + help='Display information from all tenants (Admin only).') +@utils.arg( + '--all_tenants', + nargs='?', + type=int, + const=1, + help=argparse.SUPPRESS) @utils.service_type('volume') def do_list(cs, args): """List all the volumes.""" @@ -137,33 +145,59 @@ def do_show(cs, args): metavar='', type=int, help='Size of volume in GB') +@utils.arg( + '--snapshot-id', + metavar='', + default=None, + help='Create volume from snapshot id (Optional, Default=None)') @utils.arg( '--snapshot_id', - metavar='', - help='Optional snapshot id to create the volume from. (Default=None)', - default=None) -@utils.arg('--image_id', - metavar='', - help='Optional image id to create the volume from. (Default=None)', - default=None) -@utils.arg('--display_name', metavar='', - help='Optional volume name. (Default=None)', - default=None) -@utils.arg('--display_description', metavar='', - help='Optional volume description. (Default=None)', - default=None) -@utils.arg('--volume_type', - metavar='', - help='Optional volume type. (Default=None)', - default=None) -@utils.arg('--availability_zone', metavar='', - help='Optional availability zone for volume. (Default=None)', - default=None) + help=argparse.SUPPRESS) +@utils.arg( + '--image-id', + metavar='', + default=None, + help='Create volume from image id (Optional, Default=None)') +@utils.arg( + '--image_id', + help=argparse.SUPPRESS) +@utils.arg( + '--display-name', + metavar='', + default=None, + help='Volume name (Optional, Default=None)') +@utils.arg( + '--display_name', + help=argparse.SUPPRESS) +@utils.arg( + '--display-description', + metavar='', + default=None, + help='Volume description (Optional, Default=None)') +@utils.arg( + '--display_description', + help=argparse.SUPPRESS) +@utils.arg( + '--volume-type', + metavar='', + default=None, + help='Volume type (Optional, Default=None)') +@utils.arg( + '--volume_type', + help=argparse.SUPPRESS) +@utils.arg( + '--availability-zone', + metavar='', + default=None, + help='Availability zone for volume (Optional, Default=None)') +@utils.arg( + '--availability_zone', + help=argparse.SUPPRESS) @utils.arg('--metadata', type=str, nargs='*', metavar='', - help='Optional metadata kv pairs. (Default=None)', + help='Metadata key=value pairs (Optional, Default=None)', default=None) @utils.service_type('volume') def do_create(cs, args): @@ -191,14 +225,21 @@ def do_delete(cs, args): volume.delete() -@utils.arg('--all_tenants', - dest='all_tenants', - metavar='<0|1>', - nargs='?', - type=int, - const=1, - default=0, - help='Display information from all tenants (Admin only).') +@utils.arg( + '--all-tenants', + dest='all_tenants', + metavar='<0|1>', + nargs='?', + type=int, + const=1, + default=0, + help='Display information from all tenants (Admin only).') +@utils.arg( + '--all_tenants', + nargs='?', + type=int, + const=1, + help=argparse.SUPPRESS) @utils.service_type('volume') def do_snapshot_list(cs, args): """List all the snapshots.""" @@ -220,7 +261,7 @@ def do_snapshot_show(cs, args): @utils.arg('volume_id', - metavar='', + metavar='', help='ID of the volume to snapshot') @utils.arg('--force', metavar='', @@ -228,12 +269,22 @@ def do_snapshot_show(cs, args): 'to snapshot a volume even if its ' 'attached to an instance. (Default=False)', default=False) -@utils.arg('--display_name', metavar='', - help='Optional snapshot name. (Default=None)', - default=None) -@utils.arg('--display_description', metavar='', - help='Optional snapshot description. (Default=None)', - default=None) +@utils.arg( + '--display-name', + metavar='', + default=None, + help='Optional snapshot name. (Default=None)') +@utils.arg( + '--display_name', + help=argparse.SUPPRESS) +@utils.arg( + '--display-description', + metavar='', + default=None, + help='Optional snapshot description. (Default=None)') +@utils.arg( + '--display_description', + help=argparse.SUPPRESS) @utils.service_type('volume') def do_snapshot_create(cs, args): """Add a new snapshot.""" @@ -244,7 +295,7 @@ def do_snapshot_create(cs, args): @utils.arg('snapshot_id', - metavar='', + metavar='', help='ID of the snapshot to delete.') @utils.service_type('volume') def do_snapshot_delete(cs, args): diff --git a/doc/source/shell.rst b/doc/source/shell.rst index cff5cc73b..9458ceed9 100644 --- a/doc/source/shell.rst +++ b/doc/source/shell.rst @@ -11,8 +11,8 @@ First, you'll need an OpenStack Nova account and an API key. You get this by using the `cinder-manage` command in OpenStack Nova. You'll need to provide :program:`cinder` with your OpenStack username and -API key. You can do this with the :option:`--os_username`, :option:`--os_password` -and :option:`--os_tenant_id` options, but it's easier to just set them as +API key. You can do this with the :option:`--os-username`, :option:`--os-password` +and :option:`--os-tenant-id` options, but it's easier to just set them as environment variables by setting two environment variables: .. envvar:: OS_USERNAME