diff --git a/manilaclient/base.py b/manilaclient/base.py index 796cf6c3a..5cc2479e2 100644 --- a/manilaclient/base.py +++ b/manilaclient/base.py @@ -24,6 +24,7 @@ import hashlib import os from manilaclient import exceptions +from manilaclient.openstack.common import cliutils from manilaclient import utils @@ -84,13 +85,13 @@ class Manager(utils.HookableMixin): Delete is not handled because listings are assumed to be performed often enough to keep the cache reasonably up-to-date. """ - base_dir = utils.env('manilaclient_UUID_CACHE_DIR', - default="~/.manilaclient") + base_dir = cliutils.env('manilaclient_UUID_CACHE_DIR', + default="~/.manilaclient") # NOTE(sirp): Keep separate UUID caches for each username + endpoint # pair - username = utils.env('OS_USERNAME', 'MANILA_USERNAME') - url = utils.env('OS_URL', 'MANILA_URL') + username = cliutils.env('OS_USERNAME', 'MANILA_USERNAME') + url = cliutils.env('OS_URL', 'MANILA_URL') uniqifier = hashlib.md5(username.encode('utf-8') + url.encode('utf-8')).hexdigest() diff --git a/manilaclient/shell.py b/manilaclient/shell.py index 2b8664e43..011ebfbbc 100644 --- a/manilaclient/shell.py +++ b/manilaclient/shell.py @@ -38,7 +38,6 @@ from manilaclient import exceptions as exc import manilaclient.extension from manilaclient.openstack.common import cliutils from manilaclient.openstack.common import strutils -from manilaclient import utils from manilaclient.v1 import shell as shell_v1 # from manilaclient.v2 import shell as shell_v2 @@ -195,7 +194,7 @@ class SecretsHelper(object): password = self.args.os_password else: verify_pass = strutils.bool_from_string( - utils.env("OS_VERIFY_PASSWORD", default=False)) + cliutils.env("OS_VERIFY_PASSWORD", default=False)) password = self._prompt_password(verify_pass) if not password: raise exc.CommandError( @@ -276,12 +275,12 @@ class OpenStackManilaShell(object): parser.add_argument('--debug', action='store_true', - default=utils.env('manilaclient_DEBUG', - default=False), + default=cliutils.env('manilaclient_DEBUG', + default=False), help="Print debugging output") parser.add_argument('--os-cache', - default=utils.env('OS_CACHE', default=False), + default=cliutils.env('OS_CACHE', default=False), action='store_true', help='Use the auth token cache. ' 'Defaults to env[OS_CACHE].') @@ -293,48 +292,48 @@ class OpenStackManilaShell(object): parser.add_argument('--os-username', metavar='', - default=utils.env('OS_USERNAME', - 'MANILA_USERNAME'), + default=cliutils.env('OS_USERNAME', + 'MANILA_USERNAME'), help='Defaults to env[OS_USERNAME].') parser.add_argument('--os_username', help=argparse.SUPPRESS) parser.add_argument('--os-password', metavar='', - default=utils.env('OS_PASSWORD', - 'MANILA_PASSWORD'), + default=cliutils.env('OS_PASSWORD', + 'MANILA_PASSWORD'), help='Defaults to env[OS_PASSWORD].') parser.add_argument('--os_password', help=argparse.SUPPRESS) parser.add_argument('--os-tenant-name', metavar='', - default=utils.env('OS_TENANT_NAME', - 'MANILA_PROJECT_ID'), + default=cliutils.env('OS_TENANT_NAME', + 'MANILA_PROJECT_ID'), help='Defaults to env[OS_TENANT_NAME].') parser.add_argument('--os_tenant_name', help=argparse.SUPPRESS) parser.add_argument('--os-tenant-id', metavar='', - default=utils.env('OS_TENANT_ID', - 'MANILA_TENANT_ID'), + default=cliutils.env('OS_TENANT_ID', + 'MANILA_TENANT_ID'), help='Defaults to env[OS_TENANT_ID].') parser.add_argument('--os_tenant_id', help=argparse.SUPPRESS) parser.add_argument('--os-auth-url', metavar='', - default=utils.env('OS_AUTH_URL', - 'MANILA_URL'), + default=cliutils.env('OS_AUTH_URL', + 'MANILA_URL'), help='Defaults to env[OS_AUTH_URL].') parser.add_argument('--os_auth_url', help=argparse.SUPPRESS) parser.add_argument('--os-region-name', metavar='', - default=utils.env('OS_REGION_NAME', - 'MANILA_REGION_NAME'), + default=cliutils.env('OS_REGION_NAME', + 'MANILA_REGION_NAME'), help='Defaults to env[OS_REGION_NAME].') parser.add_argument('--os_region_name', help=argparse.SUPPRESS) @@ -347,21 +346,21 @@ class OpenStackManilaShell(object): parser.add_argument('--service-name', metavar='', - default=utils.env('MANILA_SERVICE_NAME'), + default=cliutils.env('MANILA_SERVICE_NAME'), help='Defaults to env[MANILA_SERVICE_NAME]') parser.add_argument('--service_name', help=argparse.SUPPRESS) parser.add_argument('--share-service-name', metavar='', - default=utils.env('MANILA_share_service_name'), + default=cliutils.env('MANILA_share_service_name'), help='Defaults to env[MANILA_share_service_name]') parser.add_argument('--share_service_name', help=argparse.SUPPRESS) parser.add_argument('--endpoint-type', metavar='', - default=utils.env( + default=cliutils.env( 'MANILA_ENDPOINT_TYPE', default=DEFAULT_MANILA_ENDPOINT_TYPE), help='Defaults to env[MANILA_ENDPOINT_TYPE] or ' @@ -371,7 +370,7 @@ class OpenStackManilaShell(object): parser.add_argument('--os-share-api-version', metavar='', - default=utils.env( + default=cliutils.env( 'OS_SHARE_API_VERSION', default=DEFAULT_OS_SHARE_API_VERSION), help='Accepts 1 or 2,defaults ' @@ -381,14 +380,14 @@ class OpenStackManilaShell(object): parser.add_argument('--os-cacert', metavar='', - default=utils.env('OS_CACERT', default=None), + default=cliutils.env('OS_CACERT', default=None), help='Specify a CA bundle file to use in ' 'verifying a TLS (https) server certificate. ' 'Defaults to env[OS_CACERT]') parser.add_argument('--insecure', - default=utils.env('manilaclient_INSECURE', - default=False), + default=cliutils.env('manilaclient_INSECURE', + default=False), action='store_true', help=argparse.SUPPRESS) @@ -637,8 +636,8 @@ class OpenStackManilaShell(object): commands.remove('bash_completion') print(' '.join(commands | options)) - @utils.arg('command', metavar='', nargs='?', - help='Display help for ') + @cliutils.arg('command', metavar='', nargs='?', + help='Display help for ') def do_help(self, args): """Display help about this program or one of its subcommands.""" if args.command: diff --git a/manilaclient/utils.py b/manilaclient/utils.py index 6471d6d8c..b7f1e5921 100644 --- a/manilaclient/utils.py +++ b/manilaclient/utils.py @@ -12,7 +12,6 @@ from __future__ import print_function -import os import sys import prettytable @@ -21,41 +20,6 @@ import six from manilaclient.openstack.common import strutils -def arg(*args, **kwargs): - """Decorator for CLI args.""" - def _decorator(func): - add_arg(func, *args, **kwargs) - return func - return _decorator - - -def env(*vars, **kwargs): - """Returns value of env var if exist. - - Returns the first environment variable set if none are non-empty, - defaults to '' or keyword arg default. - """ - for v in vars: - value = os.environ.get(v, None) - if value: - return value - return kwargs.get('default', '') - - -def add_arg(f, *args, **kwargs): - """Bind CLI arguments to a shell.py `do_foo` function.""" - - if not hasattr(f, 'arguments'): - f.arguments = [] - - # NOTE(sirp): avoid dups that can occur when the module is shared across - # tests. - if (args, kwargs) not in f.arguments: - # Because of the sematics of decorator composition if we just append - # to the options list positional options will appear to be backwards. - f.arguments.insert(0, (args, kwargs)) - - def _print(pt, order): if sys.version_info >= (3, 0): print(pt.get_string(sortby=order)) diff --git a/manilaclient/v1/shell.py b/manilaclient/v1/shell.py index e86bc0a6d..c682047cb 100644 --- a/manilaclient/v1/shell.py +++ b/manilaclient/v1/shell.py @@ -145,14 +145,16 @@ def _quota_update(manager, identifier, args): manager.update(identifier, **updates) -@utils.arg('--tenant', - metavar='', - default=None, - help='ID of tenant to list the quotas for.') -@utils.arg('--user', - metavar='', - default=None, - help='ID of user to list the quotas for.') +@cliutils.arg( + '--tenant', + metavar='', + default=None, + help='ID of tenant to list the quotas for.') +@cliutils.arg( + '--user', + metavar='', + default=None, + help='ID of user to list the quotas for.') def do_quota_show(cs, args): """List the quotas for a tenant/user.""" @@ -162,10 +164,11 @@ def do_quota_show(cs, args): _quota_show(cs.quotas.get(args.tenant, user_id=args.user)) -@utils.arg('--tenant', - metavar='', - default=None, - help='ID of tenant to list the default quotas for.') +@cliutils.arg( + '--tenant', + metavar='', + default=None, + help='ID of tenant to list the default quotas for.') def do_quota_defaults(cs, args): """List the default quotas for a tenant.""" @@ -175,35 +178,46 @@ def do_quota_defaults(cs, args): _quota_show(cs.quotas.defaults(args.tenant)) -@utils.arg('tenant', - metavar='', - help='UUID of tenant to set the quotas for.') -@utils.arg('--user', - metavar='', - default=None, - help='ID of user to set the quotas for.') -@utils.arg('--shares', - metavar='', - type=int, default=None, - help='New value for the "shares" quota.') -@utils.arg('--snapshots', - metavar='', - type=int, default=None, - help='New value for the "snapshots" quota.') -@utils.arg('--gigabytes', - metavar='', - type=int, default=None, - help='New value for the "gigabytes" quota.') -@utils.arg('--share-networks', - metavar='', - type=int, default=None, - help='New value for the "share_networks" quota.') -@utils.arg('--force', - dest='force', - action="store_true", - default=None, - help='Whether force update the quota even if the already used' - ' and reserved exceeds the new quota') +@cliutils.arg( + 'tenant', + metavar='', + help='UUID of tenant to set the quotas for.') +@cliutils.arg( + '--user', + metavar='', + default=None, + help='ID of user to set the quotas for.') +@cliutils.arg( + '--shares', + metavar='', + type=int, + default=None, + help='New value for the "shares" quota.') +@cliutils.arg( + '--snapshots', + metavar='', + type=int, + default=None, + help='New value for the "snapshots" quota.') +@cliutils.arg( + '--gigabytes', + metavar='', + type=int, + default=None, + help='New value for the "gigabytes" quota.') +@cliutils.arg( + '--share-networks', + metavar='', + type=int, + default=None, + help='New value for the "share_networks" quota.') +@cliutils.arg( + '--force', + dest='force', + action="store_true", + default=None, + help='Whether force update the quota even if the already used' + ' and reserved exceeds the new quota') @cliutils.service_type('share') def do_quota_update(cs, args): """Update the quotas for a tenant/user.""" @@ -211,12 +225,14 @@ def do_quota_update(cs, args): _quota_update(cs.quotas, args.tenant, args) -@utils.arg('--tenant', - metavar='', - help='ID of tenant to delete quota for.') -@utils.arg('--user', - metavar='', - help='ID of user to delete quota for.') +@cliutils.arg( + '--tenant', + metavar='', + help='ID of tenant to delete quota for.') +@cliutils.arg( + '--user', + metavar='', + help='ID of user to delete quota for.') def do_quota_delete(cs, args): """Delete quota for a tenant/user. @@ -229,9 +245,10 @@ def do_quota_delete(cs, args): cs.quotas.delete(args.tenant, user_id=args.user) -@utils.arg('class_name', - metavar='', - help='Name of quota class to list the quotas for.') +@cliutils.arg( + 'class_name', + metavar='', + help='Name of quota class to list the quotas for.') @cliutils.service_type('share') def do_quota_class_show(cs, args): """List the quotas for a quota class.""" @@ -239,25 +256,34 @@ def do_quota_class_show(cs, args): _quota_show(cs.quota_classes.get(args.class_name)) -@utils.arg('class-name', - metavar='', - help='Name of quota class to set the quotas for.') -@utils.arg('--shares', - metavar='', - type=int, default=None, - help='New value for the "shares" quota.') -@utils.arg('--snapshots', - metavar='', - type=int, default=None, - help='New value for the "snapshots" quota.') -@utils.arg('--gigabytes', - metavar='', - type=int, default=None, - help='New value for the "gigabytes" quota.') -@utils.arg('--share-networks', - metavar='', - type=int, default=None, - help='New value for the "share_networks" quota.') +@cliutils.arg( + 'class-name', + metavar='', + help='Name of quota class to set the quotas for.') +@cliutils.arg( + '--shares', + metavar='', + type=int, + default=None, + help='New value for the "shares" quota.') +@cliutils.arg( + '--snapshots', + metavar='', + type=int, + default=None, + help='New value for the "snapshots" quota.') +@cliutils.arg( + '--gigabytes', + metavar='', + type=int, + default=None, + help='New value for the "gigabytes" quota.') +@cliutils.arg( + '--share-networks', + metavar='', + type=int, + default=None, + help='New value for the "share_networks" quota.') @cliutils.service_type('share') def do_quota_class_update(cs, args): """Update the quotas for a quota class.""" @@ -281,43 +307,44 @@ def do_rate_limits(cs, args): utils.print_list(limits, columns) -@utils.arg( +@cliutils.arg( 'share_protocol', metavar='', type=str, help='Share type (NFS or CIFS)') -@utils.arg( +@cliutils.arg( 'size', metavar='', type=int, help='Share size in GB') -@utils.arg( +@cliutils.arg( '--snapshot-id', metavar='', help='Optional snapshot id to create the share from. (Default=None)', default=None) -@utils.arg( +@cliutils.arg( '--name', metavar='', help='Optional share name. (Default=None)', default=None) -@utils.arg('--metadata', - type=str, - nargs='*', - metavar='', - help='Metadata key=value pairs (Optional, Default=None)', - default=None) -@utils.arg( +@cliutils.arg( + '--metadata', + type=str, + nargs='*', + metavar='', + help='Metadata key=value pairs (Optional, Default=None)', + default=None) +@cliutils.arg( '--share-network', metavar='', help='Optional network info id or name', default=None) -@utils.arg( +@cliutils.arg( '--description', metavar='', help='Optional share description. (Default=None)', default=None) -@utils.arg( +@cliutils.arg( '--volume-type', metavar='', help='Optional volume type. (Default=None)', @@ -341,18 +368,21 @@ def do_create(cs, args): _print_share(cs, share) -@utils.arg('share', - metavar='', - help='Name or ID of the share to update metadata on.') -@utils.arg('action', - metavar='', - choices=['set', 'unset'], - help="Actions: 'set' or 'unset'") -@utils.arg('metadata', - metavar='', - nargs='+', - default=[], - help='Metadata to set/unset (only key is necessary on unset)') +@cliutils.arg( + 'share', + metavar='', + help='Name or ID of the share to update metadata on.') +@cliutils.arg( + 'action', + metavar='', + choices=['set', 'unset'], + help="Actions: 'set' or 'unset'") +@cliutils.arg( + 'metadata', + metavar='', + nargs='+', + default=[], + help='Metadata to set/unset (only key is necessary on unset)') @cliutils.service_type('share') def do_metadata(cs, args): """Set or Delete metadata on a share.""" @@ -365,8 +395,10 @@ def do_metadata(cs, args): cs.shares.delete_metadata(share, sorted(list(metadata), reverse=True)) -@utils.arg('share', metavar='', - help='Name or ID of share') +@cliutils.arg( + 'share', + metavar='', + help='Name or ID of share') @cliutils.service_type('share') def do_metadata_show(cs, args): """Show metadata of given share.""" @@ -375,14 +407,16 @@ def do_metadata_show(cs, args): utils.print_dict(metadata, 'Metadata-property') -@utils.arg('share', - metavar='', - help='Name or ID of the share to update metadata on.') -@utils.arg('metadata', - metavar='', - nargs='+', - default=[], - help='Metadata entry/entries to update.') +@cliutils.arg( + 'share', + metavar='', + help='Name or ID of the share to update metadata on.') +@cliutils.arg( + 'metadata', + metavar='', + nargs='+', + default=[], + help='Metadata entry/entries to update.') @cliutils.service_type('share') def do_metadata_update_all(cs, args): """Update all metadata of a share.""" @@ -392,8 +426,11 @@ def do_metadata_update_all(cs, args): utils.print_dict(metadata, 'Metadata-property') -@utils.arg('share', metavar='', nargs='+', - help='Name or ID of share(s).') +@cliutils.arg( + 'share', + metavar='', + nargs='+', + help='Name or ID of share(s).') def do_delete(cs, args): """Removes one or more shares.""" failure_count = 0 @@ -411,10 +448,11 @@ def do_delete(cs, args): "shares.") -@utils.arg('share', - metavar='', - nargs='+', - help='Name or ID of share(s) to force delete.') +@cliutils.arg( + 'share', + metavar='', + nargs='+', + help='Name or ID of share(s) to force delete.') def do_force_delete(cs, args): """Attempts force-delete of share, regardless of state.""" failure_count = 0 @@ -429,7 +467,7 @@ def do_force_delete(cs, args): "specified shares.") -@utils.arg( +@cliutils.arg( 'share', metavar='', help='Name or ID of the NAS share.') @@ -440,16 +478,16 @@ def do_show(cs, args): _print_share(cs, share) -@utils.arg( +@cliutils.arg( 'share', metavar='', help='Name or ID of the NAS share to modify.') -@utils.arg( +@cliutils.arg( 'access_type', metavar='', help='access rule type (only "ip" and "sid"(user or group) ' 'are supported).') -@utils.arg( +@cliutils.arg( 'access_to', metavar='', help='Value that defines access') @@ -461,11 +499,11 @@ def do_access_allow(cs, args): utils.print_dict(access) -@utils.arg( +@cliutils.arg( 'share', metavar='', help='Name or ID of the NAS share to modify.') -@utils.arg( +@cliutils.arg( 'id', metavar='', help='id of the access rule to be deleted.') @@ -476,7 +514,7 @@ def do_access_deny(cs, args): share.deny(args.id) -@utils.arg( +@cliutils.arg( 'share', metavar='', help='Name or ID of the share.') @@ -488,7 +526,7 @@ def do_access_list(cs, args): utils.print_list(access_list, ['id', 'access type', 'access to', 'state']) -@utils.arg( +@cliutils.arg( '--all-tenants', dest='all_tenants', metavar='<0|1>', @@ -497,17 +535,17 @@ def do_access_list(cs, args): const=1, default=0, help='Display information from all tenants (Admin only).') -@utils.arg( +@cliutils.arg( '--name', metavar='', default=None, help='Filter results by name') -@utils.arg( +@cliutils.arg( '--status', metavar='', default=None, help='Filter results by status') -@utils.arg( +@cliutils.arg( '--share-server-id', metavar='', default=None, @@ -528,7 +566,7 @@ def do_list(cs, args): 'Export location']) -@utils.arg( +@cliutils.arg( '--all-tenants', dest='all_tenants', metavar='<0|1>', @@ -537,17 +575,17 @@ def do_list(cs, args): const=1, default=0, help='Display information from all tenants (Admin only).') -@utils.arg( +@cliutils.arg( '--name', metavar='', default=None, help='Filter results by name') -@utils.arg( +@cliutils.arg( '--status', metavar='', default=None, help='Filter results by status') -@utils.arg( +@cliutils.arg( '--share-id', metavar='', default=None, @@ -567,7 +605,7 @@ def do_snapshot_list(cs, args): ['ID', 'Share ID', 'Status', 'Name', 'Share Size']) -@utils.arg( +@cliutils.arg( 'snapshot', metavar='', help='Name or ID of the snapshot.') @@ -578,23 +616,23 @@ def do_snapshot_show(cs, args): _print_share_snapshot(cs, snapshot) -@utils.arg( +@cliutils.arg( 'share', metavar='', help='Name or ID of the share to snapshot') -@utils.arg( +@cliutils.arg( '--force', metavar='', help='Optional flag to indicate whether ' 'to snapshot a share even if it\'s busy.' ' (Default=False)', default=False) -@utils.arg( +@cliutils.arg( '--name', metavar='', default=None, help='Optional snapshot name. (Default=None)') -@utils.arg( +@cliutils.arg( '--description', metavar='', default=None, @@ -610,16 +648,20 @@ def do_snapshot_create(cs, args): _print_share_snapshot(cs, snapshot) -@utils.arg('share', - metavar='', - help='Name or ID of the share to rename.') -@utils.arg('name', - nargs='?', - metavar='', - help='New name for the share.') -@utils.arg('--description', metavar='', - help='Optional share description. (Default=None)', - default=None) +@cliutils.arg( + 'share', + metavar='', + help='Name or ID of the share to rename.') +@cliutils.arg( + 'name', + nargs='?', + metavar='', + help='New name for the share.') +@cliutils.arg( + '--description', + metavar='', + help='Optional share description. (Default=None)', + default=None) @cliutils.service_type('share') def do_rename(cs, args): """Rename a share.""" @@ -635,16 +677,20 @@ def do_rename(cs, args): _find_share(cs, args.share).update(**kwargs) -@utils.arg('snapshot', - metavar='', - help='Name or ID of the snapshot to rename.') -@utils.arg('name', - nargs='?', - metavar='', - help='New name for the snapshot.') -@utils.arg('--description', metavar='', - help='Optional snapshot description. (Default=None)', - default=None) +@cliutils.arg( + 'snapshot', + metavar='', + help='Name or ID of the snapshot to rename.') +@cliutils.arg( + 'name', + nargs='?', + metavar='', + help='New name for the snapshot.') +@cliutils.arg( + '--description', + metavar='', + help='Optional snapshot description. (Default=None)', + default=None) @cliutils.service_type('share') def do_snapshot_rename(cs, args): """Rename a snapshot.""" @@ -660,7 +706,7 @@ def do_snapshot_rename(cs, args): _find_share_snapshot(cs, args.snapshot).update(**kwargs) -@utils.arg( +@cliutils.arg( 'snapshot', metavar='', help='Name or ID of the snapshot to delete.') @@ -671,7 +717,7 @@ def do_snapshot_delete(cs, args): snapshot.delete() -@utils.arg( +@cliutils.arg( 'snapshot', metavar='', help='Name or ID of the snapshot to force delete.') @@ -682,14 +728,18 @@ def do_snapshot_force_delete(cs, args): snapshot.force_delete() -@utils.arg('snapshot', metavar='', - help='Name or ID of the snapshot to modify.') -@utils.arg('--state', metavar='', - default='available', - help=('Indicate which state to assign the snapshot. ' - 'Options include available, error, creating, deleting, ' - 'error_deleting. If no state is provided, ' - 'available will be used.')) +@cliutils.arg( + 'snapshot', + metavar='', + help='Name or ID of the snapshot to modify.') +@cliutils.arg( + '--state', + metavar='', + default='available', + help=('Indicate which state to assign the snapshot. ' + 'Options include available, error, creating, deleting, ' + 'error_deleting. If no state is provided, ' + 'available will be used.')) @cliutils.service_type('share') def do_snapshot_reset_state(cs, args): """Explicitly update the state of a snapshot.""" @@ -697,11 +747,11 @@ def do_snapshot_reset_state(cs, args): snapshot.reset_state(args.state) -@utils.arg( +@cliutils.arg( 'share', metavar='', help='Name or ID of the share to modify.') -@utils.arg( +@cliutils.arg( '--state', metavar='', default='available', @@ -715,23 +765,23 @@ def do_reset_state(cs, args): share.reset_state(args.state) -@utils.arg( +@cliutils.arg( '--neutron-net-id', metavar='neutron-net-id', default=None, help="Neutron network id. Used to set up network for share servers.") -@utils.arg( +@cliutils.arg( '--neutron-subnet-id', metavar='neutron-subnet-id', default=None, help="Neutron subnet id. Used to set up network for share servers. " "This subnet should belong to specified neutron network.") -@utils.arg( +@cliutils.arg( '--name', metavar='', default=None, help="Share network name.") -@utils.arg( +@cliutils.arg( '--description', metavar='', default=None, @@ -747,27 +797,27 @@ def do_share_network_create(cs, args): utils.print_dict(info) -@utils.arg( +@cliutils.arg( 'share_network', metavar='', help='Name or ID of share network to update.') -@utils.arg( +@cliutils.arg( '--neutron-net-id', metavar='neutron-net-id', default=None, help="Neutron network id. Used to set up network for share servers.") -@utils.arg( +@cliutils.arg( '--neutron-subnet-id', metavar='neutron-subnet-id', default=None, help="Neutron subnet id. Used to set up network for share servers. " "This subnet should belong to specified neutron network.") -@utils.arg( +@cliutils.arg( '--name', metavar='', default=None, help="Share network name.") -@utils.arg( +@cliutils.arg( '--description', metavar='', default=None, @@ -784,7 +834,7 @@ def do_share_network_update(cs, args): utils.print_dict(info) -@utils.arg( +@cliutils.arg( 'share_network', metavar='', help='Name or ID of the share network to show.') @@ -795,7 +845,7 @@ def do_share_network_show(cs, args): utils.print_dict(info) -@utils.arg( +@cliutils.arg( '--all-tenants', dest='all_tenants', metavar='<0|1>', @@ -804,7 +854,7 @@ def do_share_network_show(cs, args): const=1, default=0, help='Display information from all tenants (Admin only).') -@utils.arg( +@cliutils.arg( '--status', metavar='', default=None, @@ -821,11 +871,11 @@ def do_share_network_list(cs, args): utils.print_list(share_networks, fields=fields) -@utils.arg( +@cliutils.arg( 'share_network', metavar='', help='Share network name or ID.') -@utils.arg( +@cliutils.arg( 'security_service', metavar='', help='Security service to associate with.') @@ -836,11 +886,11 @@ def do_share_network_security_service_add(cs, args): args.security_service) -@utils.arg( +@cliutils.arg( 'share_network', metavar='', help='Share network name or ID.') -@utils.arg( +@cliutils.arg( 'security_service', metavar='', help='Security service to dissociate.') @@ -851,7 +901,7 @@ def do_share_network_security_service_remove(cs, args): args.security_service) -@utils.arg( +@cliutils.arg( 'share_network', metavar='', help='Share network name or ID.') @@ -866,7 +916,7 @@ def do_share_network_security_service_list(cs, args): utils.print_list(security_services, fields=fields) -@utils.arg( +@cliutils.arg( 'share_network', metavar='', help='Name or ID of share network to be deleted.') @@ -875,41 +925,41 @@ def do_share_network_delete(cs, args): _find_share_network(cs, args.share_network).delete() -@utils.arg( +@cliutils.arg( 'type', metavar='', help="Security service type: 'ldap', 'kerberos' or 'active_directory'") -@utils.arg( +@cliutils.arg( '--dns-ip', metavar='', default=None, help="dns ip address used inside tenant's network") -@utils.arg( +@cliutils.arg( '--server', metavar='', default=None, help="security service ip address or hostname") -@utils.arg( +@cliutils.arg( '--domain', metavar='', default=None, help="security service domain") -@utils.arg( +@cliutils.arg( '--sid', metavar='', default=None, help="security service user or group used by tenant") -@utils.arg( +@cliutils.arg( '--password', metavar='', default=None, help="password used by sid") -@utils.arg( +@cliutils.arg( '--name', metavar='', default=None, help="security service name") -@utils.arg( +@cliutils.arg( '--description', metavar='', default=None, @@ -928,41 +978,41 @@ def do_security_service_create(cs, args): utils.print_dict(info) -@utils.arg( +@cliutils.arg( 'security_service', metavar='', help='Security service to update.') -@utils.arg( +@cliutils.arg( '--dns-ip', metavar='', default=None, help="dns ip address used inside tenant's network") -@utils.arg( +@cliutils.arg( '--server', metavar='', default=None, help="security service ip address or hostname") -@utils.arg( +@cliutils.arg( '--domain', metavar='', default=None, help="security service domain") -@utils.arg( +@cliutils.arg( '--sid', metavar='', default=None, help="security service user or group used by tenant") -@utils.arg( +@cliutils.arg( '--password', metavar='', default=None, help="password used by sid") -@utils.arg( +@cliutils.arg( '--name', metavar='', default=None, help="security service name") -@utils.arg( +@cliutils.arg( '--description', metavar='', default=None, @@ -982,7 +1032,7 @@ def do_security_service_update(cs, args): utils.print_dict(info) -@utils.arg( +@cliutils.arg( 'security_service', metavar='', help='Security service to show.') @@ -993,7 +1043,7 @@ def do_security_service_show(cs, args): utils.print_dict(info) -@utils.arg( +@cliutils.arg( '--all-tenants', dest='all_tenants', metavar='<0|1>', @@ -1002,7 +1052,7 @@ def do_security_service_show(cs, args): const=1, default=0, help='Display information from all tenants (Admin only).') -@utils.arg( +@cliutils.arg( '--status', metavar='', default=None, @@ -1019,7 +1069,7 @@ def do_security_service_list(cs, args): utils.print_list(security_services, fields=fields) -@utils.arg( +@cliutils.arg( 'security_service', metavar='', help='Security service to delete.') @@ -1028,22 +1078,22 @@ def do_security_service_delete(cs, args): cs.security_services.delete(args.security_service) -@utils.arg( +@cliutils.arg( '--host', metavar='', default=None, help='Filter results by name of host.') -@utils.arg( +@cliutils.arg( '--status', metavar='', default=None, help='Filter results by status.') -@utils.arg( +@cliutils.arg( '--share-network', metavar='', default=None, help='Filter results by share network.') -@utils.arg( +@cliutils.arg( '--project-id', metavar='', default=None, @@ -1068,7 +1118,7 @@ def do_share_server_list(cs, args): utils.print_list(share_servers, fields=fields) -@utils.arg( +@cliutils.arg( 'id', metavar='', type=str, @@ -1083,7 +1133,7 @@ def do_share_server_show(cs, args): utils.print_dict(share_server._info) -@utils.arg( +@cliutils.arg( 'id', metavar='', type=str, @@ -1094,7 +1144,7 @@ def do_share_server_details(cs, args): utils.print_dict(details._info) -@utils.arg( +@cliutils.arg( 'id', metavar='', type=str, @@ -1104,27 +1154,27 @@ def do_share_server_delete(cs, args): cs.share_servers.delete(args.id) -@utils.arg( +@cliutils.arg( '--host', metavar='', default=None, help='Name of host.') -@utils.arg( +@cliutils.arg( '--binary', metavar='', default=None, help='Service binary.') -@utils.arg( +@cliutils.arg( '--status', metavar='', default=None, help='Filter results by status') -@utils.arg( +@cliutils.arg( '--state', metavar='', default=None, help='Filter results by state') -@utils.arg( +@cliutils.arg( '--zone', metavar='', default=None, @@ -1178,9 +1228,10 @@ def do_extra_specs_list(cs, args): _print_type_and_extra_specs_list(vtypes) -@utils.arg('name', - metavar='', - help="Name of the new volume type") +@cliutils.arg( + 'name', + metavar='', + help="Name of the new volume type") @cliutils.service_type('share') def do_type_create(cs, args): """Create a new volume type.""" @@ -1188,9 +1239,10 @@ def do_type_create(cs, args): _print_volume_type_list([vtype]) -@utils.arg('id', - metavar='', - help="Name or ID of the volume type to delete") +@cliutils.arg( + 'id', + metavar='', + help="Name or ID of the volume type to delete") @cliutils.service_type('share') def do_type_delete(cs, args): """Delete a specific volume type.""" @@ -1198,18 +1250,21 @@ def do_type_delete(cs, args): cs.volume_types.delete(volume_type) -@utils.arg('vtype', - metavar='', - help="Name or ID of the volume type") -@utils.arg('action', - metavar='', - choices=['set', 'unset'], - help="Actions: 'set' or 'unset'") -@utils.arg('metadata', - metavar='', - nargs='*', - default=None, - help='Extra_specs to set/unset (only key is necessary on unset)') +@cliutils.arg( + 'vtype', + metavar='', + help="Name or ID of the volume type") +@cliutils.arg( + 'action', + metavar='', + choices=['set', 'unset'], + help="Actions: 'set' or 'unset'") +@cliutils.arg( + 'metadata', + metavar='', + nargs='*', + default=None, + help='Extra_specs to set/unset (only key is necessary on unset)') @cliutils.service_type('share') def do_type_key(cs, args): """Set or unset extra_spec for a volume type."""