Fix wrong behavior of parsing plugin service name

When the service name end with keyword "os", like: antiddos,
the parsing logic isn't suitable, that cause the service api
version specified by users don't work.

Change-Id: I5d6217c77d7cd2d2f360d78d8561261398b96685
Closes-Bug: #1658614
This commit is contained in:
Rui Chen 2017-02-06 18:49:40 +08:00 committed by Steve Martinelli
parent 083b115d09
commit e8b6a9f7be
2 changed files with 10 additions and 1 deletions

View File

@ -76,7 +76,9 @@ class OpenStackShell(shell.OpenStackShell):
# Loop through extensions to get API versions # Loop through extensions to get API versions
for mod in clientmanager.PLUGIN_MODULES: for mod in clientmanager.PLUGIN_MODULES:
default_version = getattr(mod, 'DEFAULT_API_VERSION', None) default_version = getattr(mod, 'DEFAULT_API_VERSION', None)
option = mod.API_VERSION_OPTION.replace('os_', '') # Only replace the first instance of "os", some service names will
# have "os" in their name, like: "antiddos"
option = mod.API_VERSION_OPTION.replace('os_', '', 1)
version_opt = str(self.cloud.config.get(option, default_version)) version_opt = str(self.cloud.config.get(option, default_version))
if version_opt: if version_opt:
api = mod.API_NAME api = mod.API_NAME

View File

@ -0,0 +1,7 @@
---
fixes:
- |
Fix wrong behavior of parsing plugin service name when the service name end
with keyword ``os``, like: antiddos. That cause the service api version
specified by users don't work.
[Bug `1658614 <https://bugs.launchpad.net/python-openstackclient/+bug/1658614>`_]