Add cache for get_microversion() against Nova
Actions "Lock" and "Unlock" of instance on instances table are calling api.nova.is_feature_available() to check if the feature is supported by current Nova server. Unfortunately, the function get_microversion() called by is_feature_available() is not cached, which is causing about 40 unnecesary REST API calls. If the Nova's version is under Mitaka, it could be even worse, about 80 unnecesary API calls, see openstack_dashboard/api/nova.py#L60 and novaclient/v2/versions.py#L47 for more details. Closes-Bug: #1721423 Change-Id: Ie96b1a35e379d4cf407bfd53b1ee734178f9cb07
This commit is contained in:
parent
9adb636437
commit
fa2e8327b9
@ -57,6 +57,7 @@ INSECURE = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
|
||||
CACERT = getattr(settings, 'OPENSTACK_SSL_CACERT', None)
|
||||
|
||||
|
||||
@memoized
|
||||
def get_microversion(request, feature):
|
||||
client = novaclient(request)
|
||||
min_ver, max_ver = api_versions._get_server_version_range(client)
|
||||
|
Loading…
x
Reference in New Issue
Block a user