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
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',
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()

View File

@@ -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=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,7 +292,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-username',
metavar='<auth-user-name>',
default=utils.env('OS_USERNAME',
default=cliutils.env('OS_USERNAME',
'MANILA_USERNAME'),
help='Defaults to env[OS_USERNAME].')
parser.add_argument('--os_username',
@@ -301,7 +300,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-password',
metavar='<auth-password>',
default=utils.env('OS_PASSWORD',
default=cliutils.env('OS_PASSWORD',
'MANILA_PASSWORD'),
help='Defaults to env[OS_PASSWORD].')
parser.add_argument('--os_password',
@@ -309,7 +308,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-tenant-name',
metavar='<auth-tenant-name>',
default=utils.env('OS_TENANT_NAME',
default=cliutils.env('OS_TENANT_NAME',
'MANILA_PROJECT_ID'),
help='Defaults to env[OS_TENANT_NAME].')
parser.add_argument('--os_tenant_name',
@@ -317,7 +316,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-tenant-id',
metavar='<auth-tenant-id>',
default=utils.env('OS_TENANT_ID',
default=cliutils.env('OS_TENANT_ID',
'MANILA_TENANT_ID'),
help='Defaults to env[OS_TENANT_ID].')
parser.add_argument('--os_tenant_id',
@@ -325,7 +324,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-auth-url',
metavar='<auth-url>',
default=utils.env('OS_AUTH_URL',
default=cliutils.env('OS_AUTH_URL',
'MANILA_URL'),
help='Defaults to env[OS_AUTH_URL].')
parser.add_argument('--os_auth_url',
@@ -333,7 +332,7 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-region-name',
metavar='<region-name>',
default=utils.env('OS_REGION_NAME',
default=cliutils.env('OS_REGION_NAME',
'MANILA_REGION_NAME'),
help='Defaults to env[OS_REGION_NAME].')
parser.add_argument('--os_region_name',
@@ -347,21 +346,21 @@ class OpenStackManilaShell(object):
parser.add_argument('--service-name',
metavar='<service-name>',
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='<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]')
parser.add_argument('--share_service_name',
help=argparse.SUPPRESS)
parser.add_argument('--endpoint-type',
metavar='<endpoint-type>',
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='<compute-api-ver>',
default=utils.env(
default=cliutils.env(
'OS_SHARE_API_VERSION',
default=DEFAULT_OS_SHARE_API_VERSION),
help='Accepts 1 or 2,defaults '
@@ -381,13 +380,13 @@ class OpenStackManilaShell(object):
parser.add_argument('--os-cacert',
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 '
'verifying a TLS (https) server certificate. '
'Defaults to env[OS_CACERT]')
parser.add_argument('--insecure',
default=utils.env('manilaclient_INSECURE',
default=cliutils.env('manilaclient_INSECURE',
default=False),
action='store_true',
help=argparse.SUPPRESS)
@@ -637,7 +636,7 @@ class OpenStackManilaShell(object):
commands.remove('bash_completion')
print(' '.join(commands | options))
@utils.arg('command', metavar='<subcommand>', nargs='?',
@cliutils.arg('command', metavar='<subcommand>', nargs='?',
help='Display help for <subcommand>')
def do_help(self, args):
"""Display help about this program or one of its subcommands."""

View File

@@ -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))

View File

@@ -145,11 +145,13 @@ def _quota_update(manager, identifier, args):
manager.update(identifier, **updates)
@utils.arg('--tenant',
@cliutils.arg(
'--tenant',
metavar='<tenant-id>',
default=None,
help='ID of tenant to list the quotas for.')
@utils.arg('--user',
@cliutils.arg(
'--user',
metavar='<user-id>',
default=None,
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))
@utils.arg('--tenant',
@cliutils.arg(
'--tenant',
metavar='<tenant-id>',
default=None,
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))
@utils.arg('tenant',
@cliutils.arg(
'tenant',
metavar='<tenant_id>',
help='UUID of tenant to set the quotas for.')
@utils.arg('--user',
@cliutils.arg(
'--user',
metavar='<user-id>',
default=None,
help='ID of user to set the quotas for.')
@utils.arg('--shares',
@cliutils.arg(
'--shares',
metavar='<shares>',
type=int, default=None,
type=int,
default=None,
help='New value for the "shares" quota.')
@utils.arg('--snapshots',
@cliutils.arg(
'--snapshots',
metavar='<snapshots>',
type=int, default=None,
type=int,
default=None,
help='New value for the "snapshots" quota.')
@utils.arg('--gigabytes',
@cliutils.arg(
'--gigabytes',
metavar='<gigabytes>',
type=int, default=None,
type=int,
default=None,
help='New value for the "gigabytes" quota.')
@utils.arg('--share-networks',
@cliutils.arg(
'--share-networks',
metavar='<share-networks>',
type=int, default=None,
type=int,
default=None,
help='New value for the "share_networks" quota.')
@utils.arg('--force',
@cliutils.arg(
'--force',
dest='force',
action="store_true",
default=None,
@@ -211,10 +225,12 @@ def do_quota_update(cs, args):
_quota_update(cs.quotas, args.tenant, args)
@utils.arg('--tenant',
@cliutils.arg(
'--tenant',
metavar='<tenant-id>',
help='ID of tenant to delete quota for.')
@utils.arg('--user',
@cliutils.arg(
'--user',
metavar='<user-id>',
help='ID of user to delete quota for.')
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)
@utils.arg('class_name',
@cliutils.arg(
'class_name',
metavar='<class>',
help='Name of quota class to list the quotas for.')
@cliutils.service_type('share')
@@ -239,24 +256,33 @@ def do_quota_class_show(cs, args):
_quota_show(cs.quota_classes.get(args.class_name))
@utils.arg('class-name',
@cliutils.arg(
'class-name',
metavar='<class-name>',
help='Name of quota class to set the quotas for.')
@utils.arg('--shares',
@cliutils.arg(
'--shares',
metavar='<shares>',
type=int, default=None,
type=int,
default=None,
help='New value for the "shares" quota.')
@utils.arg('--snapshots',
@cliutils.arg(
'--snapshots',
metavar='<snapshots>',
type=int, default=None,
type=int,
default=None,
help='New value for the "snapshots" quota.')
@utils.arg('--gigabytes',
@cliutils.arg(
'--gigabytes',
metavar='<gigabytes>',
type=int, default=None,
type=int,
default=None,
help='New value for the "gigabytes" quota.')
@utils.arg('--share-networks',
@cliutils.arg(
'--share-networks',
metavar='<share-networks>',
type=int, default=None,
type=int,
default=None,
help='New value for the "share_networks" quota.')
@cliutils.service_type('share')
def do_quota_class_update(cs, args):
@@ -281,43 +307,44 @@ def do_rate_limits(cs, args):
utils.print_list(limits, columns)
@utils.arg(
@cliutils.arg(
'share_protocol',
metavar='<share_protocol>',
type=str,
help='Share type (NFS or CIFS)')
@utils.arg(
@cliutils.arg(
'size',
metavar='<size>',
type=int,
help='Share size in GB')
@utils.arg(
@cliutils.arg(
'--snapshot-id',
metavar='<snapshot-id>',
help='Optional snapshot id to create the share from. (Default=None)',
default=None)
@utils.arg(
@cliutils.arg(
'--name',
metavar='<name>',
help='Optional share name. (Default=None)',
default=None)
@utils.arg('--metadata',
@cliutils.arg(
'--metadata',
type=str,
nargs='*',
metavar='<key=value>',
help='Metadata key=value pairs (Optional, Default=None)',
default=None)
@utils.arg(
@cliutils.arg(
'--share-network',
metavar='<network-info>',
help='Optional network info id or name',
default=None)
@utils.arg(
@cliutils.arg(
'--description',
metavar='<description>',
help='Optional share description. (Default=None)',
default=None)
@utils.arg(
@cliutils.arg(
'--volume-type',
metavar='<volume-type>',
help='Optional volume type. (Default=None)',
@@ -341,14 +368,17 @@ def do_create(cs, args):
_print_share(cs, share)
@utils.arg('share',
@cliutils.arg(
'share',
metavar='<share>',
help='Name or ID of the share to update metadata on.')
@utils.arg('action',
@cliutils.arg(
'action',
metavar='<action>',
choices=['set', 'unset'],
help="Actions: 'set' or 'unset'")
@utils.arg('metadata',
@cliutils.arg(
'metadata',
metavar='<key=value>',
nargs='+',
default=[],
@@ -365,7 +395,9 @@ def do_metadata(cs, args):
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')
@cliutils.service_type('share')
def do_metadata_show(cs, args):
@@ -375,10 +407,12 @@ def do_metadata_show(cs, args):
utils.print_dict(metadata, 'Metadata-property')
@utils.arg('share',
@cliutils.arg(
'share',
metavar='<share>',
help='Name or ID of the share to update metadata on.')
@utils.arg('metadata',
@cliutils.arg(
'metadata',
metavar='<key=value>',
nargs='+',
default=[],
@@ -392,7 +426,10 @@ def do_metadata_update_all(cs, args):
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).')
def do_delete(cs, args):
"""Removes one or more shares."""
@@ -411,7 +448,8 @@ def do_delete(cs, args):
"shares.")
@utils.arg('share',
@cliutils.arg(
'share',
metavar='<share>',
nargs='+',
help='Name or ID of share(s) to force delete.')
@@ -429,7 +467,7 @@ def do_force_delete(cs, args):
"specified shares.")
@utils.arg(
@cliutils.arg(
'share',
metavar='<share>',
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='<share>',
help='Name or ID of the NAS share to modify.')
@utils.arg(
@cliutils.arg(
'access_type',
metavar='<access_type>',
help='access rule type (only "ip" and "sid"(user or group) '
'are supported).')
@utils.arg(
@cliutils.arg(
'access_to',
metavar='<access_to>',
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='<share>',
help='Name or ID of the NAS share to modify.')
@utils.arg(
@cliutils.arg(
'id',
metavar='<id>',
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='<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.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='<name>',
default=None,
help='Filter results by name')
@utils.arg(
@cliutils.arg(
'--status',
metavar='<status>',
default=None,
help='Filter results by status')
@utils.arg(
@cliutils.arg(
'--share-server-id',
metavar='<share_server_id>',
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='<name>',
default=None,
help='Filter results by name')
@utils.arg(
@cliutils.arg(
'--status',
metavar='<status>',
default=None,
help='Filter results by status')
@utils.arg(
@cliutils.arg(
'--share-id',
metavar='<share-id>',
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='<snapshot>',
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='<share>',
help='Name or ID of the share to snapshot')
@utils.arg(
@cliutils.arg(
'--force',
metavar='<True|False>',
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='<name>',
default=None,
help='Optional snapshot name. (Default=None)')
@utils.arg(
@cliutils.arg(
'--description',
metavar='<description>',
default=None,
@@ -610,14 +648,18 @@ def do_snapshot_create(cs, args):
_print_share_snapshot(cs, snapshot)
@utils.arg('share',
@cliutils.arg(
'share',
metavar='<share>',
help='Name or ID of the share to rename.')
@utils.arg('name',
@cliutils.arg(
'name',
nargs='?',
metavar='<name>',
help='New name for the share.')
@utils.arg('--description', metavar='<description>',
@cliutils.arg(
'--description',
metavar='<description>',
help='Optional share description. (Default=None)',
default=None)
@cliutils.service_type('share')
@@ -635,14 +677,18 @@ def do_rename(cs, args):
_find_share(cs, args.share).update(**kwargs)
@utils.arg('snapshot',
@cliutils.arg(
'snapshot',
metavar='<snapshot>',
help='Name or ID of the snapshot to rename.')
@utils.arg('name',
@cliutils.arg(
'name',
nargs='?',
metavar='<name>',
help='New name for the snapshot.')
@utils.arg('--description', metavar='<description>',
@cliutils.arg(
'--description',
metavar='<description>',
help='Optional snapshot description. (Default=None)',
default=None)
@cliutils.service_type('share')
@@ -660,7 +706,7 @@ def do_snapshot_rename(cs, args):
_find_share_snapshot(cs, args.snapshot).update(**kwargs)
@utils.arg(
@cliutils.arg(
'snapshot',
metavar='<snapshot>',
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='<snapshot>',
help='Name or ID of the snapshot to force delete.')
@@ -682,9 +728,13 @@ def do_snapshot_force_delete(cs, args):
snapshot.force_delete()
@utils.arg('snapshot', metavar='<snapshot>',
@cliutils.arg(
'snapshot',
metavar='<snapshot>',
help='Name or ID of the snapshot to modify.')
@utils.arg('--state', metavar='<state>',
@cliutils.arg(
'--state',
metavar='<state>',
default='available',
help=('Indicate which state to assign the snapshot. '
'Options include available, error, creating, deleting, '
@@ -697,11 +747,11 @@ def do_snapshot_reset_state(cs, args):
snapshot.reset_state(args.state)
@utils.arg(
@cliutils.arg(
'share',
metavar='<share>',
help='Name or ID of the share to modify.')
@utils.arg(
@cliutils.arg(
'--state',
metavar='<state>',
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='<name>',
default=None,
help="Share network name.")
@utils.arg(
@cliutils.arg(
'--description',
metavar='<description>',
default=None,
@@ -747,27 +797,27 @@ def do_share_network_create(cs, args):
utils.print_dict(info)
@utils.arg(
@cliutils.arg(
'share_network',
metavar='<share-network>',
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='<name>',
default=None,
help="Share network name.")
@utils.arg(
@cliutils.arg(
'--description',
metavar='<description>',
default=None,
@@ -784,7 +834,7 @@ def do_share_network_update(cs, args):
utils.print_dict(info)
@utils.arg(
@cliutils.arg(
'share_network',
metavar='<share-network>',
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='<status>',
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='<share-network>',
help='Share network name or ID.')
@utils.arg(
@cliutils.arg(
'security_service',
metavar='<security-service>',
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='<share-network>',
help='Share network name or ID.')
@utils.arg(
@cliutils.arg(
'security_service',
metavar='<security-service>',
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='<share-network>',
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='<share-network>',
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='<type>',
help="Security service type: 'ldap', 'kerberos' or 'active_directory'")
@utils.arg(
@cliutils.arg(
'--dns-ip',
metavar='<dns_ip>',
default=None,
help="dns ip address used inside tenant's network")
@utils.arg(
@cliutils.arg(
'--server',
metavar='<server>',
default=None,
help="security service ip address or hostname")
@utils.arg(
@cliutils.arg(
'--domain',
metavar='<domain>',
default=None,
help="security service domain")
@utils.arg(
@cliutils.arg(
'--sid',
metavar='<security identifier>',
default=None,
help="security service user or group used by tenant")
@utils.arg(
@cliutils.arg(
'--password',
metavar='<password>',
default=None,
help="password used by sid")
@utils.arg(
@cliutils.arg(
'--name',
metavar='<name>',
default=None,
help="security service name")
@utils.arg(
@cliutils.arg(
'--description',
metavar='<description>',
default=None,
@@ -928,41 +978,41 @@ def do_security_service_create(cs, args):
utils.print_dict(info)
@utils.arg(
@cliutils.arg(
'security_service',
metavar='<security-service>',
help='Security service to update.')
@utils.arg(
@cliutils.arg(
'--dns-ip',
metavar='<dns-ip>',
default=None,
help="dns ip address used inside tenant's network")
@utils.arg(
@cliutils.arg(
'--server',
metavar='<server>',
default=None,
help="security service ip address or hostname")
@utils.arg(
@cliutils.arg(
'--domain',
metavar='<domain>',
default=None,
help="security service domain")
@utils.arg(
@cliutils.arg(
'--sid',
metavar='<security identifier>',
default=None,
help="security service user or group used by tenant")
@utils.arg(
@cliutils.arg(
'--password',
metavar='<password>',
default=None,
help="password used by sid")
@utils.arg(
@cliutils.arg(
'--name',
metavar='<name>',
default=None,
help="security service name")
@utils.arg(
@cliutils.arg(
'--description',
metavar='<description>',
default=None,
@@ -982,7 +1032,7 @@ def do_security_service_update(cs, args):
utils.print_dict(info)
@utils.arg(
@cliutils.arg(
'security_service',
metavar='<security-service>',
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='<status>',
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='<security-service>',
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='<hostname>',
default=None,
help='Filter results by name of host.')
@utils.arg(
@cliutils.arg(
'--status',
metavar='<status>',
default=None,
help='Filter results by status.')
@utils.arg(
@cliutils.arg(
'--share-network',
metavar='<share_network>',
default=None,
help='Filter results by share network.')
@utils.arg(
@cliutils.arg(
'--project-id',
metavar='<project_id>',
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='<id>',
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='<id>',
type=str,
@@ -1094,7 +1144,7 @@ def do_share_server_details(cs, args):
utils.print_dict(details._info)
@utils.arg(
@cliutils.arg(
'id',
metavar='<id>',
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='<hostname>',
default=None,
help='Name of host.')
@utils.arg(
@cliutils.arg(
'--binary',
metavar='<binary>',
default=None,
help='Service binary.')
@utils.arg(
@cliutils.arg(
'--status',
metavar='<status>',
default=None,
help='Filter results by status')
@utils.arg(
@cliutils.arg(
'--state',
metavar='<state>',
default=None,
help='Filter results by state')
@utils.arg(
@cliutils.arg(
'--zone',
metavar='<zone>',
default=None,
@@ -1178,7 +1228,8 @@ def do_extra_specs_list(cs, args):
_print_type_and_extra_specs_list(vtypes)
@utils.arg('name',
@cliutils.arg(
'name',
metavar='<name>',
help="Name of the new volume type")
@cliutils.service_type('share')
@@ -1188,7 +1239,8 @@ def do_type_create(cs, args):
_print_volume_type_list([vtype])
@utils.arg('id',
@cliutils.arg(
'id',
metavar='<id>',
help="Name or ID of the volume type to delete")
@cliutils.service_type('share')
@@ -1198,14 +1250,17 @@ def do_type_delete(cs, args):
cs.volume_types.delete(volume_type)
@utils.arg('vtype',
@cliutils.arg(
'vtype',
metavar='<vtype>',
help="Name or ID of the volume type")
@utils.arg('action',
@cliutils.arg(
'action',
metavar='<action>',
choices=['set', 'unset'],
help="Actions: 'set' or 'unset'")
@utils.arg('metadata',
@cliutils.arg(
'metadata',
metavar='<key=value>',
nargs='*',
default=None,