summaryrefslogtreecommitdiff
path: root/openstackclient/common/commandmanager.py
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2013-12-03 17:24:40 -0600
committerDean Troyer <dtroyer@gmail.com>2013-12-03 17:40:54 -0600
commit74a27056b346e04dbad91fd632045223b16ef6ec (patch)
treece7da0e871c3c72c5ffc6fe675596196077f9a45 /openstackclient/common/commandmanager.py
parent5dcc3b6164fea72c236ec339938c0117b2330bb6 (diff)
downloadpython-openstackclient-74a27056b346e04dbad91fd632045223b16ef6ec.tar.gz
Update OSC's CommandManager subclass
cliff.commandmanager.CommandManager gained an option, update openstackclient.common.commandmanager.ComamndManager to match. Also add CommandManager.get_command_groups() to return a list of the currently loaded command groups. I expect this to be useful in upcoming client diagnostic commands for plugins/extensions. If these turn out to be generally useful we'll propose them to upstream cliff. Change-Id: Ic15a7ca0ef975ca679e753be861be7c628b8e10c
Diffstat (limited to 'openstackclient/common/commandmanager.py')
-rw-r--r--openstackclient/common/commandmanager.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/openstackclient/common/commandmanager.py b/openstackclient/common/commandmanager.py
index 06073d93..553bc920 100644
--- a/openstackclient/common/commandmanager.py
+++ b/openstackclient/common/commandmanager.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2013 OpenStack, LLC.
+# Copyright 2012-2013 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
@@ -28,15 +28,29 @@ class CommandManager(cliff.commandmanager.CommandManager):
"""Alters Cliff's default CommandManager behaviour to load additional
command groups after initialization.
"""
+ def __init__(self, namespace, convert_underscores=True):
+ self.group_list = []
+ super(CommandManager, self).__init__(namespace, convert_underscores)
+
def _load_commands(self, group=None):
if not group:
group = self.namespace
+ self.group_list.append(group)
for ep in pkg_resources.iter_entry_points(group):
LOG.debug('found command %r' % ep.name)
- self.commands[ep.name.replace('_', ' ')] = ep
+ cmd_name = (
+ ep.name.replace('_', ' ')
+ if self.convert_underscores
+ else ep.name
+ )
+ self.commands[cmd_name] = ep
return
def add_command_group(self, group=None):
"""Adds another group of command entrypoints"""
if group:
self._load_commands(group)
+
+ def get_command_groups(self):
+ """Returns a list of the loaded command groups"""
+ return self.group_list