As per the community goal of migrating the policy file
the format from JSON to YAML, we need to do two things:
1. Change the default value of '[oslo_policy] policy_file''
config option from 'policy.json' to 'policy.yaml' with
2. Deprecate the JSON formatted policy file on the project side
via warning in doc and releasenotes.
Also replace policy.json to policy.yaml ref from doc and tests.
This commit adds support for database migrations via alembic.
First revision corresponds to Train release.
Co-Authored-By: Oleksiy Petrenko <firstname.lastname@example.org>
Implements: blueprint db-upgrade
Remove usage of local config object in Vitrage
services and tests. Instead, it's been replaced
with the global CONF object. The structure of the
code becomes more like in other OpenStack projects.
Also, this change provides an opportunity to
introduce migrations and tests for them.
Workers should be forked right at the start, to avoid forked processes
containing allot of irrelevant objects.
Instead of depending on forked memory to receive the graph, workers
will load the graph from the database once it is available.
APIs should be refused until vitrage-graph is fully loaded. This was
previously supported because API processes were only started when ready.
GraphInit waits untill all worker processes are started and listen on
the multiprocessing queue.
This commit adds the functionality of vitrage-status CLI for performing
upgrade checks as part of the Stein cycle upgrade-checkers goal.
It only includes a sample check which must be replaced by real checks in
- vitrage-graph will execute the drivers.
- Simplify large data transfer from drivers to processor by obsoleting rpc.
- Drivers don't need to create the complete list by taking advantage of python
generators in order to conserve memory.
- Lowering the total signiture of vitrage processes.
- LockByDriver will enforce a driver does not run get_changes and get_all in parallel.
* Initialize quickly upon fail-over without requesting updates.
* In case of downtime, Vitrage-graph startup will requests collector updates
* vitrage-persistor has an expirer timer to remove old db events
Event processing and api handling should be able to run in parallel.
active-active Collector service, detached from vitrage-graph service,
exposing it's methods by RPC, so to only run when needed.
implements: blueprint rpc-collector
oslo service replaced by cotyledon.
Oslo service uses eventlet and green threads for timers and threads.
In Vitrage we use real threads and multiprocessing, it seems this
combination causes unexpected behavior (such as timers not running,
processes not starting) so the entire solution is very delicate to
As part of an ongoing effort (previously, monkeypatching was removed)
this commit solves issues encountered in rpc_collector commit in
addition it removes unnecessary complications in the application.
Co-Authored-By: Eyal <email@example.com>
* templates are now stored in the database.
* evaluator is reloaded whenever a template is added/removed.
* supporting all types of templates (standard, equivalence, definition)
* new cli commands:
- vitrage template add
- vitrage template delete
Implements: blueprint crud-templates
Parsing part and devstack deploy part will be added
later, with unit tests and tempest tests.
Implements: blueprint snmp-support
Signed-off-by: xupeipei <firstname.lastname@example.org>
Multiprocessing queue causes deadlocks and is removed.
Entity graph service now listens on two topics,
evaluator notifications should be handled with a higher priority.
Per event template matching runs in parallel,
using N EvaluatorWorkers each holding a copy of the graph,
and executing different templates.
Implements: blueprint parallel-evaluation
every event will receive real vitrage_id in the transformer
instead of getting temporary vitrage_id in the transformer
and then replaceing it in the processor
at this first step, the service includes one
plugin,this plugin use jaccard correlation
in order to measure correlation between a
pair of alarms.
once in configured amount of alarms this
service generates a report and saves it to