Merge "Overlapping templates support - documentation"
This commit is contained in:
commit
e7956c2c57
@ -125,7 +125,12 @@ Ongoing Operation
|
|||||||
queries the Entity Graph for all the matching patterns in the current
|
queries the Entity Graph for all the matching patterns in the current
|
||||||
system. For each match and each associated action, a reference to the
|
system. For each match and each associated action, a reference to the
|
||||||
*do* of the action is added to the same *action collection*.
|
*do* of the action is added to the same *action collection*.
|
||||||
6. Given all the actions (do & undo) in the *action collection*, perform them
|
6. Given all the actions (do & undo) in the *action collection*, analyze
|
||||||
|
the dependencies between themselves, as well as between them and currently
|
||||||
|
active actions. The result of this analysis will be a new collection of
|
||||||
|
actions comprised of the correct actions to perform. See below in the
|
||||||
|
'Dealing with Overlapping Scenarios'_ Section.
|
||||||
|
7. Given all the actions (do & undo) in the *action collection*, perform them
|
||||||
using action executor.
|
using action executor.
|
||||||
|
|
||||||
- Currently, the only action filtering is avoiding performing the same
|
- Currently, the only action filtering is avoiding performing the same
|
||||||
@ -156,11 +161,33 @@ It is possible that this late activation of the evaluator will be removed or
|
|||||||
changed once we move to a persistent graph database for the Entity Graph in
|
changed once we move to a persistent graph database for the Entity Graph in
|
||||||
future version.
|
future version.
|
||||||
|
|
||||||
Limitations / Next Steps
|
|
||||||
========================
|
|
||||||
|
|
||||||
- Need to check for contradictions between actions, i.e., setting different
|
Dealing with Overlapping Scenarios
|
||||||
states for the same element.
|
----------------------------------
|
||||||
- Currently there is no support for ensuring that if an "undo" is to be
|
|
||||||
activated, there is no "do" that contradicts it and maintains the current
|
There can be multiple Vitrage scenarios loaded in a specific system, some of
|
||||||
state (e.g., deduced alarm active).
|
which might overlap in their targets. For example, two scenarios might have a
|
||||||
|
"set_state" action, with identical or different states, for the same resource.
|
||||||
|
We need to deal with such overlaps.
|
||||||
|
Currently, the goal is to support overlap of the same action type with itself,
|
||||||
|
specifically the following use cases, which correspond to the three actions
|
||||||
|
Vitrage supports at this point:
|
||||||
|
|
||||||
|
- *set_state:* Two scenarios setting the state of the same resource
|
||||||
|
- *raise_alarm:* Two scenarios raising the same deduced alarm (with possibly
|
||||||
|
different severity)
|
||||||
|
- *add_causal_relationship:* Two scenarios adding the same causal relationship
|
||||||
|
|
||||||
|
For all of these, the desired behavior is to choose the *dominant* outcome or
|
||||||
|
action. For *set_state* this means the worst state, and for *raise_alarm* this
|
||||||
|
means the highest severity of all active actions.
|
||||||
|
|
||||||
|
In order to support this feature, Vitrage maintains an in-memory record of all
|
||||||
|
active actions, indexed (broadly) according to their affected target. This
|
||||||
|
allows for tracking individual actions and their triggers, even when they
|
||||||
|
overlap in their effect.
|
||||||
|
|
||||||
|
For more details on the implementation of this functionality, see the design
|
||||||
|
on this etherpad_.
|
||||||
|
|
||||||
|
.. _etherpad: https://etherpad.openstack.org/p/vitrage-overlapping-templates-support-design
|
Loading…
Reference in New Issue
Block a user