From 32a847e28b6bc675d03a34919f7572fc41b8407d Mon Sep 17 00:00:00 2001 From: digambar Date: Fri, 3 Jul 2015 13:50:21 +0530 Subject: [PATCH] Implements CLI for pool Partially-Implements: blueprint cli Change-Id: I79c7a1f9fef0b793c0a811e9adba4767b55c58c5 --- setup.cfg | 1 + zaqarclient/queues/v1/cli.py | 46 ++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/setup.cfg b/setup.cfg index 1f103e27..5d4aecea 100644 --- a/setup.cfg +++ b/setup.cfg @@ -52,6 +52,7 @@ openstack.messaging.v1 = queue_set_metadata = zaqarclient.queues.v1.cli:SetQueueMetadata queue_get_metadata = zaqarclient.queues.v1.cli:GetQueueMetadata queue_stats = zaqarclient.queues.v1.cli:GetQueueStats + pool_create = zaqarclient.queues.v1.cli:CreatePool openstack.cli.extension = messaging = zaqarclient.queues.cli diff --git a/zaqarclient/queues/v1/cli.py b/zaqarclient/queues/v1/cli.py index 954260b9..f906d30d 100644 --- a/zaqarclient/queues/v1/cli.py +++ b/zaqarclient/queues/v1/cli.py @@ -225,3 +225,49 @@ class GetQueueStats(show.ShowOne): columns = ("Stats",) data = dict(stats=queue.stats) return columns, utils.get_dict_properties(data, columns) + + +class CreatePool(show.ShowOne): + """Create a pool.""" + + log = logging.getLogger(__name__ + ".CreatePool") + + def get_parser(self, prog_name): + parser = super(CreatePool, self).get_parser(prog_name) + parser.add_argument( + "pool_name", + metavar="", + help="Name of the pool") + parser.add_argument( + "pool_uri", + metavar="", + help="Storage engine URI") + parser.add_argument( + "pool_weight", + metavar="", + help="weight of the pool") + parser.add_argument( + "pool_group", + metavar="", + help="Group of the pool") + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)" % parsed_args) + + client = self.app.client_manager.messaging + + args = { + parsed_args.name, + parsed_args.uri, + parsed_args.weight, + parsed_args.group, + } + pool_name = parsed_args.pool_name + data = client.pool(args, auto_create=False) + + if not data.exists(): + raise RuntimeError('Pool(%s) does not exist.' % pool_name) + + columns = ('Name',) + return columns, utils.get_item_properties(data, columns)