Merge "Introduce filters on listing containers"
This commit is contained in:
@@ -275,6 +275,42 @@ class ListContainer(command.Lister):
|
||||
metavar='<sort-dir>',
|
||||
choices=['desc', 'asc'],
|
||||
help='Direction to sort. "asc" or "desc".')
|
||||
parser.add_argument(
|
||||
'--name',
|
||||
metavar='<name>',
|
||||
help='List containers according to their name.')
|
||||
parser.add_argument(
|
||||
'--image',
|
||||
metavar='<image>',
|
||||
help='List containers according to their image.')
|
||||
parser.add_argument(
|
||||
'--project-id',
|
||||
metavar='<project-id>',
|
||||
help='List containers according to their project_id')
|
||||
parser.add_argument(
|
||||
'--user-id',
|
||||
metavar='<user-id>',
|
||||
help='List containers according to their user_id')
|
||||
parser.add_argument(
|
||||
'--task-state',
|
||||
metavar='<task-state>',
|
||||
help='List containers according to their task-state')
|
||||
parser.add_argument(
|
||||
'--status',
|
||||
metavar='<status>',
|
||||
help='List containers according to their Status')
|
||||
parser.add_argument(
|
||||
'--memory',
|
||||
metavar='<memory>',
|
||||
help='List containers according to their memory size in MiB')
|
||||
parser.add_argument(
|
||||
'--host',
|
||||
metavar='<host>',
|
||||
help='List containers according to their hostname')
|
||||
parser.add_argument(
|
||||
'--auto-remove',
|
||||
metavar='<auto-remove>',
|
||||
help='List conatiner whether they are auto-removed on existing')
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
@@ -285,6 +321,15 @@ class ListContainer(command.Lister):
|
||||
opts['limit'] = parsed_args.limit
|
||||
opts['sort_key'] = parsed_args.sort_key
|
||||
opts['sort_dir'] = parsed_args.sort_dir
|
||||
opts['image'] = parsed_args.image
|
||||
opts['name'] = parsed_args.name
|
||||
opts['project_id'] = parsed_args.project_id
|
||||
opts['user_id'] = parsed_args.user_id
|
||||
opts['host'] = parsed_args.host
|
||||
opts['task_state'] = parsed_args.task_state
|
||||
opts['memory'] = parsed_args.memory
|
||||
opts['auto_remove'] = parsed_args.auto_remove
|
||||
opts['status'] = parsed_args.status
|
||||
opts = zun_utils.remove_null_parms(**opts)
|
||||
containers = client.containers.list(**opts)
|
||||
for c in containers:
|
||||
|
||||
@@ -44,7 +44,7 @@ class ContainerManager(base.Manager):
|
||||
return '/v1/containers'
|
||||
|
||||
def list(self, marker=None, limit=None, sort_key=None,
|
||||
sort_dir=None, detail=False, all_projects=False):
|
||||
sort_dir=None, detail=False, all_projects=False, **kwargs):
|
||||
"""Retrieve a list of containers.
|
||||
|
||||
:param all_projects: Optional, list containers in all projects
|
||||
@@ -77,7 +77,6 @@ class ContainerManager(base.Manager):
|
||||
|
||||
filters = utils.common_filters(marker, limit, sort_key,
|
||||
sort_dir, all_projects)
|
||||
|
||||
path = ''
|
||||
if detail:
|
||||
path += 'detail'
|
||||
@@ -86,7 +85,7 @@ class ContainerManager(base.Manager):
|
||||
|
||||
if limit is None:
|
||||
return self._list(self._path(path),
|
||||
"containers")
|
||||
"containers", qparams=kwargs)
|
||||
else:
|
||||
return self._list_pagination(self._path(path),
|
||||
"containers",
|
||||
|
||||
@@ -191,6 +191,34 @@ def do_create(cs, args):
|
||||
metavar='<sort-dir>',
|
||||
choices=['desc', 'asc'],
|
||||
help='Direction to sort. "asc" or "desc".')
|
||||
@utils.arg('--name',
|
||||
metavar='<name>',
|
||||
help='List containers according to their name.')
|
||||
@utils.arg('--image',
|
||||
metavar='<image>',
|
||||
help='List containers according to their image.')
|
||||
@utils.arg('--project-id',
|
||||
metavar='<project-id>',
|
||||
help='List containers according to their Project_id')
|
||||
@utils.arg('--user-id',
|
||||
metavar='<user-id>',
|
||||
help='List containers according to their user_id')
|
||||
@utils.arg('--task-state',
|
||||
metavar='<task-state>',
|
||||
help='List containers according to their task-state')
|
||||
@utils.arg('--status',
|
||||
metavar='<status>',
|
||||
help='List containers according to their status')
|
||||
@utils.arg('--memory',
|
||||
metavar='<memory>',
|
||||
help='List containers according to their memory size in MiB')
|
||||
@utils.arg('--host',
|
||||
metavar='<host>',
|
||||
help='List containers according to their hostname')
|
||||
@utils.arg('--auto-remove',
|
||||
metavar='<auto-remove>',
|
||||
help='List container according to whether they are'
|
||||
'auto-removed on existing')
|
||||
def do_list(cs, args):
|
||||
"""Print a list of available containers."""
|
||||
opts = {}
|
||||
@@ -199,6 +227,15 @@ def do_list(cs, args):
|
||||
opts['limit'] = args.limit
|
||||
opts['sort_key'] = args.sort_key
|
||||
opts['sort_dir'] = args.sort_dir
|
||||
opts['image'] = args.image
|
||||
opts['name'] = args.name
|
||||
opts['project_id'] = args.project_id
|
||||
opts['user_id'] = args.user_id
|
||||
opts['host'] = args.host
|
||||
opts['task_state'] = args.task_state
|
||||
opts['memory'] = args.memory
|
||||
opts['auto_remove'] = args.auto_remove
|
||||
opts['status'] = args.status
|
||||
opts = zun_utils.remove_null_parms(**opts)
|
||||
containers = cs.containers.list(**opts)
|
||||
zun_utils.list_containers(containers)
|
||||
|
||||
Reference in New Issue
Block a user