# Path: magnumclient/common/cliutils.py
# DEPRECATION_BASE = ('%sThe --%s parameter is deprecated and '
#                     'will be removed in a future release. Use the '
#                     '<%s> positional parameter %s.')
# NAME_DEPRECATION_HELP = DEPRECATION_BASE % ('', 'name', 'name', 'instead')
# NAME_DEPRECATION_WARNING = DEPRECATION_BASE % (
#     'WARNING: ', 'name', 'name', 'to avoid seeing this message')
# CLUSTER_DEPRECATION_HELP = DEPRECATION_BASE % ('', 'cluster', 'cluster',
#                                                'instead')
# CLUSTER_DEPRECATION_WARNING = DEPRECATION_BASE % (
#     'WARNING: ', 'cluster', 'cluster', 'to avoid seeing this message')
# MAGNUM_CLIENT_DEPRECATION_WARNING = (
#     'WARNING: The magnum client is deprecated and will be removed in a future '
#     'release.\nUse the OpenStack client to avoid seeing this message.')
# def deprecation_message(preamble, new_name):
#     def __init__(self, missing):
#     def __init__(self, param, dupes):
# def validate_args(fn, *args, **kwargs):
#     def isbound(method):
# def validate_name_args(positional_name, optional_name):
# def validate_cluster_args(positional_cluster, optional_cluster):
# def deprecated(message):
#     def wrapper(func, *args, **kwargs):
# def deprecation_map(dep_map):
#     def _decorator(func):
# def arg(*args, **kwargs):
#     def _decorator(func):
# def env(*args, **kwargs):
# def add_arg(func, *args, **kwargs):
# def unauthenticated(func):
# def isunauthenticated(func):
# def print_list(objs, fields, formatters=None, sortby_index=0,
#                mixed_case_fields=None, field_labels=None):
# def keys_and_vals_to_strs(dictionary):
#     def to_str(k_or_v):
# def print_dict(dct, dict_property="Property", wrap=0):
# def get_password(max_password_prompts=3):
# def service_type(stype):
#     def inner(f):
# def get_service_type(f):
# def pretty_choice_list(lst):
# def exit(msg=''):
# def _format_field_name(attr):
# def make_field_formatter(attr, filters=None):
#     def get_field(obj):
# def _get_list_table_columns_and_formatters(fields, objs, exclude_fields=(),
#                                            filters=None):
# class MissingArgs(Exception):
# class DuplicateArgs(Exception):
# 
# Path: magnumclient/common/utils.py
# def common_filters(marker=None, limit=None, sort_key=None, sort_dir=None):
# def split_and_deserialize(string):
# def args_array_to_patch(op, attributes):
# def handle_labels(labels):
# def format_labels(lbls, parse_comma=True):
# def print_list_field(field):
# def handle_json_from_file(json_arg):
# def config_cluster(cluster, cluster_template, cfg_dir, force=False,
#                    certs=None, use_keystone=False):
# def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir,
#                                force=False, certs=None, use_keystone=False):
# def _config_cluster_swarm(cluster, cluster_template, cfg_dir,
#                           force=False, certs=None):
# def generate_csr_and_key():
# 
# Path: magnumclient/exceptions.py
# class AmbiguousAuthSystem(exceptions.ClientException):
# class InvalidAttribute(exceptions.ClientException):
# def from_response(response, message=None, traceback=None, method=None,
#                   url=None):
# 
# Path: magnumclient/i18n.py



import os
from magnumclient.common import cliutils as utils
from magnumclient.common import utils as magnum_utils
from magnumclient import exceptions
from magnumclient.i18n import _
                cluster._info['clustertemplate_' + key] = \
                    cluster_template._info[key]
    _show_cluster(cluster)


@utils.arg('cluster', metavar='<cluster>', help=_("UUID or name of cluster"))
@utils.arg('--rollback',
           action='store_true', default=False,
           help=_('Rollback cluster on update failure.'))
@utils.arg(
    'op',
    metavar='<op>',
    choices=['add', 'replace', 'remove'],
    help=_("Operations: 'add', 'replace' or 'remove'"))
@utils.arg(
    'attributes',
    metavar='<path=value>',
    nargs='+',
    action='append',
    default=[],
    help=_("Attributes to add/replace or remove "
           "(only PATH is necessary on remove)"))
@utils.deprecated(utils.MAGNUM_CLIENT_DEPRECATION_WARNING)
def do_cluster_update(cs, args):
    """Update information about the given cluster."""
    if args.rollback and args.magnum_api_version and \
            args.magnum_api_version in ('1.0', '1.1', '1.2'):
        raise exceptions.CommandError(
            "Rollback is not supported in API v%s. "
            "Please use API v1.3+." % args.magnum_api_version)

