A Solution is the result of execution of a
strategy (i.e., an algorithm).
Each solution is composed of many pieces of information:
- A set of actions generated by the strategy in
order to achieve the goal of an associated
audit.
- A set of efficacy indicators as
defined by the associated goal
- A global efficacy which is computed by the
associated goal using the aforementioned efficacy indicators.
A Solution is different from an
Action Plan because it contains the
non-scheduled list of Actions which is produced by a
Strategy. In other words, the list of Actions in
a Solution has not yet been re-ordered by the
Watcher Planner.
Note that some algorithms (i.e. Strategies) may
generate several Solutions. This gives rise to the
problem of determining which Solution should be
applied.
Two approaches to dealing with this can be envisaged:
-
class watcher.decision_engine.solution.base.BaseSolution(goal, strategy)[source]
Bases: object
-
add_action(action_type, resource_id, input_parameters=None)[source]
Add a new Action in the Solution
Parameters: |
- action_type – the unique id of an action type defined in
entry point ‘watcher_actions’
- resource_id – the unique id of the resource to which the
Action applies.
- input_parameters – An array of input parameters provided as
key-value pairs of strings. Each key-pair contains names and
values that match what was previously defined in the Action
type schema.
|
-
compute_global_efficacy()[source]
Compute the global efficacy given a map of efficacy indicators
-
set_efficacy_indicators(**indicators_map)[source]
Set the efficacy indicators mapping (no validation)
Parameters: | indicators_map (dict {str: object}) – mapping between the indicator name and its value |