diff --git a/setup.cfg b/setup.cfg index dcb4de3d..979c7449 100644 --- a/setup.cfg +++ b/setup.cfg @@ -57,6 +57,7 @@ openstack.messaging.v1 = queue_get_metadata = zaqarclient.queues.v1.cli:GetQueueMetadata queue_stats = zaqarclient.queues.v1.cli:GetQueueStats pool_create = zaqarclient.queues.v1.cli:CreatePool + pool_show = zaqarclient.queues.v1.cli:ShowPool messaging_flavor_delete = zaqarclient.queues.v1.cli:DeleteFlavor openstack.cli.extension = diff --git a/zaqarclient/queues/v1/cli.py b/zaqarclient/queues/v1/cli.py index 9df0822f..b79e7e6d 100644 --- a/zaqarclient/queues/v1/cli.py +++ b/zaqarclient/queues/v1/cli.py @@ -273,6 +273,29 @@ class CreatePool(show.ShowOne): return columns, utils.get_item_properties(data, columns) +class ShowPool(show.ShowOne): + """Display pool details""" + + log = logging.getLogger(__name__ + ".ShowPool") + + def get_parser(self, prog_name): + parser = super(ShowPool, self).get_parser(prog_name) + parser.add_argument( + "pool_name", + metavar="", + help="Pool to display (name)", + ) + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)", parsed_args) + client = self.app.client_manager.messaging + pool_data = client.pool(parsed_args.pool_name, + auto_create=False).get() + columns = ('Name', 'Weight', 'URI', 'Group', 'Options') + return columns, utils.get_dict_properties(pool_data, columns) + + class DeleteFlavor(command.Command): """Delete a flavor.""" diff --git a/zaqarclient/queues/v1/pool.py b/zaqarclient/queues/v1/pool.py index 88f4416d..7b8817c3 100644 --- a/zaqarclient/queues/v1/pool.py +++ b/zaqarclient/queues/v1/pool.py @@ -72,6 +72,10 @@ class Pool(object): req, trans = self.client._request_and_transport() core.pool_delete(trans, req, self.name) + def get(self): + req, trans = self.client._request_and_transport() + return core.pool_get(trans, req, self.name, callback=None) + def create_object(parent): return lambda args: Pool(parent, args["name"], auto_create=False)