[release-announce] [vitrage] vitrage 1.6.0 (pike)

no-reply at openstack.org no-reply at openstack.org
Thu Jun 8 17:06:08 UTC 2017


We jubilantly announce the release of:

vitrage 1.6.0: The OpenStack RCA Service

This release is part of the pike release series.

The source is available from:

    http://git.openstack.org/cgit/openstack/vitrage

Download the package from:

    https://tarballs.openstack.org/vitrage/

For more details, please see below.

1.6.0
^^^^^

New Features

* A new "SNMP notifier" was added, in order to send SNMP traps from
  Vitrage. SNMP traps will be sent to signed up targets, when Vitrage
  deduced alarm is raised. This notifier allows to listen to alarms
  raised by Vitrage. The new notifier is pluggable so anyone can add
  an implementation.

* The "Vitrage ID feature" is a change in the way we create an
  entity Vitrage ID. Instead of The ID being created as a
  concatenation of different entity fields, it is a standard openstak
  UUID generation. This also allows future history support.

* Support definition of entity equivalence. If the equivalence
  between A and B is configured, all scenarios linked to entity A will
  be expanded to equivalent scenarios, i.e. same conditions and
  actions with the referenced entity A replaced by entity B. One use
  case of equivalence is treating equivalent alarms from multiple data
  source as the same, but no need for duplicating scenario definition
  in templates.

* The "Multi Tenancy" feature allows different tenants to see their
  own entities for each api command. The feature allows admin to add
  the "--all-tenants" parameter in order to see all the entities for
  that api command.

* The "Not Operator" feature adds support of the "not" operator to
  the templates language in addition to "and" and "or" operators. The
  "not" operator allows scenarios such as - - Support of High
  Availability scenarios - Support of negative scenarios, for example
  - raise an alarm on host that has no "cpu_alarm" on it.

Changes in vitrage 1.5.0..1.6.0
-------------------------------

