# Path: vitrageclient/common/utils.py
# def args_to_dict(args, attrs):
# def list2cols(cols, objs):
# def list2cols_with_rename(names_and_keys, objs):
# def get_client(obj):
# def wait_for_action_to_end(timeout, func, **kwargs):
# def find_template_with_uuid(uuid, templates):
# 
# Path: vitrageclient/exceptions.py
# class CommandError(Exception):
# class ClientException(Exception):
#     def __init__(self, code, message=None, request_id=None,
#                  url=None, method=None):
#     def __str__(self):
# def from_response(resp, url, method):


import argparse
from cliff import show
from vitrageclient.common import utils
from vitrageclient import exceptions as exc
                                 'Valid graph types: [tree, graph]')

        parser.add_argument('--all-tenants',
                            default=False,
                            dest='all_tenants',
                            action='store_true',
                            help='Shows entities of all the tenants in the '
                                 'entity graph')

        return parser

    @property
    def formatter_namespace(self):
        return 'vitrageclient.formatter.show'

    @property
    def formatter_default(self):
        return 'json'

    def take_action(self, parsed_args):
        limit = parsed_args.limit
        graph_type = parsed_args.type
        query = parsed_args.filter
        root = parsed_args.root
        all_tenants = parsed_args.all_tenants

        if graph_type == 'graph' and limit is not None and root is None:
            raise exc.CommandError("Graph-type 'graph' "
                                   "requires a 'root' with 'limit'.")


# Path: vitrageclient/common/utils.py
# def args_to_dict(args, attrs):
# def list2cols(cols, objs):
# def list2cols_with_rename(names_and_keys, objs):
# def get_client(obj):
# def wait_for_action_to_end(timeout, func, **kwargs):
# def find_template_with_uuid(uuid, templates):
# 
# Path: vitrageclient/exceptions.py
# class CommandError(Exception):
# class ClientException(Exception):
#     def __init__(self, code, message=None, request_id=None,
#                  url=None, method=None):
#     def __str__(self):
# def from_response(resp, url, method):


# Path: vitrageclient/v1/cli/topology.py
import argparse
from cliff import show
from vitrageclient.common import utils
from vitrageclient import exceptions as exc

                                 'Valid graph types: [tree, graph]')

        parser.add_argument('--all-tenants',
                            default=False,
                            dest='all_tenants',
                            action='store_true',
                            help='Shows entities of all the tenants in the '
                                 'entity graph')

        return parser

    @property
    def formatter_namespace(self):
        return 'vitrageclient.formatter.show'

    @property
    def formatter_default(self):
        return 'json'

    def take_action(self, parsed_args):
        limit = parsed_args.limit
        graph_type = parsed_args.type
        query = parsed_args.filter
        root = parsed_args.root
        all_tenants = parsed_args.all_tenants

        if graph_type == 'graph' and limit is not None and root is None:
            raise exc.CommandError("Graph-type 'graph' "
                                   "requires a 'root' with 'limit'.")


        topology = utils.get_client(self).topology.get(limit=limit,