From d0ec604a711ff4593e4b3334ef831afe40cd2a66 Mon Sep 17 00:00:00 2001 From: xxj Date: Fri, 3 Mar 2017 16:09:18 +0800 Subject: [PATCH] Add --all-tenants option into zun list This is a patch in client side for fixing the bug. Add an option for command zun list which is --all-tenants Change-Id: I2558d4299692cab4eb7c018a83a5cb3f82abb43c Closes-Bug: #1647387 --- zunclient/common/utils.py | 6 +++++- zunclient/v1/containers.py | 7 +++++-- zunclient/v1/containers_shell.py | 5 +++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/zunclient/common/utils.py b/zunclient/common/utils.py index 6941de5d..023ac282 100644 --- a/zunclient/common/utils.py +++ b/zunclient/common/utils.py @@ -21,9 +21,11 @@ from zunclient import exceptions as exc from zunclient.i18n import _ -def common_filters(marker=None, limit=None, sort_key=None, sort_dir=None): +def common_filters(marker=None, limit=None, sort_key=None, + sort_dir=None, all_tenants=False): """Generate common filters for any list request. + :param all_tenants: list containers in all tenants or not :param marker: entity ID from which to start returning entities. :param limit: maximum number of entities to return. :param sort_key: field to use for sorting. @@ -31,6 +33,8 @@ def common_filters(marker=None, limit=None, sort_key=None, sort_dir=None): :returns: list of string filters. """ filters = [] + if all_tenants is True: + filters.append('all_tenants=1') if isinstance(limit, int): filters.append('limit=%s' % limit) if marker is not None: diff --git a/zunclient/v1/containers.py b/zunclient/v1/containers.py index 29c3b36b..faeee0f4 100644 --- a/zunclient/v1/containers.py +++ b/zunclient/v1/containers.py @@ -41,9 +41,11 @@ class ContainerManager(base.Manager): return '/v1/containers' def list(self, marker=None, limit=None, sort_key=None, - sort_dir=None, detail=False): + sort_dir=None, detail=False, all_tenants=False): """Retrieve a list of containers. + :param all_tenants: Optional, list containers in all tenants + :param marker: Optional, the UUID of a containers, eg the last containers from a previous result set. Return the next result set. @@ -70,7 +72,8 @@ class ContainerManager(base.Manager): if limit is not None: limit = int(limit) - filters = utils.common_filters(marker, limit, sort_key, sort_dir) + filters = utils.common_filters(marker, limit, sort_key, + sort_dir, all_tenants) path = '' if detail: diff --git a/zunclient/v1/containers_shell.py b/zunclient/v1/containers_shell.py index 0913484c..222e1c39 100644 --- a/zunclient/v1/containers_shell.py +++ b/zunclient/v1/containers_shell.py @@ -141,6 +141,10 @@ def do_create(cs, args): _show_container(cs.containers.create(**opts)) +@utils.arg('--all-tenants', + action="store_true", + default=False, + help='List containers in all tenants') @utils.arg('--marker', metavar='', default=None, @@ -160,6 +164,7 @@ def do_create(cs, args): def do_list(cs, args): """Print a list of available containers.""" opts = {} + opts['all_tenants'] = args.all_tenants opts['marker'] = args.marker opts['limit'] = args.limit opts['sort_key'] = args.sort_key