de64417 Add release note about entity equivalence
9015824 multi tenancy release notes
6fd8d07 not operator release notes
7ada6b2 Vitrage ID summary
925baba snmp notifier releasnote
c031eab RDO install guide for Vitrage.
103d3ac Remove deprecated oslo.messaging.get_transport
4f99d8b Updated from global requirements
587e57e Replace assertTrue(isinstance()) with assertIsInstance()
5468748 Set default directory of equivalence under templates directory
2cb1faf Add support for building equivalent scenario
5c981e4 Vitrage was enabled twice.
24669a5 Updated from global requirements
5910220 Faster scenario evaluator. Instead of calculating templates connected components, every time, keep results cached for later use.
3d1d39f Faster subgraph matching Removed redundant copy
6d6c457 Faster properties hashing
c6e827b Add support for loading entity equivalences
a550662 Updated from global requirements
e78235e fix bugs: Merging actions by action_spec should be moved after action_tracker
8fa4d75 Updated from global requirements
504ce49 Fix mark-down after the latest changes in vitrage-id
dd16678 Updated from global requirements
0e93ae6 performance improvement in the processor. Use set instead of using list.
09c4b8d gate fix - extract images list from glance instead of nova
8669130 Add document about implementation details of template loading
6c24d20 Remove excessive logs for topology show
22d0c7d 'nova_version' should be str type
4352a45 Updated from global requirements
3c8b5e1 fix bug undefined dest for snmp traps
391967f remove relationship validation from template validator
c15d47f fix bugs in _find_edge_subgraph_matching: scenario_edge may be not found in subgraph, so stop finding matches in this case.
c97a76e Adding verifcation step.
0775712 Adding introduction to Vitrage installation guide.
cbf612a Remove out of date comments
37d4356 create default datasource info mapper for static entities
761e712 change all entities from static datasource to be is_placeholder=False
3be6a01 Updated the Vitrage architecture diagram
4e6228d Add 'rm -f .testrepository/times.dbm' command in testenv
a7c7be7 add the resource related APIs' description
8e8b212 Fixed the name of group options in get_opts_lists
ff4ef5f its a bad idea to use mutable default parameter
589ca87 Fix Doctor test
85b6300 few changes: 1. bug fixs scenarioEvaluator, scenarioRepository, subgraph matching. 2. Tests for HA scenario
2277858 Vitrage ID and vertex id will be standard openstack uuid from now on - fixed
fc6f076 add resource show API
b242bac Minor fixes in the static datasource documentation
e982c7f implement the resource list API
313c482 Updated from global requirements
d549b5d Optimize the link address
3c275d5 Pass option list instead of group name
c2fedc2 Updated from global requirements
e6a92f5 fix the type of `all_tenants`
1e4efa9 Replace six.iteritems() with .items()
4ba42d2 Updated from global requirements
a997fc3 Updated from global requirements
54b7635 static transformer fix.
1d883ab bugs fixes: 1. Receive the nova.zone and nova.host data without the 'manager' and 'info' properties which are overweight. 2. Fix the delete_relationship to update the is_deleted of a relationship to True, instead of removing it from the graph. 3. Fix the evaluator not to travel over is_placeholder=true elements 4. Fix the topology API to not return the is_deleted=true edges.
f967bd6 Add documentation for static datasource
7e26ce9 Remove unexpected line break
8f327e3 support for not operator in templates condition
961fc9d snmp notifier support
f8ccaa4 Remove log translations
6ec312f make a supplementary of API document
93ee110 Updated from global requirements
6f318ce add some delay between post and get
a165ea7 fix the command of test cover
2e43bf4 reformat the event time to return unicode string
d5cd8a9 reformat the event time
d48fcc6 Delete the unnecessary word in algorithm.py
87ea080 make test event work
4ed0be9 neutron port transformer fix - should always find the instance neighbor
316cc03 Updated from global requirements
e025a0a fix for running nosetests locally on devstack
60cdf65 Updated from global requirements
a330ef9 deatils is a dictionary don't do loads
177abe6 add debug info for an exception
07ad004 fix the vitrage id in test
f2cdca8 fix the TestEvent test
977f7d4 Subtracted utc offset from update_timestamp
cc14a1c fix the TestEvent test
c6bc0a4 Updated from global requirements
4b551d8 [Fix gate]Update test requirement
b2df002 define constants for datasource opts
011a187 fix local config due to devstack change in gate
5d287b9 Change parameter topic
2f4138a Cookiecutting install guide
2929a3d Remove unused logging import
213f603 Updated from global requirements
ba953e5 fix heat test
0e0621b Added manual installation documentation
47b97c7 Doctor datasource - severity is not mandatory
c30cd20 change datasource type to static for devstack installation
61f0f2f template not condition validation
0eabe8a fix the client attribute for alarms
77fc3bb fix the client attribute for alarms
a7620db Enable coverage report in console output
8c5edcc Updated from global requirements
e5950de decouple test events from its base class
e9e6ee8 use 'true' and 'false' instead of magic num
b8cd631 Typo fix: Remove redundant quote mark
a26298a Remove support for py34
606f49b Update reno for stable/ocata
231c884 Using oslo_log instead of logging.
f1e5d53 Delete the unnecessary word in algorithm.py
ae8ea68 delete the 'nova' exchange of listener target


Diffstat (except docs and test files)
-------------------------------------

