notifier: move from alarm to top-level
Also move some options for the REST notifier from the alarm group to the default one. Change-Id: Ic6ae4677ec0968ddf58e68eaf06f59204f52d56b
This commit is contained in:
parent
ca8f0cc24a
commit
795bdb80b6
@ -16,8 +16,8 @@
|
||||
|
||||
from oslo_log import log
|
||||
|
||||
from aodh.alarm import notifier
|
||||
from aodh.i18n import _
|
||||
from aodh import notifier
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
|
@ -22,33 +22,37 @@ from oslo_serialization import jsonutils
|
||||
import requests
|
||||
import six.moves.urllib.parse as urlparse
|
||||
|
||||
from aodh.alarm import notifier
|
||||
from aodh.i18n import _
|
||||
from aodh import notifier
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
OPTS = [
|
||||
cfg.StrOpt('rest_notifier_certificate_file',
|
||||
default='',
|
||||
deprecated_group="alarm",
|
||||
help='SSL Client certificate for REST notifier.'
|
||||
),
|
||||
cfg.StrOpt('rest_notifier_certificate_key',
|
||||
default='',
|
||||
deprecated_group="alarm",
|
||||
help='SSL Client private key for REST notifier.'
|
||||
),
|
||||
cfg.BoolOpt('rest_notifier_ssl_verify',
|
||||
default=True,
|
||||
deprecated_group="alarm",
|
||||
help='Whether to verify the SSL Server certificate when '
|
||||
'calling alarm action.'
|
||||
),
|
||||
cfg.IntOpt('rest_notifier_max_retries',
|
||||
default=0,
|
||||
deprecated_group="alarm",
|
||||
help='Number of retries for REST notifier',
|
||||
),
|
||||
|
||||
]
|
||||
|
||||
cfg.CONF.register_opts(OPTS, group="alarm")
|
||||
cfg.CONF.register_opts(OPTS)
|
||||
|
||||
|
||||
class RestAlarmNotifier(notifier.AlarmNotifier):
|
||||
@ -78,14 +82,14 @@ class RestAlarmNotifier(notifier.AlarmNotifier):
|
||||
'headers': headers}
|
||||
|
||||
if action.scheme == 'https':
|
||||
default_verify = int(cfg.CONF.alarm.rest_notifier_ssl_verify)
|
||||
default_verify = int(cfg.CONF.rest_notifier_ssl_verify)
|
||||
options = urlparse.parse_qs(action.query)
|
||||
verify = bool(int(options.get('aodh-alarm-ssl-verify',
|
||||
[default_verify])[-1]))
|
||||
kwargs['verify'] = verify
|
||||
|
||||
cert = cfg.CONF.alarm.rest_notifier_certificate_file
|
||||
key = cfg.CONF.alarm.rest_notifier_certificate_key
|
||||
cert = cfg.CONF.rest_notifier_certificate_file
|
||||
key = cfg.CONF.rest_notifier_certificate_key
|
||||
if cert:
|
||||
kwargs['cert'] = (cert, key) if key else cert
|
||||
|
||||
@ -93,7 +97,7 @@ class RestAlarmNotifier(notifier.AlarmNotifier):
|
||||
# library. However, there's no interval between retries in urllib3
|
||||
# implementation. It will be better to put some interval between
|
||||
# retries (future work).
|
||||
max_retries = cfg.CONF.alarm.rest_notifier_max_retries
|
||||
max_retries = cfg.CONF.rest_notifier_max_retries
|
||||
session = requests.Session()
|
||||
session.mount(action.geturl(),
|
||||
requests.adapters.HTTPAdapter(max_retries=max_retries))
|
@ -14,7 +14,7 @@
|
||||
# under the License.
|
||||
"""Test alarm notifier."""
|
||||
|
||||
from aodh.alarm import notifier
|
||||
from aodh import notifier
|
||||
|
||||
|
||||
class TestAlarmNotifier(notifier.AlarmNotifier):
|
@ -16,8 +16,8 @@
|
||||
|
||||
from six.moves.urllib import parse
|
||||
|
||||
from aodh.alarm.notifier import rest
|
||||
from aodh import keystone_client
|
||||
from aodh.notifier import rest
|
||||
|
||||
|
||||
class TrustRestAlarmNotifier(rest.RestAlarmNotifier):
|
@ -13,11 +13,11 @@
|
||||
# under the License.
|
||||
import itertools
|
||||
|
||||
import aodh.alarm.notifier.rest
|
||||
import aodh.api
|
||||
import aodh.api.app
|
||||
import aodh.api.controllers.v2.alarms
|
||||
import aodh.coordination
|
||||
import aodh.notifier.rest
|
||||
import aodh.rpc
|
||||
import aodh.service
|
||||
import aodh.storage
|
||||
@ -27,12 +27,12 @@ def list_opts():
|
||||
return [
|
||||
('DEFAULT',
|
||||
itertools.chain(aodh.api.app.OPTS,
|
||||
aodh.notifier.rest.OPTS,
|
||||
aodh.service.OPTS,
|
||||
aodh.rpc.OPTS,
|
||||
aodh.storage.OLD_OPTS,)),
|
||||
('alarm',
|
||||
itertools.chain(aodh.alarm.notifier.rest.OPTS,
|
||||
aodh.alarm.evaluator.gnocchi.OPTS,
|
||||
itertools.chain(aodh.alarm.evaluator.gnocchi.OPTS,
|
||||
aodh.api.controllers.v2.alarms.ALARM_API_OPTS)),
|
||||
('api',
|
||||
itertools.chain(aodh.api.OPTS,
|
||||
|
@ -221,7 +221,7 @@ class AlarmEvaluationService(AlarmService, os_service.Service):
|
||||
|
||||
|
||||
class AlarmNotifierService(os_service.Service):
|
||||
NOTIFIER_EXTENSIONS_NAMESPACE = "aodh.alarm.notifier"
|
||||
NOTIFIER_EXTENSIONS_NAMESPACE = "aodh.notifier"
|
||||
|
||||
def __init__(self):
|
||||
super(AlarmNotifierService, self).__init__()
|
||||
|
@ -127,8 +127,7 @@ class TestAlarmNotifier(tests_base.BaseTestCase):
|
||||
action = 'https://host/action'
|
||||
certificate = "/etc/ssl/cert/whatever.pem"
|
||||
|
||||
self.CONF.set_override("rest_notifier_certificate_file", certificate,
|
||||
group='alarm')
|
||||
self.CONF.set_override("rest_notifier_certificate_file", certificate)
|
||||
|
||||
with mock.patch('eventlet.spawn_n', self._fake_spawn_n):
|
||||
with mock.patch.object(requests.Session, 'post') as poster:
|
||||
@ -146,10 +145,8 @@ class TestAlarmNotifier(tests_base.BaseTestCase):
|
||||
certificate = "/etc/ssl/cert/whatever.pem"
|
||||
key = "/etc/ssl/cert/whatever.key"
|
||||
|
||||
self.CONF.set_override("rest_notifier_certificate_file", certificate,
|
||||
group='alarm')
|
||||
self.CONF.set_override("rest_notifier_certificate_key", key,
|
||||
group='alarm')
|
||||
self.CONF.set_override("rest_notifier_certificate_file", certificate)
|
||||
self.CONF.set_override("rest_notifier_certificate_key", key)
|
||||
|
||||
with mock.patch('eventlet.spawn_n', self._fake_spawn_n):
|
||||
with mock.patch.object(requests.Session, 'post') as poster:
|
||||
@ -165,8 +162,7 @@ class TestAlarmNotifier(tests_base.BaseTestCase):
|
||||
def test_notify_alarm_rest_action_with_ssl_verify_disable_by_cfg(self):
|
||||
action = 'https://host/action'
|
||||
|
||||
self.CONF.set_override("rest_notifier_ssl_verify", False,
|
||||
group='alarm')
|
||||
self.CONF.set_override("rest_notifier_ssl_verify", False)
|
||||
|
||||
with mock.patch('eventlet.spawn_n', self._fake_spawn_n):
|
||||
with mock.patch.object(requests.Session, 'post') as poster:
|
||||
@ -196,8 +192,7 @@ class TestAlarmNotifier(tests_base.BaseTestCase):
|
||||
def test_notify_alarm_rest_action_with_ssl_verify_enable_by_user(self):
|
||||
action = 'https://host/action?aodh-alarm-ssl-verify=1'
|
||||
|
||||
self.CONF.set_override("rest_notifier_ssl_verify", False,
|
||||
group='alarm')
|
||||
self.CONF.set_override("rest_notifier_ssl_verify", False)
|
||||
|
||||
with mock.patch('eventlet.spawn_n', self._fake_spawn_n):
|
||||
with mock.patch.object(requests.Session, 'post') as poster:
|
@ -263,7 +263,7 @@ function start_aodh {
|
||||
fi
|
||||
fi
|
||||
|
||||
run_process aodh-alarm-notifier "$AODH_BIN_DIR/aodh-alarm-notifier --config-file $AODH_CONF"
|
||||
run_process aodh-notifier "$AODH_BIN_DIR/aodh-notifier --config-file $AODH_CONF"
|
||||
run_process aodh-alarm-evaluator "$AODH_BIN_DIR/aodh-alarm-evaluator --config-file $AODH_CONF"
|
||||
}
|
||||
|
||||
@ -274,7 +274,7 @@ function stop_aodh {
|
||||
restart_apache_server
|
||||
fi
|
||||
# Kill the aodh screen windows
|
||||
for serv in aodh-api aodh-alarm-notifier aodh-alarm-evaluator; do
|
||||
for serv in aodh-api aodh-notifier aodh-alarm-evaluator; do
|
||||
stop_process $serv
|
||||
done
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
# API service
|
||||
enable_service aodh-api
|
||||
# Alarming
|
||||
enable_service aodh-alarm-notifier aodh-alarm-evaluator
|
||||
enable_service aodh-notifier aodh-alarm-evaluator
|
||||
# Ensure legacy ceilometer alarm stuffs is disabled
|
||||
disable_service ceilometer-alarm-notifier ceilometer-alarm-evaluator
|
||||
|
||||
|
@ -45,7 +45,7 @@ Configuring devstack
|
||||
[[local|localrc]]
|
||||
|
||||
# Enable the aodh alarming services
|
||||
enable_service aodh-alarm-evaluator,aodh-alarm-notifier
|
||||
enable_service aodh-alarm-evaluator,aodh-notifier
|
||||
|
||||
The first group of daemons are necessary for core aodh functionality:
|
||||
polling, event listening, and data collection.
|
||||
|
16
setup.cfg
16
setup.cfg
@ -49,20 +49,20 @@ aodh.alarm.evaluator =
|
||||
gnocchi_aggregation_by_metrics_threshold = aodh.alarm.evaluator.gnocchi:GnocchiThresholdEvaluator
|
||||
gnocchi_aggregation_by_resources_threshold = aodh.alarm.evaluator.gnocchi:GnocchiThresholdEvaluator
|
||||
|
||||
aodh.alarm.notifier =
|
||||
log = aodh.alarm.notifier.log:LogAlarmNotifier
|
||||
test = aodh.alarm.notifier.test:TestAlarmNotifier
|
||||
http = aodh.alarm.notifier.rest:RestAlarmNotifier
|
||||
https = aodh.alarm.notifier.rest:RestAlarmNotifier
|
||||
trust+http = aodh.alarm.notifier.trust:TrustRestAlarmNotifier
|
||||
trust+https = aodh.alarm.notifier.trust:TrustRestAlarmNotifier
|
||||
aodh.notifier =
|
||||
log = aodh.notifier.log:LogAlarmNotifier
|
||||
test = aodh.notifier.test:TestAlarmNotifier
|
||||
http = aodh.notifier.rest:RestAlarmNotifier
|
||||
https = aodh.notifier.rest:RestAlarmNotifier
|
||||
trust+http = aodh.notifier.trust:TrustRestAlarmNotifier
|
||||
trust+https = aodh.notifier.trust:TrustRestAlarmNotifier
|
||||
|
||||
console_scripts =
|
||||
aodh-api = aodh.cmd.api:main
|
||||
aodh-dbsync = aodh.cmd.eventlet.storage:dbsync
|
||||
aodh-expirer = aodh.cmd.eventlet.storage:expirer
|
||||
aodh-alarm-evaluator = aodh.cmd.eventlet.alarm:evaluator
|
||||
aodh-alarm-notifier = aodh.cmd.eventlet.alarm:notifier
|
||||
aodh-notifier = aodh.cmd.eventlet.alarm:notifier
|
||||
|
||||
oslo.config.opts =
|
||||
aodh = aodh.opts:list_opts
|
||||
|
Loading…
x
Reference in New Issue
Block a user