From 430b38dc57c59fa25e50df7ac6bc238aede4f4df Mon Sep 17 00:00:00 2001 From: Fei Long Wang Date: Tue, 17 Nov 2015 15:14:31 +1300 Subject: [PATCH] Add support for flavor list v1 Change-Id: I10881b22cbca581f4da335939559fd76ecf44f1f --- setup.cfg | 1 + zaqarclient/queues/v1/cli.py | 40 +++++++++++++++++++++++++++++++++ zaqarclient/queues/v1/flavor.py | 7 +++--- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/setup.cfg b/setup.cfg index e9b02a7b..505b7d66 100644 --- a/setup.cfg +++ b/setup.cfg @@ -61,6 +61,7 @@ openstack.messaging.v1 = pool_update = zaqarclient.queues.v1.cli:UpdatePool pool_delete = zaqarclient.queues.v1.cli:DeletePool pool_list = zaqarclient.queues.v1.cli:ListPools + messaging_flavor_list = zaqarclient.queues.v1.cli:ListFlavors messaging_flavor_delete = zaqarclient.queues.v1.cli:DeleteFlavor messaging_flavor_update = zaqarclient.queues.v1.cli:UpdateFlavor messaging_flavor_show = zaqarclient.queues.v1.cli:ShowFlavor diff --git a/zaqarclient/queues/v1/cli.py b/zaqarclient/queues/v1/cli.py index d7e66f3a..f5900cf8 100644 --- a/zaqarclient/queues/v1/cli.py +++ b/zaqarclient/queues/v1/cli.py @@ -479,3 +479,43 @@ class ShowFlavor(show.ShowOne): auto_create=False).get() columns = ('Name', 'Pool', 'Capabilities') return columns, utils.get_dict_properties(flavor_data, columns) + + +class ListFlavors(lister.Lister): + """List available flavors""" + + log = logging.getLogger(__name__ + ".ListFlavors") + + def get_parser(self, prog_name): + parser = super(ListFlavors, self).get_parser(prog_name) + parser.add_argument( + "--marker", + metavar="", + help="Flavor's paging marker") + parser.add_argument( + "--limit", + metavar="", + help="Page size limit") + parser.add_argument( + "--detailed", + type=bool, + default=False, + metavar="", + help="If show detailed capabilities of flavor") + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)" % parsed_args) + + client = self.app.client_manager.messaging + + kwargs = {'detailed': parsed_args.detailed} + if parsed_args.marker is not None: + kwargs["marker"] = parsed_args.marker + if parsed_args.limit is not None: + kwargs["limit"] = parsed_args.limit + + data = client.flavors(**kwargs) + columns = ("Name", 'Pool', 'Capabilities') + return (columns, + (utils.get_item_properties(s, columns) for s in data)) diff --git a/zaqarclient/queues/v1/flavor.py b/zaqarclient/queues/v1/flavor.py index 9a1e3b74..0b69bc27 100644 --- a/zaqarclient/queues/v1/flavor.py +++ b/zaqarclient/queues/v1/flavor.py @@ -21,12 +21,12 @@ class Flavor(object): def __init__(self, client, name, pool=None, auto_create=True, - **capabilities): + **kwargs): self.client = client self.name = name self.pool = pool - self.capabilities = capabilities + self.capabilities = kwargs.get('capabilities', {}) if auto_create: self.ensure_exists() @@ -69,4 +69,5 @@ class Flavor(object): def create_object(parent): - return lambda args: Flavor(parent, args["name"], auto_create=False) + return lambda kwargs: Flavor(parent, kwargs.pop('name'), + auto_create=False, **kwargs)