Merge scoring base files
Merge scoring_engine.py and scoring_container.py to base.py Change-Id: I5cada2c9f7832827c1bccfdea1b0a2138b18bfc9 Closes-Bug: #1617376
This commit is contained in:
parent
3ed44383ab
commit
6e8dc5297e
|
@ -95,3 +95,32 @@ class ScoringEngine(loadable.Loadable):
|
|||
:rtype: list of :class:`oslo_config.cfg.Opt` instances
|
||||
"""
|
||||
return []
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class ScoringEngineContainer(loadable.Loadable):
|
||||
"""A base class for all the Scoring Engines Containers.
|
||||
|
||||
A Scoring Engine Container is an abstraction which allows to plugin
|
||||
multiple Scoring Engines as a single Stevedore plugin. This enables some
|
||||
more advanced scenarios like dynamic reloading of Scoring Engine
|
||||
implementations without having to restart any Watcher services.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
@abc.abstractmethod
|
||||
def get_scoring_engine_list(self):
|
||||
"""Returns a list of Scoring Engine instances.
|
||||
|
||||
:return: A list of Scoring Engine instances
|
||||
:rtype: :class: `~.scoring_engine.ScoringEngine`
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def get_config_opts(cls):
|
||||
"""Defines the configuration options to be associated to this loadable
|
||||
|
||||
:return: A list of configuration options relative to this Loadable
|
||||
:rtype: list of :class:`oslo_config.cfg.Opt` instances
|
||||
"""
|
||||
return []
|
|
@ -22,12 +22,12 @@ from oslo_serialization import jsonutils
|
|||
from oslo_utils import units
|
||||
|
||||
from watcher._i18n import _
|
||||
from watcher.decision_engine.scoring import scoring_engine
|
||||
from watcher.decision_engine.scoring import base
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
class DummyScorer(scoring_engine.ScoringEngine):
|
||||
class DummyScorer(base.ScoringEngine):
|
||||
"""Sample Scoring Engine implementing simplified workload classification.
|
||||
|
||||
Typically a scoring engine would be implemented using machine learning
|
||||
|
|
|
@ -21,13 +21,12 @@ from oslo_log import log
|
|||
from oslo_serialization import jsonutils
|
||||
|
||||
from watcher._i18n import _
|
||||
from watcher.decision_engine.scoring import scoring_container
|
||||
from watcher.decision_engine.scoring import scoring_engine
|
||||
from watcher.decision_engine.scoring import base
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
class DummyScoringContainer(scoring_container.ScoringEngineContainer):
|
||||
class DummyScoringContainer(base.ScoringEngineContainer):
|
||||
"""Sample Scoring Engine container returning a list of scoring engines.
|
||||
|
||||
Please note that it can be used in dynamic scenarios and the returned list
|
||||
|
@ -55,7 +54,7 @@ class DummyScoringContainer(scoring_container.ScoringEngineContainer):
|
|||
]
|
||||
|
||||
|
||||
class SimpleFunctionScorer(scoring_engine.ScoringEngine):
|
||||
class SimpleFunctionScorer(base.ScoringEngine):
|
||||
"""A simple generic scoring engine for demonstration purposes only.
|
||||
|
||||
A generic scoring engine implementation, which is expecting a JSON
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
# Copyright (c) 2016 Intel
|
||||
#
|
||||
# Authors: Tomasz Kaczynski <tomasz.kaczynski@intel.com>
|
||||
#
|
||||
# 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.
|
||||
|
||||
import abc
|
||||
import six
|
||||
|
||||
from watcher.common.loader import loadable
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class ScoringEngineContainer(loadable.Loadable):
|
||||
"""A base class for all the Scoring Engines Containers.
|
||||
|
||||
A Scoring Engine Container is an abstraction which allows to plugin
|
||||
multiple Scoring Engines as a single Stevedore plugin. This enables some
|
||||
more advanced scenarios like dynamic reloading of Scoring Engine
|
||||
implementations without having to restart any Watcher services.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
@abc.abstractmethod
|
||||
def get_scoring_engine_list(self):
|
||||
"""Returns a list of Scoring Engine instances.
|
||||
|
||||
:return: A list of Scoring Engine instances
|
||||
:rtype: :class: `~.scoring_engine.ScoringEngine`
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def get_config_opts(cls):
|
||||
"""Defines the configuration options to be associated to this loadable
|
||||
|
||||
:return: A list of configuration options relative to this Loadable
|
||||
:rtype: list of :class:`oslo_config.cfg.Opt` instances
|
||||
"""
|
||||
return []
|
Loading…
Reference in New Issue