Cleanup manilaclient.utils module (part 2)

Remove functions 'arg', 'env' and 'add_arg' from
manilaclient.utils and use same functions from cliutils instead.

Partially implements: blueprint use-common-code

Change-Id: Ib41250d527c5949cdfb7c6956703ff4b371a062b
This commit is contained in:
vponomaryov
2014-07-15 15:38:51 +03:00
committed by Valeriy Ponomaryov
parent b11f5d78a2
commit 4a7e7cf089
4 changed files with 315 additions and 296 deletions

View File

@@ -24,6 +24,7 @@ import hashlib
import os import os
from manilaclient import exceptions from manilaclient import exceptions
from manilaclient.openstack.common import cliutils
from manilaclient import utils from manilaclient import utils
@@ -84,13 +85,13 @@ class Manager(utils.HookableMixin):
Delete is not handled because listings are assumed to be performed Delete is not handled because listings are assumed to be performed
often enough to keep the cache reasonably up-to-date. often enough to keep the cache reasonably up-to-date.
""" """
base_dir = utils.env('manilaclient_UUID_CACHE_DIR', base_dir = cliutils.env('manilaclient_UUID_CACHE_DIR',
default="~/.manilaclient") default="~/.manilaclient")
# NOTE(sirp): Keep separate UUID caches for each username + endpoint # NOTE(sirp): Keep separate UUID caches for each username + endpoint
# pair # pair
username = utils.env('OS_USERNAME', 'MANILA_USERNAME') username = cliutils.env('OS_USERNAME', 'MANILA_USERNAME')
url = utils.env('OS_URL', 'MANILA_URL') url = cliutils.env('OS_URL', 'MANILA_URL')
uniqifier = hashlib.md5(username.encode('utf-8') + uniqifier = hashlib.md5(username.encode('utf-8') +
url.encode('utf-8')).hexdigest() url.encode('utf-8')).hexdigest()

View File

