Update the QUOTA_SERVICES config to be a region mapping
QUOTA_SERVICES is better setup as dict of region > services so you can control which services are active in which region. Change-Id: I84d547fa87f8e2281638c1c93c18fb34e1d3d430
This commit is contained in:
parent
f5be57b1ab
commit
fa6256ddb3
@ -133,15 +133,22 @@ class QuotaManager(object):
|
|||||||
# TODO(amelia): Try to find out which endpoints are available and get
|
# TODO(amelia): Try to find out which endpoints are available and get
|
||||||
# the non enabled ones out of the list
|
# the non enabled ones out of the list
|
||||||
|
|
||||||
# Check configured removal of quota updaters
|
self.default_helpers = dict(self._quota_updaters)
|
||||||
self.helpers = dict(self._quota_updaters)
|
self.helpers = {}
|
||||||
|
|
||||||
# Configurable services
|
|
||||||
if settings.QUOTA_SERVICES:
|
if settings.QUOTA_SERVICES:
|
||||||
self.helpers = {}
|
all_regions = settings.QUOTA_SERVICES.pop('*', None)
|
||||||
for name in settings.QUOTA_SERVICES:
|
if all_regions:
|
||||||
if name in self._quota_updaters:
|
self.default_helpers = {}
|
||||||
self.helpers[name] = self._quota_updaters[name]
|
for service in all_regions:
|
||||||
|
if service in self._quota_updaters:
|
||||||
|
self.default_helpers[service] = \
|
||||||
|
self._quota_updaters[service]
|
||||||
|
|
||||||
|
for region in settings.QUOTA_SERVICES:
|
||||||
|
for service in region:
|
||||||
|
if service in self._quota_updaters:
|
||||||
|
self.helpers[service] = self._quota_updaters[service]
|
||||||
|
|
||||||
self.project_id = project_id
|
self.project_id = project_id
|
||||||
self.size_diff_threshold = (size_difference_threshold or
|
self.size_diff_threshold = (size_difference_threshold or
|
||||||
@ -149,7 +156,9 @@ class QuotaManager(object):
|
|||||||
|
|
||||||
def get_current_region_quota(self, region_id):
|
def get_current_region_quota(self, region_id):
|
||||||
current_quota = {}
|
current_quota = {}
|
||||||
for name, service in self.helpers.items():
|
|
||||||
|
region_helpers = self.helpers.get(region_id, self.default_helpers)
|
||||||
|
for name, service in region_helpers.items():
|
||||||
helper = service(region_id, self.project_id)
|
helper = service(region_id, self.project_id)
|
||||||
current_quota[name] = helper.get_quota()
|
current_quota[name] = helper.get_quota()
|
||||||
|
|
||||||
@ -217,7 +226,8 @@ class QuotaManager(object):
|
|||||||
def get_current_usage(self, region_id):
|
def get_current_usage(self, region_id):
|
||||||
current_usage = {}
|
current_usage = {}
|
||||||
|
|
||||||
for name, service in self.helpers.items():
|
region_helpers = self.helpers.get(region_id, self.default_helpers)
|
||||||
|
for name, service in region_helpers.items():
|
||||||
try:
|
try:
|
||||||
helper = service(region_id, self.project_id)
|
helper = service(region_id, self.project_id)
|
||||||
current_usage[name] = helper.get_usage()
|
current_usage[name] = helper.get_usage()
|
||||||
@ -228,7 +238,8 @@ class QuotaManager(object):
|
|||||||
def set_region_quota(self, region_id, quota_dict):
|
def set_region_quota(self, region_id, quota_dict):
|
||||||
notes = []
|
notes = []
|
||||||
for service_name, values in quota_dict.items():
|
for service_name, values in quota_dict.items():
|
||||||
updater_class = self.helpers.get(service_name)
|
updater_class = self.helpers.get(
|
||||||
|
region_id, self.default_helpers).get(service_name)
|
||||||
if not updater_class:
|
if not updater_class:
|
||||||
notes.append("No quota updater found for %s. Ignoring" %
|
notes.append("No quota updater found for %s. Ignoring" %
|
||||||
service_name)
|
service_name)
|
||||||
|
@ -192,8 +192,10 @@ ACTIVE_TASKVIEWS = CONFIG.get(
|
|||||||
])
|
])
|
||||||
|
|
||||||
# Default services for which to check and update quotas for
|
# Default services for which to check and update quotas for
|
||||||
QUOTA_SERVICES = CONFIG.get('QUOTA_SERVICES',
|
QUOTA_SERVICES = CONFIG.get(
|
||||||
['cinder', 'neutron', 'nova'])
|
'QUOTA_SERVICES',
|
||||||
|
{'*': ['cinder', 'neutron', 'nova']})
|
||||||
|
|
||||||
|
|
||||||
# Dict of TaskViews and their url_paths.
|
# Dict of TaskViews and their url_paths.
|
||||||
# - This is populated by registering taskviews.
|
# - This is populated by registering taskviews.
|
||||||
|
@ -384,7 +384,7 @@ PROJECT_QUOTA_SIZES = {
|
|||||||
|
|
||||||
QUOTA_SIZES_ASC = ['small', 'medium', 'large']
|
QUOTA_SIZES_ASC = ['small', 'medium', 'large']
|
||||||
|
|
||||||
QUOTA_SERVICES = ['neutron', 'nova', 'cinder']
|
QUOTA_SERVICES = {'*': ['cinder', 'neutron', 'nova']}
|
||||||
|
|
||||||
SHOW_ACTION_ENDPOINTS = True
|
SHOW_ACTION_ENDPOINTS = True
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user