# Path: magnumclient/common/cliutils.py
# DEPRECATION_BASE = ('%sThe --%s parameter is deprecated and '
#                     'will be removed in a future release. Use the '
#                     '<%s> positional parameter %s.')
# NAME_DEPRECATION_HELP = DEPRECATION_BASE % ('', 'name', 'name', 'instead')
# NAME_DEPRECATION_WARNING = DEPRECATION_BASE % (
#     'WARNING: ', 'name', 'name', 'to avoid seeing this message')
# CLUSTER_DEPRECATION_HELP = DEPRECATION_BASE % ('', 'cluster', 'cluster',
#                                                'instead')
# CLUSTER_DEPRECATION_WARNING = DEPRECATION_BASE % (
#     'WARNING: ', 'cluster', 'cluster', 'to avoid seeing this message')
# MAGNUM_CLIENT_DEPRECATION_WARNING = (
#     'WARNING: The magnum client is deprecated and will be removed in a future '
#     'release.\nUse the OpenStack client to avoid seeing this message.')
# def deprecation_message(preamble, new_name):
#     def __init__(self, missing):
#     def __init__(self, param, dupes):
# def validate_args(fn, *args, **kwargs):
#     def isbound(method):
# def validate_name_args(positional_name, optional_name):
# def validate_cluster_args(positional_cluster, optional_cluster):
# def deprecated(message):
#     def wrapper(func, *args, **kwargs):
# def deprecation_map(dep_map):
#     def _decorator(func):
# def arg(*args, **kwargs):
#     def _decorator(func):
# def env(*args, **kwargs):
# def add_arg(func, *args, **kwargs):
# def unauthenticated(func):
# def isunauthenticated(func):
# def print_list(objs, fields, formatters=None, sortby_index=0,
#                mixed_case_fields=None, field_labels=None):
# def keys_and_vals_to_strs(dictionary):
#     def to_str(k_or_v):
# def print_dict(dct, dict_property="Property", wrap=0):
# def get_password(max_password_prompts=3):
# def service_type(stype):
#     def inner(f):
# def get_service_type(f):
# def pretty_choice_list(lst):
# def exit(msg=''):
# def _format_field_name(attr):
# def make_field_formatter(attr, filters=None):
#     def get_field(obj):
# def _get_list_table_columns_and_formatters(fields, objs, exclude_fields=(),
#                                            filters=None):
# class MissingArgs(Exception):
# class DuplicateArgs(Exception):
# 
# Path: magnumclient/common/utils.py
# def common_filters(marker=None, limit=None, sort_key=None, sort_dir=None):
# def split_and_deserialize(string):
# def args_array_to_patch(op, attributes):
# def handle_labels(labels):
# def format_labels(lbls, parse_comma=True):
# def print_list_field(field):
# def handle_json_from_file(json_arg):
# def config_cluster(cluster, cluster_template, cfg_dir, force=False,
#                    certs=None, use_keystone=False):
# def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir,
#                                force=False, certs=None, use_keystone=False):
# def _config_cluster_swarm(cluster, cluster_template, cfg_dir,
#                           force=False, certs=None):
# def generate_csr_and_key():
# 
# Path: magnumclient/exceptions.py
# class AmbiguousAuthSystem(exceptions.ClientException):
# class InvalidAttribute(exceptions.ClientException):
# def from_response(response, message=None, traceback=None, method=None,
#                   url=None):
# 
# Path: magnumclient/i18n.py



# Path: magnumclient/v1/clusters_shell.py
import os
from magnumclient.common import cliutils as utils
from magnumclient.common import utils as magnum_utils
from magnumclient import exceptions
from magnumclient.i18n import _

                cluster._info['clustertemplate_' + key] = \
                    cluster_template._info[key]
    _show_cluster(cluster)


@utils.arg('cluster', metavar='<cluster>', help=_("UUID or name of cluster"))
@utils.arg('--rollback',
           action='store_true', default=False,
           help=_('Rollback cluster on update failure.'))
@utils.arg(
    'op',
    metavar='<op>',
    choices=['add', 'replace', 'remove'],
    help=_("Operations: 'add', 'replace' or 'remove'"))
@utils.arg(
    'attributes',
    metavar='<path=value>',
    nargs='+',
    action='append',
    default=[],
    help=_("Attributes to add/replace or remove "
           "(only PATH is necessary on remove)"))
@utils.deprecated(utils.MAGNUM_CLIENT_DEPRECATION_WARNING)
def do_cluster_update(cs, args):
    """Update information about the given cluster."""
    if args.rollback and args.magnum_api_version and \
            args.magnum_api_version in ('1.0', '1.1', '1.2'):
        raise exceptions.CommandError(
            "Rollback is not supported in API v%s. "
            "Please use API v1.3+." % args.magnum_api_version)

    patch = magnum_utils.args_array_to_patch(args.op, args.attributes[0])