@@ -38,7 +38,6 @@ from manilaclient import exceptions as exc
import manilaclient.extension import manilaclient.extension
from manilaclient.openstack.common import cliutils from manilaclient.openstack.common import cliutils
from manilaclient.openstack.common import strutils from manilaclient.openstack.common import strutils
from manilaclient import utils
from manilaclient.v1 import shell as shell_v1 from manilaclient.v1 import shell as shell_v1
# from manilaclient.v2 import shell as shell_v2 # from manilaclient.v2 import shell as shell_v2
@@ -195,7 +194,7 @@ class SecretsHelper(object):
password = self.args.os_password password = self.args.os_password
else: else:
verify_pass = strutils.bool_from_string( 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) password = self._prompt_password(verify_pass)
if not password: if not password:
raise exc.CommandError( raise exc.CommandError(
@@ -276,12 +275,12 @@ class OpenStackManilaShell(object):
parser.add_argument('--debug', parser.add_argument('--debug',
action='store_true', action='store_true',
default=utils.env('manilaclient_DEBUG', default=cliutils.env('manilaclient_DEBUG',
default=False), default=False),
help="Print debugging output") help="Print debugging output")
parser.add_argument('--os-cache', parser.add_argument('--os-cache',
default=utils.env('OS_CACHE', default=False), default=cliutils.env('OS_CACHE', default=False),
action='store_true', action='store_true',
help='Use the auth token cache. ' help='Use the auth token cache. '
'Defaults to env[OS_CACHE].') 'Defaults to env[OS_CACHE].')
@@ -293,7 +292,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-username', parser.add_argument('--os-username',
metavar='<auth-user-name>', metavar='<auth-user-name>',
default=utils.env('OS_USERNAME', default=cliutils.env('OS_USERNAME',
'MANILA_USERNAME'), 'MANILA_USERNAME'),
help='Defaults to env[OS_USERNAME].') help='Defaults to env[OS_USERNAME].')
parser.add_argument('--os_username', parser.add_argument('--os_username',
@@ -301,7 +300,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-password', parser.add_argument('--os-password',
metavar='<auth-password>', metavar='<auth-password>',
default=utils.env('OS_PASSWORD', default=cliutils.env('OS_PASSWORD',
'MANILA_PASSWORD'), 'MANILA_PASSWORD'),
help='Defaults to env[OS_PASSWORD].') help='Defaults to env[OS_PASSWORD].')
parser.add_argument('--os_password', parser.add_argument('--os_password',
@@ -309,7 +308,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-tenant-name', parser.add_argument('--os-tenant-name',
metavar='<auth-tenant-name>', metavar='<auth-tenant-name>',
default=utils.env('OS_TENANT_NAME', default=cliutils.env('OS_TENANT_NAME',
'MANILA_PROJECT_ID'), 'MANILA_PROJECT_ID'),
help='Defaults to env[OS_TENANT_NAME].') help='Defaults to env[OS_TENANT_NAME].')
parser.add_argument('--os_tenant_name', parser.add_argument('--os_tenant_name',
@@ -317,7 +316,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-tenant-id', parser.add_argument('--os-tenant-id',
metavar='<auth-tenant-id>', metavar='<auth-tenant-id>',
default=utils.env('OS_TENANT_ID', default=cliutils.env('OS_TENANT_ID',
'MANILA_TENANT_ID'), 'MANILA_TENANT_ID'),
help='Defaults to env[OS_TENANT_ID].') help='Defaults to env[OS_TENANT_ID].')
parser.add_argument('--os_tenant_id', parser.add_argument('--os_tenant_id',
@@ -325,7 +324,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-auth-url', parser.add_argument('--os-auth-url',
metavar='<auth-url>', metavar='<auth-url>',
default=utils.env('OS_AUTH_URL', default=cliutils.env('OS_AUTH_URL',
'MANILA_URL'), 'MANILA_URL'),
help='Defaults to env[OS_AUTH_URL].') help='Defaults to env[OS_AUTH_URL].')
parser.add_argument('--os_auth_url', parser.add_argument('--os_auth_url',
@@ -333,7 +332,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-region-name', parser.add_argument('--os-region-name',
metavar='<region-name>', metavar='<region-name>',
default=utils.env('OS_REGION_NAME', default=cliutils.env('OS_REGION_NAME',
'MANILA_REGION_NAME'), 'MANILA_REGION_NAME'),
help='Defaults to env[OS_REGION_NAME].') help='Defaults to env[OS_REGION_NAME].')
parser.add_argument('--os_region_name', parser.add_argument('--os_region_name',
@@ -347,21 +346,21 @@ class OpenStackManilaShell(object):
parser.add_argument('--service-name', parser.add_argument('--service-name',
metavar='<service-name>', metavar='<service-name>',
default=utils.env('MANILA_SERVICE_NAME'), default=cliutils.env('MANILA_SERVICE_NAME'),
help='Defaults to env[MANILA_SERVICE_NAME]') help='Defaults to env[MANILA_SERVICE_NAME]')
parser.add_argument('--service_name', parser.add_argument('--service_name',
help=argparse.SUPPRESS) help=argparse.SUPPRESS)
parser.add_argument('--share-service-name', parser.add_argument('--share-service-name',
metavar='<share-service-name>', metavar='<share-service-name>',
default=utils.env('MANILA_share_service_name'), default=cliutils.env('MANILA_share_service_name'),
help='Defaults to env[MANILA_share_service_name]') help='Defaults to env[MANILA_share_service_name]')
parser.add_argument('--share_service_name', parser.add_argument('--share_service_name',
help=argparse.SUPPRESS) help=argparse.SUPPRESS)
parser.add_argument('--endpoint-type', parser.add_argument('--endpoint-type',
metavar='<endpoint-type>', metavar='<endpoint-type>',
default=utils.env( default=cliutils.env(
'MANILA_ENDPOINT_TYPE', 'MANILA_ENDPOINT_TYPE',
default=DEFAULT_MANILA_ENDPOINT_TYPE), default=DEFAULT_MANILA_ENDPOINT_TYPE),
help='Defaults to env[MANILA_ENDPOINT_TYPE] or ' help='Defaults to env[MANILA_ENDPOINT_TYPE] or '
@@ -371,7 +370,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-share-api-version', parser.add_argument('--os-share-api-version',
metavar='<compute-api-ver>', metavar='<compute-api-ver>',
default=utils.env( default=cliutils.env(
'OS_SHARE_API_VERSION', 'OS_SHARE_API_VERSION',
default=DEFAULT_OS_SHARE_API_VERSION), default=DEFAULT_OS_SHARE_API_VERSION),
help='Accepts 1 or 2,defaults ' help='Accepts 1 or 2,defaults '
@@ -381,13 +380,13 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-cacert', parser.add_argument('--os-cacert',
metavar='<ca-certificate>', metavar='<ca-certificate>',
default=utils.env('OS_CACERT', default=None), default=cliutils.env('OS_CACERT', default=None),
help='Specify a CA bundle file to use in ' help='Specify a CA bundle file to use in '
'verifying a TLS (https) server certificate. ' 'verifying a TLS (https) server certificate. '
'Defaults to env[OS_CACERT]') 'Defaults to env[OS_CACERT]')
parser.add_argument('--insecure', parser.add_argument('--insecure',
default=utils.env('manilaclient_INSECURE', default=cliutils.env('manilaclient_INSECURE',
default=False), default=False),
action='store_true', action='store_true',
help=argparse.SUPPRESS) help=argparse.SUPPRESS)
@@ -637,7 +636,7 @@ class OpenStackManilaShell(object):
commands.remove('bash_completion') commands.remove('bash_completion')
print(' '.join(commands | options)) print(' '.join(commands | options))
@utils.arg('command', metavar='<subcommand>', nargs='?', @cliutils.arg('command', metavar='<subcommand>', nargs='?',
help='Display help for <subcommand>') help='Display help for <subcommand>')
def do_help(self, args): def do_help(self, args):
"""Display help about this program or one of its subcommands.""" """Display help about this program or one of its subcommands."""

View File

@@ -12,7 +12,6 @@
from __future__ import print_function from __future__ import print_function
import os
import sys import sys
import prettytable import prettytable
@@ -21,41 +20,6 @@ import six
from manilaclient.openstack.common import strutils 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): def _print(pt, order):
if sys.version_info >= (3, 0): if sys.version_info >= (3, 0):
print(pt.get_string(sortby=order)) print(pt.get_string(sortby=order))

View File

@@ -145,11 +145,13 @@ def _quota_update(manager, identifier, args):
manager.update(identifier, **updates) manager.update(identifier, **updates)
@utils.arg('--tenant', @cliutils.arg(
'--tenant',
metavar='<tenant-id>', metavar='<tenant-id>',
default=None, default=None,
help='ID of tenant to list the quotas for.') help='ID of tenant to list the quotas for.')
@utils.arg('--user', @cliutils.arg(
'--user',
metavar='<user-id>', metavar='<user-id>',
default=None, default=None,
help='ID of user to list the quotas for.') help='ID of user to list the quotas for.')
@@ -162,7 +164,8 @@ def do_quota_show(cs, args):
_quota_show(cs.quotas.get(args.tenant, user_id=args.user)) _quota_show(cs.quotas.get(args.tenant, user_id=args.user))
@utils.arg('--tenant', @cliutils.arg(
'--tenant',
metavar='<tenant-id>', metavar='<tenant-id>',
default=None, default=None,
help='ID of tenant to list the default quotas for.') help='ID of tenant to list the default quotas for.')
@@ -175,30 +178,41 @@ def do_quota_defaults(cs, args):
_quota_show(cs.quotas.defaults(args.tenant)) _quota_show(cs.quotas.defaults(args.tenant))
@utils.arg('tenant', @cliutils.arg(
'tenant',
metavar='<tenant_id>', metavar='<tenant_id>',
help='UUID of tenant to set the quotas for.') help='UUID of tenant to set the quotas for.')
@utils.arg('--user', @cliutils.arg(
'--user',
metavar='<user-id>', metavar='<user-id>',
default=None, default=None,
help='ID of user to set the quotas for.') help='ID of user to set the quotas for.')
@utils.arg('--shares', @cliutils.arg(
'--shares',
metavar='<shares>', metavar='<shares>',
type=int, default=None, type=int,
default=None,
help='New value for the "shares" quota.') help='New value for the "shares" quota.')
@utils.arg('--snapshots', @cliutils.arg(
'--snapshots',
metavar='<snapshots>', metavar='<snapshots>',
type=int, default=None, type=int,
default=None,
help='New value for the "snapshots" quota.') help='New value for the "snapshots" quota.')
@utils.arg('--gigabytes', @cliutils.arg(
'--gigabytes',
metavar='<gigabytes>', metavar='<gigabytes>',
type=int, default=None, type=int,
default=None,
help='New value for the "gigabytes" quota.') help='New value for the "gigabytes" quota.')
@utils.arg('--share-networks', @cliutils.arg(
'--share-networks',
metavar='<share-networks>', metavar='<share-networks>',
type=int, default=None, type=int,
default=None,
help='New value for the "share_networks" quota.') help='New value for the "share_networks" quota.')
@utils.arg('--force', @cliutils.arg(
'--force',
dest='force', dest='force',
action="store_true", action="store_true",
default=None, default=None,
@@ -211,10 +225,12 @@ def do_quota_update(cs, args):
_quota_update(cs.quotas, args.tenant, args) _quota_update(cs.quotas, args.tenant, args)
@utils.arg('--tenant', @cliutils.arg(
'--tenant',
metavar='<tenant-id>', metavar='<tenant-id>',
help='ID of tenant to delete quota for.') help='ID of tenant to delete quota for.')
@utils.arg('--user', @cliutils.arg(
'--user',
metavar='<user-id>', metavar='<user-id>',
help='ID of user to delete quota for.') help='ID of user to delete quota for.')
def do_quota_delete(cs, args): def do_quota_delete(cs, args):
@@ -229,7 +245,8 @@ def do_quota_delete(cs, args):
cs.quotas.delete(args.tenant, user_id=args.user) cs.quotas.delete(args.tenant, user_id=args.user)
@utils.arg('class_name', @cliutils.arg(
'class_name',
metavar='<class>', metavar='<class>',
help='Name of quota class to list the quotas for.') help='Name of quota class to list the quotas for.')
@cliutils.service_type('share') @cliutils.service_type('share')
@@ -239,24 +256,33 @@ def do_quota_class_show(cs, args):
_quota_show(cs.quota_classes.get(args.class_name)) _quota_show(cs.quota_classes.get(args.class_name))
@utils.arg('class-name', @cliutils.arg(
'class-name',
metavar='<class-name>', metavar='<class-name>',
help='Name of quota class to set the quotas for.') help='Name of quota class to set the quotas for.')
@utils.arg('--shares', @cliutils.arg(
'--shares',
metavar='<shares>', metavar='<shares>',
type=int, default=None, type=int,
default=None,
help='New value for the "shares" quota.') help='New value for the "shares" quota.')
@utils.arg('--snapshots', @cliutils.arg(
'--snapshots',
metavar='<snapshots>', metavar='<snapshots>',
type=int, default=None, type=int,
default=None,
help='New value for the "snapshots" quota.') help='New value for the "snapshots" quota.')
@utils.arg('--gigabytes', @cliutils.arg(
'--gigabytes',
metavar='<gigabytes>', metavar='<gigabytes>',
type=int, default=None, type=int,
default=None,
help='New value for the "gigabytes" quota.') help='New value for the "gigabytes" quota.')
@utils.arg('--share-networks', @cliutils.arg(
'--share-networks',
metavar='<share-networks>', metavar='<share-networks>',
type=int, default=None, type=int,
default=None,
help='New value for the "share_networks" quota.') help='New value for the "share_networks" quota.')
@cliutils.service_type('share') @cliutils.service_type('share')
def do_quota_class_update(cs, args): def do_quota_class_update(cs, args):
@@ -281,43 +307,44 @@ def do_rate_limits(cs, args):
utils.print_list(limits, columns) utils.print_list(limits, columns)
@utils.arg( @cliutils.arg(
'share_protocol', 'share_protocol',
metavar='<share_protocol>', metavar='<share_protocol>',
type=str, type=str,
help='Share type (NFS or CIFS)') help='Share type (NFS or CIFS)')
@utils.arg( @cliutils.arg(
'size', 'size',
metavar='<size>', metavar='<size>',
type=int, type=int,
help='Share size in GB') help='Share size in GB')
@utils.arg( @cliutils.arg(
'--snapshot-id', '--snapshot-id',
metavar='<snapshot-id>', metavar='<snapshot-id>',
help='Optional snapshot id to create the share from. (Default=None)', help='Optional snapshot id to create the share from. (Default=None)',
default=None) default=None)
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
help='Optional share name. (Default=None)', help='Optional share name. (Default=None)',
default=None) default=None)
@utils.arg('--metadata', @cliutils.arg(
'--metadata',
type=str, type=str,
nargs='*', nargs='*',
metavar='<key=value>', metavar='<key=value>',
help='Metadata key=value pairs (Optional, Default=None)', help='Metadata key=value pairs (Optional, Default=None)',
default=None) default=None)
@utils.arg( @cliutils.arg(
'--share-network', '--share-network',
metavar='<network-info>', metavar='<network-info>',
help='Optional network info id or name', help='Optional network info id or name',
default=None) default=None)
@utils.arg( @cliutils.arg(
'--description', '--description',
metavar='<description>', metavar='<description>',
help='Optional share description. (Default=None)', help='Optional share description. (Default=None)',
default=None) default=None)
@utils.arg( @cliutils.arg(
'--volume-type', '--volume-type',
metavar='<volume-type>', metavar='<volume-type>',
help='Optional volume type. (Default=None)', help='Optional volume type. (Default=None)',
@@ -341,14 +368,17 @@ def do_create(cs, args):
_print_share(cs, share) _print_share(cs, share)
@utils.arg('share', @cliutils.arg(
'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the share to update metadata on.') help='Name or ID of the share to update metadata on.')
@utils.arg('action', @cliutils.arg(
'action',
metavar='<action>', metavar='<action>',
choices=['set', 'unset'], choices=['set', 'unset'],
help="Actions: 'set' or 'unset'") help="Actions: 'set' or 'unset'")
@utils.arg('metadata', @cliutils.arg(
'metadata',
metavar='<key=value>', metavar='<key=value>',
nargs='+', nargs='+',
default=[], default=[],
@@ -365,7 +395,9 @@ def do_metadata(cs, args):
cs.shares.delete_metadata(share, sorted(list(metadata), reverse=True)) cs.shares.delete_metadata(share, sorted(list(metadata), reverse=True))
@utils.arg('share', metavar='<share>', @cliutils.arg(
'share',
metavar='<share>',
help='Name or ID of share') help='Name or ID of share')
@cliutils.service_type('share') @cliutils.service_type('share')
def do_metadata_show(cs, args): def do_metadata_show(cs, args):
@@ -375,10 +407,12 @@ def do_metadata_show(cs, args):
utils.print_dict(metadata, 'Metadata-property') utils.print_dict(metadata, 'Metadata-property')
@utils.arg('share', @cliutils.arg(
'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the share to update metadata on.') help='Name or ID of the share to update metadata on.')
@utils.arg('metadata', @cliutils.arg(
'metadata',
metavar='<key=value>', metavar='<key=value>',
nargs='+', nargs='+',
default=[], default=[],
@@ -392,7 +426,10 @@ def do_metadata_update_all(cs, args):
utils.print_dict(metadata, 'Metadata-property') utils.print_dict(metadata, 'Metadata-property')
@utils.arg('share', metavar='<share>', nargs='+', @cliutils.arg(
'share',
metavar='<share>',
nargs='+',
help='Name or ID of share(s).') help='Name or ID of share(s).')
def do_delete(cs, args): def do_delete(cs, args):
"""Removes one or more shares.""" """Removes one or more shares."""
@@ -411,7 +448,8 @@ def do_delete(cs, args):
"shares.") "shares.")
@utils.arg('share', @cliutils.arg(
'share',
metavar='<share>', metavar='<share>',
nargs='+', nargs='+',
help='Name or ID of share(s) to force delete.') help='Name or ID of share(s) to force delete.')
@@ -429,7 +467,7 @@ def do_force_delete(cs, args):
"specified shares.") "specified shares.")
@utils.arg( @cliutils.arg(
'share', 'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the NAS share.') help='Name or ID of the NAS share.')
@@ -440,16 +478,16 @@ def do_show(cs, args):
_print_share(cs, share) _print_share(cs, share)
@utils.arg( @cliutils.arg(
'share', 'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the NAS share to modify.') help='Name or ID of the NAS share to modify.')
@utils.arg( @cliutils.arg(
'access_type', 'access_type',
metavar='<access_type>', metavar='<access_type>',
help='access rule type (only "ip" and "sid"(user or group) ' help='access rule type (only "ip" and "sid"(user or group) '
'are supported).') 'are supported).')
@utils.arg( @cliutils.arg(
'access_to', 'access_to',
metavar='<access_to>', metavar='<access_to>',
help='Value that defines access') help='Value that defines access')
@@ -461,11 +499,11 @@ def do_access_allow(cs, args):
utils.print_dict(access) utils.print_dict(access)
@utils.arg( @cliutils.arg(
'share', 'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the NAS share to modify.') help='Name or ID of the NAS share to modify.')
@utils.arg( @cliutils.arg(
'id', 'id',
metavar='<id>', metavar='<id>',
help='id of the access rule to be deleted.') help='id of the access rule to be deleted.')
@@ -476,7 +514,7 @@ def do_access_deny(cs, args):
share.deny(args.id) share.deny(args.id)
@utils.arg( @cliutils.arg(
'share', 'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the share.') 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.print_list(access_list, ['id', 'access type', 'access to', 'state'])
@utils.arg( @cliutils.arg(
'--all-tenants', '--all-tenants',
dest='all_tenants', dest='all_tenants',
metavar='<0|1>', metavar='<0|1>',
@@ -497,17 +535,17 @@ def do_access_list(cs, args):
const=1, const=1,
default=0, default=0,
help='Display information from all tenants (Admin only).') help='Display information from all tenants (Admin only).')
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
default=None, default=None,
help='Filter results by name') help='Filter results by name')
@utils.arg( @cliutils.arg(
'--status', '--status',
metavar='<status>', metavar='<status>',
default=None, default=None,
help='Filter results by status') help='Filter results by status')
@utils.arg( @cliutils.arg(
'--share-server-id', '--share-server-id',
metavar='<share_server_id>', metavar='<share_server_id>',
default=None, default=None,
@@ -528,7 +566,7 @@ def do_list(cs, args):
'Export location']) 'Export location'])
@utils.arg( @cliutils.arg(
'--all-tenants', '--all-tenants',
dest='all_tenants', dest='all_tenants',
metavar='<0|1>', metavar='<0|1>',
@@ -537,17 +575,17 @@ def do_list(cs, args):
const=1, const=1,
default=0, default=0,
help='Display information from all tenants (Admin only).') help='Display information from all tenants (Admin only).')
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
default=None, default=None,
help='Filter results by name') help='Filter results by name')
@utils.arg( @cliutils.arg(
'--status', '--status',
metavar='<status>', metavar='<status>',
default=None, default=None,
help='Filter results by status') help='Filter results by status')
@utils.arg( @cliutils.arg(
'--share-id', '--share-id',
metavar='<share-id>', metavar='<share-id>',
default=None, default=None,
@@ -567,7 +605,7 @@ def do_snapshot_list(cs, args):
['ID', 'Share ID', 'Status', 'Name', 'Share Size']) ['ID', 'Share ID', 'Status', 'Name', 'Share Size'])
@utils.arg( @cliutils.arg(
'snapshot', 'snapshot',
metavar='<snapshot>', metavar='<snapshot>',
help='Name or ID of the snapshot.') help='Name or ID of the snapshot.')
@@ -578,23 +616,23 @@ def do_snapshot_show(cs, args):
_print_share_snapshot(cs, snapshot) _print_share_snapshot(cs, snapshot)
@utils.arg( @cliutils.arg(
'share', 'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the share to snapshot') help='Name or ID of the share to snapshot')
@utils.arg( @cliutils.arg(
'--force', '--force',
metavar='<True|False>', metavar='<True|False>',
help='Optional flag to indicate whether ' help='Optional flag to indicate whether '
'to snapshot a share even if it\'s busy.' 'to snapshot a share even if it\'s busy.'
' (Default=False)', ' (Default=False)',
default=False) default=False)
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
default=None, default=None,
help='Optional snapshot name. (Default=None)') help='Optional snapshot name. (Default=None)')
@utils.arg( @cliutils.arg(
'--description', '--description',
metavar='<description>', metavar='<description>',
default=None, default=None,
@@ -610,14 +648,18 @@ def do_snapshot_create(cs, args):
_print_share_snapshot(cs, snapshot) _print_share_snapshot(cs, snapshot)
@utils.arg('share', @cliutils.arg(
'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the share to rename.') help='Name or ID of the share to rename.')
@utils.arg('name', @cliutils.arg(
'name',
nargs='?', nargs='?',
metavar='<name>', metavar='<name>',
help='New name for the share.') help='New name for the share.')
@utils.arg('--description', metavar='<description>', @cliutils.arg(
'--description',
metavar='<description>',
help='Optional share description. (Default=None)', help='Optional share description. (Default=None)',
default=None) default=None)
@cliutils.service_type('share') @cliutils.service_type('share')
@@ -635,14 +677,18 @@ def do_rename(cs, args):
_find_share(cs, args.share).update(**kwargs) _find_share(cs, args.share).update(**kwargs)
@utils.arg('snapshot', @cliutils.arg(
'snapshot',
metavar='<snapshot>', metavar='<snapshot>',
help='Name or ID of the snapshot to rename.') help='Name or ID of the snapshot to rename.')
@utils.arg('name', @cliutils.arg(
'name',
nargs='?', nargs='?',
metavar='<name>', metavar='<name>',
help='New name for the snapshot.') help='New name for the snapshot.')
@utils.arg('--description', metavar='<description>', @cliutils.arg(
'--description',
metavar='<description>',
help='Optional snapshot description. (Default=None)', help='Optional snapshot description. (Default=None)',
default=None) default=None)
@cliutils.service_type('share') @cliutils.service_type('share')
@@ -660,7 +706,7 @@ def do_snapshot_rename(cs, args):
_find_share_snapshot(cs, args.snapshot).update(**kwargs) _find_share_snapshot(cs, args.snapshot).update(**kwargs)
@utils.arg( @cliutils.arg(
'snapshot', 'snapshot',
metavar='<snapshot>', metavar='<snapshot>',
help='Name or ID of the snapshot to delete.') help='Name or ID of the snapshot to delete.')
@@ -671,7 +717,7 @@ def do_snapshot_delete(cs, args):
snapshot.delete() snapshot.delete()
@utils.arg( @cliutils.arg(
'snapshot', 'snapshot',
metavar='<snapshot>', metavar='<snapshot>',
help='Name or ID of the snapshot to force delete.') help='Name or ID of the snapshot to force delete.')
@@ -682,9 +728,13 @@ def do_snapshot_force_delete(cs, args):
snapshot.force_delete() snapshot.force_delete()
@utils.arg('snapshot', metavar='<snapshot>', @cliutils.arg(
'snapshot',
metavar='<snapshot>',
help='Name or ID of the snapshot to modify.') help='Name or ID of the snapshot to modify.')
@utils.arg('--state', metavar='<state>', @cliutils.arg(
'--state',
metavar='<state>',
default='available', default='available',
help=('Indicate which state to assign the snapshot. ' help=('Indicate which state to assign the snapshot. '
'Options include available, error, creating, deleting, ' 'Options include available, error, creating, deleting, '
@@ -697,11 +747,11 @@ def do_snapshot_reset_state(cs, args):
snapshot.reset_state(args.state) snapshot.reset_state(args.state)
@utils.arg( @cliutils.arg(
'share', 'share',
metavar='<share>', metavar='<share>',
help='Name or ID of the share to modify.') help='Name or ID of the share to modify.')
@utils.arg( @cliutils.arg(
'--state', '--state',
metavar='<state>', metavar='<state>',
default='available', default='available',
@@ -715,23 +765,23 @@ def do_reset_state(cs, args):
share.reset_state(args.state) share.reset_state(args.state)
@utils.arg( @cliutils.arg(
'--neutron-net-id', '--neutron-net-id',
metavar='neutron-net-id', metavar='neutron-net-id',
default=None, default=None,
help="Neutron network id. Used to set up network for share servers.") help="Neutron network id. Used to set up network for share servers.")
@utils.arg( @cliutils.arg(
'--neutron-subnet-id', '--neutron-subnet-id',
metavar='neutron-subnet-id', metavar='neutron-subnet-id',
default=None, default=None,
help="Neutron subnet id. Used to set up network for share servers. " help="Neutron subnet id. Used to set up network for share servers. "
"This subnet should belong to specified neutron network.") "This subnet should belong to specified neutron network.")
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
default=None, default=None,
help="Share network name.") help="Share network name.")
@utils.arg( @cliutils.arg(
'--description', '--description',
metavar='<description>', metavar='<description>',
default=None, default=None,
@@ -747,27 +797,27 @@ def do_share_network_create(cs, args):
utils.print_dict(info) utils.print_dict(info)
@utils.arg( @cliutils.arg(
'share_network', 'share_network',
metavar='<share-network>', metavar='<share-network>',
help='Name or ID of share network to update.') help='Name or ID of share network to update.')
@utils.arg( @cliutils.arg(
'--neutron-net-id', '--neutron-net-id',
metavar='neutron-net-id', metavar='neutron-net-id',
default=None, default=None,
help="Neutron network id. Used to set up network for share servers.") help="Neutron network id. Used to set up network for share servers.")
@utils.arg( @cliutils.arg(
'--neutron-subnet-id', '--neutron-subnet-id',
metavar='neutron-subnet-id', metavar='neutron-subnet-id',
default=None, default=None,
help="Neutron subnet id. Used to set up network for share servers. " help="Neutron subnet id. Used to set up network for share servers. "
"This subnet should belong to specified neutron network.") "This subnet should belong to specified neutron network.")
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
default=None, default=None,
help="Share network name.") help="Share network name.")
@utils.arg( @cliutils.arg(
'--description', '--description',
metavar='<description>', metavar='<description>',
default=None, default=None,
@@ -784,7 +834,7 @@ def do_share_network_update(cs, args):
utils.print_dict(info) utils.print_dict(info)
@utils.arg( @cliutils.arg(
'share_network', 'share_network',
metavar='<share-network>', metavar='<share-network>',
help='Name or ID of the share network to show.') 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.print_dict(info)
@utils.arg( @cliutils.arg(
'--all-tenants', '--all-tenants',
dest='all_tenants', dest='all_tenants',
metavar='<0|1>', metavar='<0|1>',
@@ -804,7 +854,7 @@ def do_share_network_show(cs, args):
const=1, const=1,
default=0, default=0,
help='Display information from all tenants (Admin only).') help='Display information from all tenants (Admin only).')
@utils.arg( @cliutils.arg(
'--status', '--status',
metavar='<status>', metavar='<status>',
default=None, default=None,
@@ -821,11 +871,11 @@ def do_share_network_list(cs, args):
utils.print_list(share_networks, fields=fields) utils.print_list(share_networks, fields=fields)
@utils.arg( @cliutils.arg(
'share_network', 'share_network',
metavar='<share-network>', metavar='<share-network>',
help='Share network name or ID.') help='Share network name or ID.')
@utils.arg( @cliutils.arg(
'security_service', 'security_service',
metavar='<security-service>', metavar='<security-service>',
help='Security service to associate with.') help='Security service to associate with.')
@@ -836,11 +886,11 @@ def do_share_network_security_service_add(cs, args):
args.security_service) args.security_service)
@utils.arg( @cliutils.arg(
'share_network', 'share_network',
metavar='<share-network>', metavar='<share-network>',
help='Share network name or ID.') help='Share network name or ID.')
@utils.arg( @cliutils.arg(
'security_service', 'security_service',
metavar='<security-service>', metavar='<security-service>',
help='Security service to dissociate.') help='Security service to dissociate.')
@@ -851,7 +901,7 @@ def do_share_network_security_service_remove(cs, args):
args.security_service) args.security_service)
@utils.arg( @cliutils.arg(
'share_network', 'share_network',
metavar='<share-network>', metavar='<share-network>',
help='Share network name or ID.') 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.print_list(security_services, fields=fields)
@utils.arg( @cliutils.arg(
'share_network', 'share_network',
metavar='<share-network>', metavar='<share-network>',
help='Name or ID of share network to be deleted.') 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() _find_share_network(cs, args.share_network).delete()
@utils.arg( @cliutils.arg(
'type', 'type',
metavar='<type>', metavar='<type>',
help="Security service type: 'ldap', 'kerberos' or 'active_directory'") help="Security service type: 'ldap', 'kerberos' or 'active_directory'")
@utils.arg( @cliutils.arg(
'--dns-ip', '--dns-ip',
metavar='<dns_ip>', metavar='<dns_ip>',
default=None, default=None,
help="dns ip address used inside tenant's network") help="dns ip address used inside tenant's network")
@utils.arg( @cliutils.arg(
'--server', '--server',
metavar='<server>', metavar='<server>',
default=None, default=None,
help="security service ip address or hostname") help="security service ip address or hostname")
@utils.arg( @cliutils.arg(
'--domain', '--domain',
metavar='<domain>', metavar='<domain>',
default=None, default=None,
help="security service domain") help="security service domain")
@utils.arg( @cliutils.arg(
'--sid', '--sid',
metavar='<security identifier>', metavar='<security identifier>',
default=None, default=None,
help="security service user or group used by tenant") help="security service user or group used by tenant")
@utils.arg( @cliutils.arg(
'--password', '--password',
metavar='<password>', metavar='<password>',
default=None, default=None,
help="password used by sid") help="password used by sid")
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
default=None, default=None,
help="security service name") help="security service name")
@utils.arg( @cliutils.arg(
'--description', '--description',
metavar='<description>', metavar='<description>',
default=None, default=None,
@@ -928,41 +978,41 @@ def do_security_service_create(cs, args):
utils.print_dict(info) utils.print_dict(info)
@utils.arg( @cliutils.arg(
'security_service', 'security_service',
metavar='<security-service>', metavar='<security-service>',
help='Security service to update.') help='Security service to update.')
@utils.arg( @cliutils.arg(
'--dns-ip', '--dns-ip',
metavar='<dns-ip>', metavar='<dns-ip>',
default=None, default=None,
help="dns ip address used inside tenant's network") help="dns ip address used inside tenant's network")
@utils.arg( @cliutils.arg(
'--server', '--server',
metavar='<server>', metavar='<server>',
default=None, default=None,
help="security service ip address or hostname") help="security service ip address or hostname")
@utils.arg( @cliutils.arg(
'--domain', '--domain',
metavar='<domain>', metavar='<domain>',
default=None, default=None,
help="security service domain") help="security service domain")
@utils.arg( @cliutils.arg(
'--sid', '--sid',
metavar='<security identifier>', metavar='<security identifier>',
default=None, default=None,
help="security service user or group used by tenant") help="security service user or group used by tenant")
@utils.arg( @cliutils.arg(
'--password', '--password',
metavar='<password>', metavar='<password>',
default=None, default=None,
help="password used by sid") help="password used by sid")
@utils.arg( @cliutils.arg(
'--name', '--name',
metavar='<name>', metavar='<name>',
default=None, default=None,
help="security service name") help="security service name")
@utils.arg( @cliutils.arg(
'--description', '--description',
metavar='<description>', metavar='<description>',
default=None, default=None,
@@ -982,7 +1032,7 @@ def do_security_service_update(cs, args):
utils.print_dict(info) utils.print_dict(info)
@utils.arg( @cliutils.arg(
'security_service', 'security_service',
metavar='<security-service>', metavar='<security-service>',
help='Security service to show.') help='Security service to show.')
@@ -993,7 +1043,7 @@ def do_security_service_show(cs, args):
utils.print_dict(info) utils.print_dict(info)
@utils.arg( @cliutils.arg(
'--all-tenants', '--all-tenants',
dest='all_tenants', dest='all_tenants',
metavar='<0|1>', metavar='<0|1>',
@@ -1002,7 +1052,7 @@ def do_security_service_show(cs, args):
const=1, const=1,
default=0, default=0,
help='Display information from all tenants (Admin only).') help='Display information from all tenants (Admin only).')
@utils.arg( @cliutils.arg(
'--status', '--status',
metavar='<status>', metavar='<status>',
default=None, default=None,
@@ -1019,7 +1069,7 @@ def do_security_service_list(cs, args):
utils.print_list(security_services, fields=fields) utils.print_list(security_services, fields=fields)
@utils.arg( @cliutils.arg(
'security_service', 'security_service',
metavar='<security-service>', metavar='<security-service>',
help='Security service to delete.') help='Security service to delete.')
@@ -1028,22 +1078,22 @@ def do_security_service_delete(cs, args):
cs.security_services.delete(args.security_service) cs.security_services.delete(args.security_service)
@utils.arg( @cliutils.arg(
'--host', '--host',
metavar='<hostname>', metavar='<hostname>',
default=None, default=None,
help='Filter results by name of host.') help='Filter results by name of host.')
@utils.arg( @cliutils.arg(
'--status', '--status',
metavar='<status>', metavar='<status>',
default=None, default=None,
help='Filter results by status.') help='Filter results by status.')
@utils.arg( @cliutils.arg(
'--share-network', '--share-network',
metavar='<share_network>', metavar='<share_network>',
default=None, default=None,
help='Filter results by share network.') help='Filter results by share network.')
@utils.arg( @cliutils.arg(
'--project-id', '--project-id',
metavar='<project_id>', metavar='<project_id>',
default=None, default=None,
@@ -1068,7 +1118,7 @@ def do_share_server_list(cs, args):
utils.print_list(share_servers, fields=fields) utils.print_list(share_servers, fields=fields)
@utils.arg( @cliutils.arg(
'id', 'id',
metavar='<id>', metavar='<id>',
type=str, type=str,
@@ -1083,7 +1133,7 @@ def do_share_server_show(cs, args):
utils.print_dict(share_server._info) utils.print_dict(share_server._info)
@utils.arg( @cliutils.arg(
'id', 'id',
metavar='<id>', metavar='<id>',
type=str, type=str,
@@ -1094,7 +1144,7 @@ def do_share_server_details(cs, args):
utils.print_dict(details._info) utils.print_dict(details._info)
@utils.arg( @cliutils.arg(
'id', 'id',
metavar='<id>', metavar='<id>',
type=str, type=str,
@@ -1104,27 +1154,27 @@ def do_share_server_delete(cs, args):
cs.share_servers.delete(args.id) cs.share_servers.delete(args.id)
@utils.arg( @cliutils.arg(
'--host', '--host',
metavar='<hostname>', metavar='<hostname>',
default=None, default=None,
help='Name of host.') help='Name of host.')
@utils.arg( @cliutils.arg(
'--binary', '--binary',
metavar='<binary>', metavar='<binary>',
default=None, default=None,
help='Service binary.') help='Service binary.')
@utils.arg( @cliutils.arg(
'--status', '--status',
metavar='<status>', metavar='<status>',
default=None, default=None,
help='Filter results by status') help='Filter results by status')
@utils.arg( @cliutils.arg(
'--state', '--state',
metavar='<state>', metavar='<state>',
default=None, default=None,
help='Filter results by state') help='Filter results by state')
@utils.arg( @cliutils.arg(
'--zone', '--zone',
metavar='<zone>', metavar='<zone>',
default=None, default=None,
@@ -1178,7 +1228,8 @@ def do_extra_specs_list(cs, args):
_print_type_and_extra_specs_list(vtypes) _print_type_and_extra_specs_list(vtypes)
@utils.arg('name', @cliutils.arg(
'name',
metavar='<name>', metavar='<name>',
help="Name of the new volume type") help="Name of the new volume type")
@cliutils.service_type('share') @cliutils.service_type('share')
@@ -1188,7 +1239,8 @@ def do_type_create(cs, args):
_print_volume_type_list([vtype]) _print_volume_type_list([vtype])
@utils.arg('id', @cliutils.arg(
'id',
metavar='<id>', metavar='<id>',
help="Name or ID of the volume type to delete") help="Name or ID of the volume type to delete")
@cliutils.service_type('share') @cliutils.service_type('share')
@@ -1198,14 +1250,17 @@ def do_type_delete(cs, args):
cs.volume_types.delete(volume_type) cs.volume_types.delete(volume_type)
@utils.arg('vtype', @cliutils.arg(
'vtype',
metavar='<vtype>', metavar='<vtype>',
help="Name or ID of the volume type") help="Name or ID of the volume type")
@utils.arg('action', @cliutils.arg(
'action',
metavar='<action>', metavar='<action>',
choices=['set', 'unset'], choices=['set', 'unset'],
help="Actions: 'set' or 'unset'") help="Actions: 'set' or 'unset'")
@utils.arg('metadata', @cliutils.arg(
'metadata',
metavar='<key=value>', metavar='<key=value>',
nargs='*', nargs='*',
default=None, default=None,