Merge "Clean and reorganize the API config options"
This commit is contained in:
commit
b72a247b4f
@ -19,11 +19,19 @@ from oslo_config import cfg
|
|||||||
OPTS = [
|
OPTS = [
|
||||||
cfg.PortOpt('port',
|
cfg.PortOpt('port',
|
||||||
default=8042,
|
default=8042,
|
||||||
deprecated_group='DEFAULT',
|
|
||||||
help='The port for the aodh API server.',
|
help='The port for the aodh API server.',
|
||||||
),
|
),
|
||||||
cfg.StrOpt('host',
|
cfg.StrOpt('host',
|
||||||
default='0.0.0.0',
|
default='0.0.0.0',
|
||||||
help='The listen IP for the aodh API server.',
|
help='The listen IP for the aodh API server.',
|
||||||
),
|
),
|
||||||
|
cfg.StrOpt('paste_config',
|
||||||
|
default="api_paste.ini",
|
||||||
|
help="Configuration file for WSGI definition of API."),
|
||||||
|
cfg.IntOpt('workers', default=1,
|
||||||
|
min=1,
|
||||||
|
help='Number of workers for aodh API server.'),
|
||||||
|
cfg.BoolOpt('pecan_debug',
|
||||||
|
default=False,
|
||||||
|
help='Toggle Pecan Debug Middleware.'),
|
||||||
]
|
]
|
||||||
|
@ -54,13 +54,16 @@ LOG = log.getLogger(__name__)
|
|||||||
|
|
||||||
ALARM_API_OPTS = [
|
ALARM_API_OPTS = [
|
||||||
cfg.IntOpt('user_alarm_quota',
|
cfg.IntOpt('user_alarm_quota',
|
||||||
|
deprecated_group='DEFAULT',
|
||||||
help='Maximum number of alarms defined for a user.'
|
help='Maximum number of alarms defined for a user.'
|
||||||
),
|
),
|
||||||
cfg.IntOpt('project_alarm_quota',
|
cfg.IntOpt('project_alarm_quota',
|
||||||
|
deprecated_group='DEFAULT',
|
||||||
help='Maximum number of alarms defined for a project.'
|
help='Maximum number of alarms defined for a project.'
|
||||||
),
|
),
|
||||||
cfg.IntOpt('alarm_max_actions',
|
cfg.IntOpt('alarm_max_actions',
|
||||||
default=-1,
|
default=-1,
|
||||||
|
deprecated_group='DEFAULT',
|
||||||
help='Maximum count of actions for each state of an alarm, '
|
help='Maximum count of actions for each state of an alarm, '
|
||||||
'non-positive number means no limit.'),
|
'non-positive number means no limit.'),
|
||||||
]
|
]
|
||||||
@ -93,14 +96,14 @@ def is_over_quota(conn, project_id, user_id):
|
|||||||
over_quota = False
|
over_quota = False
|
||||||
|
|
||||||
# Start by checking for user quota
|
# Start by checking for user quota
|
||||||
user_alarm_quota = pecan.request.cfg.user_alarm_quota
|
user_alarm_quota = pecan.request.cfg.api.user_alarm_quota
|
||||||
if user_alarm_quota is not None:
|
if user_alarm_quota is not None:
|
||||||
user_alarms = list(conn.get_alarms(user=user_id))
|
user_alarms = list(conn.get_alarms(user=user_id))
|
||||||
over_quota = len(user_alarms) >= user_alarm_quota
|
over_quota = len(user_alarms) >= user_alarm_quota
|
||||||
|
|
||||||
# If the user quota isn't reached, we check for the project quota
|
# If the user quota isn't reached, we check for the project quota
|
||||||
if not over_quota:
|
if not over_quota:
|
||||||
project_alarm_quota = pecan.request.cfg.project_alarm_quota
|
project_alarm_quota = pecan.request.cfg.api.project_alarm_quota
|
||||||
if project_alarm_quota is not None:
|
if project_alarm_quota is not None:
|
||||||
project_alarms = list(conn.get_alarms(project=project_id))
|
project_alarms = list(conn.get_alarms(project=project_id))
|
||||||
over_quota = len(project_alarms) >= project_alarm_quota
|
over_quota = len(project_alarms) >= project_alarm_quota
|
||||||
@ -305,7 +308,7 @@ class Alarm(base.Base):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def check_alarm_actions(alarm):
|
def check_alarm_actions(alarm):
|
||||||
max_actions = pecan.request.cfg.alarm_max_actions
|
max_actions = pecan.request.cfg.api.alarm_max_actions
|
||||||
for state in state_kind:
|
for state in state_kind:
|
||||||
actions_name = state.replace(" ", "_") + '_actions'
|
actions_name = state.replace(" ", "_") + '_actions'
|
||||||
actions = getattr(alarm, actions_name)
|
actions = getattr(alarm, actions_name)
|
||||||
|
22
aodh/opts.py
22
aodh/opts.py
@ -14,7 +14,6 @@
|
|||||||
import itertools
|
import itertools
|
||||||
|
|
||||||
from keystoneauth1 import loading
|
from keystoneauth1 import loading
|
||||||
from oslo_config import cfg
|
|
||||||
|
|
||||||
import aodh.api
|
import aodh.api
|
||||||
import aodh.api.controllers.v2.alarms
|
import aodh.api.controllers.v2.alarms
|
||||||
@ -38,28 +37,11 @@ def list_opts():
|
|||||||
aodh.evaluator.event.OPTS,
|
aodh.evaluator.event.OPTS,
|
||||||
aodh.notifier.rest.OPTS,
|
aodh.notifier.rest.OPTS,
|
||||||
aodh.queue.OPTS,
|
aodh.queue.OPTS,
|
||||||
aodh.service.OPTS,
|
aodh.service.OPTS)),
|
||||||
aodh.api.controllers.v2.alarms.ALARM_API_OPTS)),
|
|
||||||
('api',
|
('api',
|
||||||
itertools.chain(
|
itertools.chain(
|
||||||
aodh.api.OPTS,
|
aodh.api.OPTS,
|
||||||
[
|
aodh.api.controllers.v2.alarms.ALARM_API_OPTS)),
|
||||||
cfg.StrOpt(
|
|
||||||
'paste_config',
|
|
||||||
deprecated_name='api_paste_config',
|
|
||||||
deprecated_group='DEFAULT',
|
|
||||||
default="api_paste.ini",
|
|
||||||
help="Configuration file for WSGI definition of API."),
|
|
||||||
cfg.IntOpt(
|
|
||||||
'workers', default=1,
|
|
||||||
deprecated_name='api_workers',
|
|
||||||
deprecated_group='DEFAULT',
|
|
||||||
min=1,
|
|
||||||
help='Number of workers for aodh API server.'),
|
|
||||||
cfg.BoolOpt('pecan_debug',
|
|
||||||
default=False,
|
|
||||||
help='Toggle Pecan Debug Middleware.'),
|
|
||||||
])),
|
|
||||||
('coordination', aodh.coordination.OPTS),
|
('coordination', aodh.coordination.OPTS),
|
||||||
('database', aodh.storage.OPTS),
|
('database', aodh.storage.OPTS),
|
||||||
('evaluator', aodh.service.EVALUATOR_OPTS),
|
('evaluator', aodh.service.EVALUATOR_OPTS),
|
||||||
|
@ -1219,7 +1219,7 @@ class TestAlarms(TestAlarmsBase):
|
|||||||
self.assertEqual(['http://no.where'], alarms[0].alarm_actions)
|
self.assertEqual(['http://no.where'], alarms[0].alarm_actions)
|
||||||
|
|
||||||
def test_post_alarm_with_too_many_actions(self):
|
def test_post_alarm_with_too_many_actions(self):
|
||||||
self.CONF.set_override('alarm_max_actions', 1)
|
self.CONF.set_override('alarm_max_actions', 1, group='api')
|
||||||
body = {
|
body = {
|
||||||
'name': 'alarm-with-many-actions',
|
'name': 'alarm-with-many-actions',
|
||||||
'type': 'combination',
|
'type': 'combination',
|
||||||
@ -2109,31 +2109,31 @@ class TestAlarmsQuotas(TestAlarmsBase):
|
|||||||
self.assertEqual(1, len(alarms))
|
self.assertEqual(1, len(alarms))
|
||||||
|
|
||||||
def test_alarms_quotas(self):
|
def test_alarms_quotas(self):
|
||||||
self.CONF.set_override('user_alarm_quota', 1)
|
self.CONF.set_override('user_alarm_quota', 1, 'api')
|
||||||
self.CONF.set_override('project_alarm_quota', 1)
|
self.CONF.set_override('project_alarm_quota', 1, 'api')
|
||||||
self._test_alarm_quota()
|
self._test_alarm_quota()
|
||||||
|
|
||||||
def test_project_alarms_quotas(self):
|
def test_project_alarms_quotas(self):
|
||||||
self.CONF.set_override('project_alarm_quota', 1)
|
self.CONF.set_override('project_alarm_quota', 1, 'api')
|
||||||
self._test_alarm_quota()
|
self._test_alarm_quota()
|
||||||
|
|
||||||
def test_user_alarms_quotas(self):
|
def test_user_alarms_quotas(self):
|
||||||
self.CONF.set_override('user_alarm_quota', 1)
|
self.CONF.set_override('user_alarm_quota', 1, 'api')
|
||||||
self._test_alarm_quota()
|
self._test_alarm_quota()
|
||||||
|
|
||||||
def test_larger_limit_project_alarms_quotas(self):
|
def test_larger_limit_project_alarms_quotas(self):
|
||||||
self.CONF.set_override('user_alarm_quota', 1)
|
self.CONF.set_override('user_alarm_quota', 1, 'api')
|
||||||
self.CONF.set_override('project_alarm_quota', 2)
|
self.CONF.set_override('project_alarm_quota', 2, 'api')
|
||||||
self._test_alarm_quota()
|
self._test_alarm_quota()
|
||||||
|
|
||||||
def test_larger_limit_user_alarms_quotas(self):
|
def test_larger_limit_user_alarms_quotas(self):
|
||||||
self.CONF.set_override('user_alarm_quota', 2)
|
self.CONF.set_override('user_alarm_quota', 2, 'api')
|
||||||
self.CONF.set_override('project_alarm_quota', 1)
|
self.CONF.set_override('project_alarm_quota', 1, 'api')
|
||||||
self._test_alarm_quota()
|
self._test_alarm_quota()
|
||||||
|
|
||||||
def test_larger_limit_user_alarm_quotas_multitenant_user(self):
|
def test_larger_limit_user_alarm_quotas_multitenant_user(self):
|
||||||
self.CONF.set_override('user_alarm_quota', 2)
|
self.CONF.set_override('user_alarm_quota', 2, 'api')
|
||||||
self.CONF.set_override('project_alarm_quota', 1)
|
self.CONF.set_override('project_alarm_quota', 1, 'api')
|
||||||
|
|
||||||
def _test(field, value):
|
def _test(field, value):
|
||||||
query = [{
|
query = [{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user