diff --git a/watcher/conf/__init__.py b/watcher/conf/__init__.py index 846107419..ec8a48fab 100644 --- a/watcher/conf/__init__.py +++ b/watcher/conf/__init__.py @@ -22,6 +22,7 @@ from oslo_config import cfg from watcher.conf import api from watcher.conf import applier from watcher.conf import db +from watcher.conf import decision_engine from watcher.conf import exception from watcher.conf import paths from watcher.conf import planner @@ -38,3 +39,4 @@ exception.register_opts(CONF) db.register_opts(CONF) planner.register_opts(CONF) applier.register_opts(CONF) +decision_engine.register_opts(CONF) diff --git a/watcher/conf/_opts.py b/watcher/conf/_opts.py index af0d7e9b6..c036c8baa 100644 --- a/watcher/conf/_opts.py +++ b/watcher/conf/_opts.py @@ -22,12 +22,11 @@ from watcher.common import clients from watcher.conf import api as conf_api from watcher.conf import applier as conf_applier from watcher.conf import db +from watcher.conf import decision_engine as conf_de from watcher.conf import exception from watcher.conf import paths from watcher.conf import planner as conf_planner from watcher.conf import utils -from watcher.decision_engine.audit import continuous -from watcher.decision_engine import manager as decision_engine_manager def list_opts(): @@ -40,11 +39,11 @@ def list_opts(): utils.UTILS_OPTS)), ('api', conf_api.API_SERVICE_OPTS), ('database', db.SQL_OPTS), - ('watcher_decision_engine', - (decision_engine_manager.WATCHER_DECISION_ENGINE_OPTS + - continuous.WATCHER_CONTINUOUS_OPTS)), ('watcher_planner', conf_planner.WATCHER_PLANNER_OPTS), ('watcher_applier', conf_applier.APPLIER_MANAGER_OPTS), + ('watcher_decision_engine', + (conf_de.WATCHER_DECISION_ENGINE_OPTS + + conf_de.WATCHER_CONTINUOUS_OPTS)), ('nova_client', clients.NOVA_CLIENT_OPTS), ('glance_client', clients.GLANCE_CLIENT_OPTS), ('cinder_client', clients.CINDER_CLIENT_OPTS), diff --git a/watcher/conf/decision_engine.py b/watcher/conf/decision_engine.py new file mode 100644 index 000000000..4ff90da22 --- /dev/null +++ b/watcher/conf/decision_engine.py @@ -0,0 +1,64 @@ +# -*- encoding: utf-8 -*- +# Copyright (c) 2015 Intel Corp +# +# Authors: Prudhvi Rao Shedimbi +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from oslo_config import cfg + + +watcher_decision_engine = cfg.OptGroup(name='watcher_decision_engine', + title='Defines the parameters of ' + 'the module decision engine') + +WATCHER_DECISION_ENGINE_OPTS = [ + cfg.StrOpt('conductor_topic', + default='watcher.decision.control', + help='The topic name used for ' + 'control events, this topic ' + 'used for RPC calls'), + cfg.ListOpt('notification_topics', + default=['versioned_notifications', 'watcher_notifications'], + help='The topic names from which notification events ' + 'will be listened to'), + cfg.StrOpt('publisher_id', + default='watcher.decision.api', + help='The identifier used by the Watcher ' + 'module on the message broker'), + cfg.IntOpt('max_workers', + default=2, + required=True, + help='The maximum number of threads that can be used to ' + 'execute strategies'), +] + +WATCHER_CONTINUOUS_OPTS = [ + cfg.IntOpt('continuous_audit_interval', + default=10, + help='Interval (in seconds) for checking newly created ' + 'continuous audits.') +] + + +def register_opts(conf): + conf.register_group(watcher_decision_engine) + conf.register_opts(WATCHER_DECISION_ENGINE_OPTS, + group=watcher_decision_engine) + conf.register_opts(WATCHER_CONTINUOUS_OPTS, group=watcher_decision_engine) + + +def list_opts(): + return [('watcher_decision_engine', WATCHER_DECISION_ENGINE_OPTS), + ('watcher_decision_engine', WATCHER_CONTINUOUS_OPTS)] diff --git a/watcher/decision_engine/audit/continuous.py b/watcher/decision_engine/audit/continuous.py index 046d1833f..92441d989 100644 --- a/watcher/decision_engine/audit/continuous.py +++ b/watcher/decision_engine/audit/continuous.py @@ -1,5 +1,6 @@ # -*- encoding: utf-8 -*- # Copyright (c) 2016 Servionica LTD +# Copyright (c) 2016 Intel Corp # # Authors: Alexander Chadin # @@ -21,22 +22,13 @@ import datetime from apscheduler.schedulers import background -from oslo_config import cfg - from watcher.common import context from watcher.decision_engine.audit import base from watcher import objects -CONF = cfg.CONF +from watcher import conf -WATCHER_CONTINUOUS_OPTS = [ - cfg.IntOpt('continuous_audit_interval', - default=10, - help='Interval (in seconds) for checking newly created ' - 'continuous audits.') -] - -CONF.register_opts(WATCHER_CONTINUOUS_OPTS, 'watcher_decision_engine') +CONF = conf.CONF class ContinuousAuditHandler(base.AuditHandler): diff --git a/watcher/decision_engine/manager.py b/watcher/decision_engine/manager.py index 4162d2767..7655d32b3 100644 --- a/watcher/decision_engine/manager.py +++ b/watcher/decision_engine/manager.py @@ -1,5 +1,6 @@ # -*- encoding: utf-8 -*- # Copyright (c) 2015 b<>com +# Copyright (c) 2016 Intel Corp # # Authors: Jean-Emile DARTOIS # @@ -36,40 +37,13 @@ of :ref:`Actions ` which are scheduled in time by the See :doc:`../architecture` for more details on this component. """ -from oslo_config import cfg - from watcher.common import service_manager from watcher.decision_engine.messaging import audit_endpoint from watcher.decision_engine.model.collector import manager +from watcher import conf -CONF = cfg.CONF - -WATCHER_DECISION_ENGINE_OPTS = [ - cfg.StrOpt('conductor_topic', - default='watcher.decision.control', - help='The topic name used for ' - 'control events, this topic ' - 'used for RPC calls'), - cfg.ListOpt('notification_topics', - default=['versioned_notifications', 'watcher_notifications'], - help='The topic names from which notification events ' - 'will be listened to'), - cfg.StrOpt('publisher_id', - default='watcher.decision.api', - help='The identifier used by the Watcher ' - 'module on the message broker'), - cfg.IntOpt('max_workers', - default=2, - required=True, - help='The maximum number of threads that can be used to ' - 'execute strategies'), -] -decision_engine_opt_group = cfg.OptGroup(name='watcher_decision_engine', - title='Defines the parameters of ' - 'the module decision engine') -CONF.register_group(decision_engine_opt_group) -CONF.register_opts(WATCHER_DECISION_ENGINE_OPTS, decision_engine_opt_group) +CONF = conf.CONF class DecisionEngineManager(service_manager.ServiceManager): diff --git a/watcher/decision_engine/rpcapi.py b/watcher/decision_engine/rpcapi.py index a23c0f253..23deec603 100644 --- a/watcher/decision_engine/rpcapi.py +++ b/watcher/decision_engine/rpcapi.py @@ -1,5 +1,6 @@ # -*- encoding: utf-8 -*- # Copyright (c) 2015 b<>com +# Copyright (c) 2016 Intel Corp # # Authors: Jean-Emile DARTOIS # @@ -17,20 +18,14 @@ # limitations under the License. # -from oslo_config import cfg - from watcher.common import exception from watcher.common import service from watcher.common import service_manager from watcher.common import utils -from watcher.decision_engine import manager +from watcher import conf -CONF = cfg.CONF - -CONF.register_group(manager.decision_engine_opt_group) -CONF.register_opts(manager.WATCHER_DECISION_ENGINE_OPTS, - manager.decision_engine_opt_group) +CONF = conf.CONF class DecisionEngineAPI(service.Service):