Add ability to configure extra_specs to be off
We fetch flavor extra_specs for each flavor for consistency with old behavior. However, it's costly and often just simply not needed. Query clouds.yaml for extra client settings and if "get_flavor_extra_specs" is set to false, set the default for list_flavors to false. Change-Id: Iaea1c41e8e0ae504cb080d7d37407de12be96fd1
This commit is contained in:
parent
cf54ef6b92
commit
aa58173f0d
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Adds ability to add a config setting to clouds.yaml to
|
||||||
|
disable fetching extra_specs from flavors.
|
@ -149,6 +149,12 @@ class OpenStackCloud(_normalize.Normalizer):
|
|||||||
self.secgroup_source = cloud_config.config['secgroup_source']
|
self.secgroup_source = cloud_config.config['secgroup_source']
|
||||||
self.force_ipv4 = cloud_config.force_ipv4
|
self.force_ipv4 = cloud_config.force_ipv4
|
||||||
self.strict_mode = strict
|
self.strict_mode = strict
|
||||||
|
# TODO(mordred) When os-client-config adds a "get_client_settings()"
|
||||||
|
# method to CloudConfig - remove this.
|
||||||
|
self._extra_config = cloud_config._openstack_config.get_extra_config(
|
||||||
|
'shade', {
|
||||||
|
'get_flavor_extra_specs': True,
|
||||||
|
})
|
||||||
|
|
||||||
if manager is not None:
|
if manager is not None:
|
||||||
self.manager = manager
|
self.manager = manager
|
||||||
@ -1757,12 +1763,18 @@ class OpenStackCloud(_normalize.Normalizer):
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
@_utils.cache_on_arguments()
|
@_utils.cache_on_arguments()
|
||||||
def list_flavors(self, get_extra=True):
|
def list_flavors(self, get_extra=None):
|
||||||
"""List all available flavors.
|
"""List all available flavors.
|
||||||
|
|
||||||
|
:param get_extra: Whether or not to fetch extra specs for each flavor.
|
||||||
|
Defaults to True. Default behavior value can be
|
||||||
|
overridden in clouds.yaml by setting
|
||||||
|
shade.get_extra_specs to False.
|
||||||
:returns: A list of flavor ``munch.Munch``.
|
:returns: A list of flavor ``munch.Munch``.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
if get_extra is None:
|
||||||
|
get_extra = self._extra_config['get_flavor_extra_specs']
|
||||||
with _utils.shade_exceptions("Error fetching flavor list"):
|
with _utils.shade_exceptions("Error fetching flavor list"):
|
||||||
flavors = self._normalize_flavors(
|
flavors = self._normalize_flavors(
|
||||||
self._compute_client.get(
|
self._compute_client.get(
|
||||||
|
Loading…
Reference in New Issue
Block a user