From c593f975614317b447fc94582db09afd82a957cb Mon Sep 17 00:00:00 2001 From: Fei Long Wang Date: Tue, 24 Nov 2015 14:31:05 +1300 Subject: [PATCH] Add cli support for flavor update v1 Change-Id: I89d6749fc4e483f78510bc0a95fd52c7eb3929ec --- setup.cfg | 1 + zaqarclient/queues/v1/cli.py | 38 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/setup.cfg b/setup.cfg index 18340005..62748e54 100644 --- a/setup.cfg +++ b/setup.cfg @@ -62,6 +62,7 @@ openstack.messaging.v1 = pool_delete = zaqarclient.queues.v1.cli:DeletePool pool_list = zaqarclient.queues.v1.cli:ListPools messaging_flavor_delete = zaqarclient.queues.v1.cli:DeleteFlavor + messaging_flavor_update = zaqarclient.queues.v1.cli:UpdateFlavor openstack.cli.extension = messaging = zaqarclient.queues.cli diff --git a/zaqarclient/queues/v1/cli.py b/zaqarclient/queues/v1/cli.py index d3095c29..5162a0f0 100644 --- a/zaqarclient/queues/v1/cli.py +++ b/zaqarclient/queues/v1/cli.py @@ -401,6 +401,44 @@ class ListPools(lister.Lister): (utils.get_item_properties(s, columns) for s in data)) +class UpdateFlavor(show.ShowOne): + """Update a flavor's attributes""" + + log = logging.getLogger(__name__+".UpdateFlavor") + + def get_parser(self, prog_name): + parser = super(UpdateFlavor, self).get_parser(prog_name) + parser.add_argument( + "flavor_name", + metavar="", + help="Name of the flavor") + parser.add_argument( + "--pool_group", + metavar="", + help="Pool group the flavor sits on") + parser.add_argument( + "--capabilities", + metavar="", + type=json.loads, + help="Describes flavor-specific capabilities.") + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)" % parsed_args) + client = self.app.client_manager.messaging + kwargs = {} + if parsed_args.pool_group: + kwargs['pool'] = parsed_args.pool_group + if parsed_args.capabilities: + kwargs['capabilities'] = json.loads(parsed_args.capabilities) + + flavor = client.flavor(parsed_args.flavor_name, auto_create=False) + columns = ('Name', 'Pool', 'Capabilities') + flavor.update(kwargs) + flavor_data = flavor.get() + return columns, utils.get_dict_properties(flavor_data, columns) + + class DeleteFlavor(command.Command): """Delete a flavor"""