diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-02-07 22:18:10 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-02-07 22:18:10 +0000 |
| commit | f432131fe7228e05d2873e93f97b7281c756eb01 (patch) | |
| tree | 6359ba679f71b486f9fa6ce31ab12d8cb7719879 /openstackclient/common | |
| parent | c086030133eb9c23aebeae8f6a4c70cd948864cb (diff) | |
| parent | fbc412e533bd7cb07c6d930e194f660e14b2319f (diff) | |
| download | python-openstackclient-f432131fe7228e05d2873e93f97b7281c756eb01.tar.gz | |
Merge "Multiple API version support"
Diffstat (limited to 'openstackclient/common')
| -rw-r--r-- | openstackclient/common/commandmanager.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/openstackclient/common/commandmanager.py b/openstackclient/common/commandmanager.py new file mode 100644 index 00000000..e366034a --- /dev/null +++ b/openstackclient/common/commandmanager.py @@ -0,0 +1,42 @@ +# Copyright 2012-2013 OpenStack, LLC. +# +# 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 +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +"""Modify Cliff's CommandManager""" + +import logging +import pkg_resources + +import cliff.commandmanager + + +LOG = logging.getLogger(__name__) + + +class CommandManager(cliff.commandmanager.CommandManager): + """Alters Cliff's default CommandManager behaviour to load additiona + command groups after initialization. + """ + def _load_commands(self, group=None): + if not group: + group = self.namespace + for ep in pkg_resources.iter_entry_points(group): + LOG.debug('found command %r' % ep.name) + self.commands[ep.name.replace('_', ' ')] = ep + return + + def add_command_group(self, group=None): + """Adds another group of command entrypoints""" + if group: + self._load_commands(group) |