README.rst                                         |    4 +-
devstack/gate_hook.sh                              |   45 +-
devstack/post_test_hook.sh                         |    2 +-
devstack/settings                                  |    2 +-
etc/vitrage/datasources_values/default.yaml        |   24 +
etc/vitrage/datasources_values/static.yaml         |   24 +
.../datasources_values/static_physical.yaml        |    2 +
etc/vitrage/policy.json                            |    1 +
install-guide/source/common_configure.rst          |   10 +
install-guide/source/conf.py                       |  301 ++++++
install-guide/source/get_started.rst               |   15 +
install-guide/source/index.rst                     |   16 +
install-guide/source/install-rdo.rst               |  195 ++++
install-guide/source/install.rst                   |   17 +
install-guide/source/next-steps.rst                |   10 +
install-guide/source/verify.rst                    |   16 +
.../notes/SNMP_notifier-5c46505b3043b58f.yaml      |    5 +
.../notes/Vitrage_ID-93737ff7b7ced8e9.yaml         |    6 +
.../notes/entity-equivalence-44c0da4cf3b5bc7e.yaml |    8 +
.../multi_tenancy_support-feb3d2d4f8014b66.yaml    |    6 +
...ot_operator_for_templates-f1e4c517236ca54e.yaml |    8 +
releasenotes/source/index.rst                      |    1 +
releasenotes/source/ocata.rst                      |    6 +
requirements.txt                                   |   21 +-
setup.cfg                                          |    2 +-
setup.py                                           |    2 +-
test-requirements.txt                              |   28 +-
tox.ini                                            |   10 +-
vitrage/api/app.py                                 |   27 +-
vitrage/api/controllers/rest.py                    |    3 -
vitrage/api/controllers/v1/__init__.py             |   18 -
vitrage/api/controllers/v1/alarm.py                |   17 +-
vitrage/api/controllers/v1/event.py                |    3 +-
vitrage/api/controllers/v1/rca.py                  |   13 +-
vitrage/api/controllers/v1/resource.py             |   91 +-
vitrage/api/controllers/v1/template.py             |    7 +-
vitrage/api/controllers/v1/topology.py             |   14 +-
vitrage/api_handler/apis/alarm.py                  |    2 +-
vitrage/api_handler/apis/base.py                   |    8 +
vitrage/api_handler/apis/event.py                  |    9 +-
vitrage/api_handler/apis/rca.py                    |    2 +-
vitrage/api_handler/apis/resource.py               |   76 ++
vitrage/api_handler/apis/topology.py               |   59 +-
vitrage/api_handler/service.py                     |    4 +-
vitrage/cmd/graph.py                               |    3 +-
vitrage/common/constants.py                        |   11 +-
vitrage/datasources/alarm_transformer_base.py      |    4 -
vitrage/datasources/aodh/__init__.py               |   13 +-
vitrage/datasources/aodh/transformer.py            |    1 +
vitrage/datasources/cinder/volume/__init__.py      |    7 +-
vitrage/datasources/cinder/volume/transformer.py   |    5 -
vitrage/datasources/collectd/__init__.py           |    9 +-
.../collectd/collectd_vitrage/vitrageplugin.py     |    2 +-
vitrage/datasources/collectd/driver.py             |    5 +-
vitrage/datasources/collectd/transformer.py        |    7 +-
vitrage/datasources/consistency/transformer.py     |    9 +-
vitrage/datasources/doctor/__init__.py             |    7 +-
vitrage/datasources/doctor/driver.py               |    1 -
vitrage/datasources/doctor/transformer.py          |    3 +
vitrage/datasources/heat/stack/__init__.py         |    7 +-
vitrage/datasources/launcher.py                    |    6 +-
vitrage/datasources/listener_service.py            |    2 +-
vitrage/datasources/nagios/__init__.py             |   15 +-
vitrage/datasources/nagios/config.py               |    3 +-
vitrage/datasources/nagios/driver.py               |   11 +-
vitrage/datasources/nagios/transformer.py          |    9 +-
vitrage/datasources/neutron/network/__init__.py    |    7 +-
vitrage/datasources/neutron/port/__init__.py       |    7 +-
vitrage/datasources/neutron/port/transformer.py    |   23 +-
vitrage/datasources/nova/host/__init__.py          |    7 +-
vitrage/datasources/nova/instance/__init__.py      |    7 +-
vitrage/datasources/nova/instance/transformer.py   |   14 +-
vitrage/datasources/nova/zone/__init__.py          |    7 +-
vitrage/datasources/nova/zone/driver.py            |    3 +-
vitrage/datasources/rescheduler.py                 |    8 +-
vitrage/datasources/resource_transformer_base.py   |    5 -
vitrage/datasources/services.py                    |    2 +-
vitrage/datasources/static/__init__.py             |   24 +-
vitrage/datasources/static/driver.py               |   24 +-
vitrage/datasources/static/transformer.py          |   35 +-
vitrage/datasources/static_physical/__init__.py    |    9 +-
vitrage/datasources/static_physical/transformer.py |    4 -
vitrage/datasources/transformer_base.py            |    5 +-
vitrage/datasources/zabbix/__init__.py             |   13 +-
.../datasources/zabbix/auxiliary/zabbix_vitrage.py |    2 +-
vitrage/datasources/zabbix/driver.py               |    5 +-
vitrage/datasources/zabbix/transformer.py          |    7 +-
.../consistency/consistency_enforcer.py            |    6 +-
.../mappings/datasource_info_mapper.py             |   12 +-
vitrage/entity_graph/processor/notifier.py         |    2 +-
vitrage/entity_graph/processor/processor.py        |  176 +++-
vitrage/entity_graph/processor/processor_utils.py  |   10 +
vitrage/evaluator/__init__.py                      |    4 +
.../actions/evaluator_event_transformer.py         |    6 +-
vitrage/evaluator/actions/priority_tools.py        |    7 +-
vitrage/evaluator/actions/recipes/mark_down.py     |    1 +
vitrage/evaluator/actions/recipes/set_state.py     |    3 +-
vitrage/evaluator/equivalence_data.py              |   60 ++
vitrage/evaluator/equivalence_repository.py        |   39 +
vitrage/evaluator/scenario_evaluator.py            |  244 +++--
vitrage/evaluator/scenario_repository.py           |   80 +-
vitrage/evaluator/template_data.py                 |  334 +++++--
vitrage/evaluator/template_fields.py               |    4 +-
.../template_validation/status_messages.py         |    1 +
.../template_content_validator.py                  |  113 ++-
.../template_syntax_validator.py                   |   58 +-
vitrage/graph/algo_driver/algorithm.py             |    2 +-
vitrage/graph/algo_driver/networkx_algorithm.py    |  116 ++-
vitrage/graph/algo_driver/sub_graph_matching.py    |  102 +-
vitrage/graph/driver/elements.py                   |   16 +
vitrage/graph/driver/graph.py                      |   36 +-
vitrage/graph/driver/networkx_graph.py             |   49 +-
vitrage/i18n.py                                    |   10 -
vitrage/messaging.py                               |    4 +-
vitrage/notifier/__init__.py                       |    2 +-
vitrage/notifier/plugins/snmp/__init__.py          |   37 +
vitrage/notifier/plugins/snmp/base.py              |   28 +
vitrage/notifier/plugins/snmp/snmp_notifier.py     |   61 ++
vitrage/notifier/plugins/snmp/snmp_sender.py       |  203 ++++
vitrage/opts.py                                    |    2 +
vitrage/os_clients.py                              |   21 +-
vitrage/service.py                                 |    4 +-
.../datasources/cinder/test_cinder_volume.py       |    2 +-
.../functional/datasources/heat/test_heat_stack.py |    2 +-
.../functional/datasources/nagios/test_nagios.py   |    2 +-
.../datasources/nova/test_nova_datasources.py      |    2 +-
.../static_physical/test_static_physical.py        |    2 +-
.../entity_graph/consistency/test_consistency.py   |   12 +-
.../entity_graph/processor/test_processor.py       |    2 +-
.../states/test_datasource_info_mapper.py          |   10 +-
.../functional/evaluator/test_action_executor.py   |   68 +-
.../evaluator/test_scenario_evaluator.py           | 1032 ++++++++++++++++++-
.../resources/datasources_values/default.yaml      |   24 +
.../erroneous_values/default.yaml                  |   24 +
.../driver/driver_host_snapshot_dynamic.json       |    3 +
.../driver/driver_inst_snapshot_dynamic.json       |    1 +
.../driver/driver_zone_snapshot_dynamic.json       |    3 +
.../resources/snmp_notifier/alarm_oid_mapping.yaml |    3 +
.../oid_tree_with_severity_mapping.yaml            |   29 +
.../oid_tree_without_severity_mapping.yaml         |   22 +
.../equivalences_dup/dup-in-multi-def/multi.yaml   |   21 +
.../equivalences_dup/dup-in-multi-file/first.yaml  |   12 +
.../equivalences_dup/dup-in-multi-file/second.yaml |   12 +
.../equivalences_dup/dup-in-one-def/one.yaml       |   12 +
.../templates/equivalent_scenarios/basic.yaml      |   40 +
.../equivalent_scenarios/equivalences/basic.yaml   |   21 +
.../complex_and_or_operator_deduced_alarm.yaml     |   53 +
.../complex_not_operator_deduced_alarm.yaml        |   59 ++
.../templates/evaluator/high_availability.yaml     |   67 ++
.../simple_not_operator_deduced_alarm.yaml         |   31 +
.../simple_or_operator_deduced_alarm.yaml          |   42 +
.../templates/general/equivalences/basic.yaml      |   20 +
.../not_operator/basic_correct_not_condition.yaml  |   30 +
.../basic_incorrect_not_condition.yaml             |   30 +
.../complicated_correct_not_condition.yaml         |   57 ++
.../complicated_incorrect_not_condition.yaml       |   57 ++
.../unit/datasources/aodh/test_aodh_driver.py      |   11 +-
.../unit/datasources/aodh/test_aodh_transformer.py |    5 +-
.../cinder/test_cinder_volume_transformer.py       |    3 +-
.../collectd/test_collectd_transformer.py          |    6 +-
.../consistency/test_consistency_transformer.py    |    3 +-
.../datasources/doctor/test_doctor_transformer.py  |    6 +-
.../heat/test_heat_stack_transformer.py            |    3 +-
.../unit/datasources/nagios/test_nagios_config.py  |   12 +-
.../unit/datasources/nagios/test_nagios_driver.py  |    7 +-
.../unit/datasources/nagios/test_nagios_parser.py  |    3 -
.../datasources/nagios/test_nagios_transformer.py  |   12 +-
.../datasources/nova/test_nova_host_transformer.py |    3 +-
.../nova/test_nova_instance_transformer.py         |    5 +-
.../datasources/nova/test_nova_zone_transformer.py |    5 +-
.../unit/datasources/static/test_static_driver.py  |   22 +-
.../datasources/static/test_static_transformer.py  |   25 +-
.../static_physical/test_static_physical_driver.py |   17 +-
.../test_static_physical_transformer.py            |    3 +-
.../datasources/test_alarm_transformer_base.py     |    3 -
.../datasources/test_datasource_update_method.py   |   40 +-
.../unit/datasources/test_transformer_base.py      |    4 -
.../zabbix/test_zabbix_configuration.py            |   13 +-
.../unit/datasources/zabbix/test_zabbix_driver.py  |    6 +-
.../datasources/zabbix/test_zabbix_transformer.py  |    3 +-
.../unit/entity_graph/processor/test_processor.py  |   24 +-
.../states/test_datasource_info_mapper.py          |   46 +-
.../evaluator/recipes/test_set_state_recipe.py     |    6 +-
.../unit/evaluator/test_equivalence_repository.py  |   35 +
.../unit/evaluator/test_scenario_repository.py     |   55 +-
.../evaluator/test_template_content_validator.py   |   83 +-
.../evaluator/test_template_syntax_validator.py    |   10 -
.../notifier/snmp_notifier/test_snmp_notifier.py   |   50 +
.../test_snmp_sender_with_severity_map.py          |  122 +++
.../test_snmp_sender_without_severity_map.py       |   97 ++
vitrage/utils/__init__.py                          |    3 +-
vitrage/utils/datetime.py                          |    8 +
vitrage/utils/file.py                              |    4 +
237 files changed, 7839 insertions(+), 1181 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index 2e276d7..4ffb546 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,2 +5,2 @@
-pbr>=1.8 # Apache-2.0
-Babel>=2.3.4 # BSD
+pbr!=2.1.0,>=2.0.0 # Apache-2.0
+Babel!=2.4.0,>=2.3.4 # BSD
@@ -9 +9 @@ python-ceilometerclient>=2.5.0 # Apache-2.0
-python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0
+python-cinderclient>=2.1.0 # Apache-2.0
@@ -12,2 +12,2 @@ python-keystoneclient>=3.8.0 # Apache-2.0
-python-neutronclient>=5.1.0 # Apache-2.0
-python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0
+python-neutronclient>=6.3.0 # Apache-2.0
+python-novaclient>=7.1.0 # Apache-2.0
@@ -17,3 +17,3 @@ networkx>=1.10 # BSD
-oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
-oslo.messaging>=5.14.0 # Apache-2.0
-oslo.log>=3.11.0 # Apache-2.0
+oslo.config>=4.0.0 # Apache-2.0
+oslo.messaging!=5.25.0,>=5.24.2 # Apache-2.0
+oslo.log>=3.22.0 # Apache-2.0
@@ -22 +22 @@ oslo.service>=1.10.0 # Apache-2.0
-oslo.i18n>=2.1.0 # Apache-2.0
+oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
@@ -27 +27 @@ keystonemiddleware>=4.12.0 # Apache-2.0
-stevedore>=1.17.1 # Apache-2.0
+stevedore>=1.20.0 # Apache-2.0
@@ -29,0 +30 @@ sympy>=0.7.6 # BSD
+pysnmp>=4.2.3 # BSD
diff --git a/test-requirements.txt b/test-requirements.txt
index 02fea7f..e80188a 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -5 +5 @@
-hacking<0.11,>=0.10.0
+hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
@@ -7 +7 @@ python-dateutil>=2.4.2 # BSD
-coverage>=4.0 # Apache-2.0
+coverage!=4.4,>=4.0 # Apache-2.0
@@ -11,3 +11,3 @@ python-ceilometerclient>=2.5.0 # Apache-2.0
-python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0
-python-neutronclient>=5.1.0 # Apache-2.0
-python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0
+python-cinderclient>=2.1.0 # Apache-2.0
+python-neutronclient>=6.3.0 # Apache-2.0
+python-novaclient>=7.1.0 # Apache-2.0
@@ -17,2 +17,2 @@ pyzabbix>=0.7.4 # LGPL
-sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
-oslo.log>=3.11.0 # Apache-2.0
+sphinx!=1.6.1,>=1.5.1 # BSD
+oslo.log>=3.22.0 # Apache-2.0
@@ -22,3 +22,3 @@ oslo.service>=1.10.0 # Apache-2.0
-oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
-oslo.messaging>=5.14.0 # Apache-2.0
-oslo.i18n>=2.1.0 # Apache-2.0
+oslo.config>=4.0.0 # Apache-2.0
+oslo.messaging!=5.25.0,>=5.24.2 # Apache-2.0
+oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
@@ -31 +31 @@ testtools>=1.4.0 # MIT
-stevedore>=1.17.1 # Apache-2.0
+stevedore>=1.20.0 # Apache-2.0
@@ -34 +34,5 @@ sympy>=0.7.6 # BSD
-reno>=1.8.0 # Apache-2.0
+reno!=2.3.1,>=1.8.0 # Apache-2.0
+pysnmp>=4.2.3 # BSD
+
+# Doc requirements
+openstackdocstheme>=1.5.0 # Apache-2.0





More information about the Release-announce mailing list