[vitrage] vitrage 1.4.0 (ocata)
We are jazzed to announce the release of: vitrage 1.4.0: The OpenStack RCA Service This release is part of the ocata 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. Changes in vitrage 1.3.0..1.4.0 ------------------------------- 329fe51 Support post event API 3fc88cb fix tempests in gate c771ad1 Neighbor validation for static datasource transformer bc81ada Remove evacuate - this functionality is not working well, and should not be a part of Vitrage. 180d557 Updated Vitrage documentation and architecture diagram 1c82d12 update the collectd readme 2ee6bef Rename `static_info_re` to `static_info` to avoid confusion a694084 Implement static datasource transformer f9bdab1 small changes 4120ea1 Some fixes in the tests edc2862 add collectd datasource 42609df test fix 0d0bcf0 Add update neighbors tests 73f97e1 Fix warning from PyCharm: Default argument value is mutable e5ff9a0 Transformers refactoring e67b908 Tempests fix 9bd11b9 Vitrage Topology graph-type=tree requires filter 2c1432c Implement Doctor datasource for handling alarms coming from OPNFV Doctor monitor Implements: blueprint doctor-datasource 9844aa0 Tempsets exception raise change d57af32 Implement aodh alarm notification ca16897 enable blank relationships in template 21fb960 Updated from global requirements f1865eb Replaces uuid.uuid4 with uuidutils.generate_uuid() ffe967b enrich_event should not be a static method fcd49f8 change vitrage.conf to work with username vitrage instead of admin e88d96f add aodh functional tests 3f9fbdb Implement static datasource driver 483dfdb tox.ini changes due to kombu 4.0.1 dependency 2627a89 Use assertGreater(len(x), y) instead of assertTrue(len(x) > y) 54d1f07 Updated from global requirements fe3a8e9 heat tempest fix bd02779 enable heat in gate 22f94b5 Separate common fields from TemplateFields 6110c6c add aodh transformer unit test 074d119 restore checking the action about alarm with 'ok' state 6d759a8 add prints for exceptions 8bc5dca Updated from global requirements 2125293 Bug fix: When creating a vertex by the evaluator transformer, take only parameters that are not None. Otherwise, a None parameter may overwrite a "real" parameter that already exists on the vertex. e41ab6e Replaced e.message with str(e) d2e46d1 Changed the home-page link a801b00 Move utility methods from `common/utils` to `utils` c7f2468 change constants names d32c2b1 refactor the '_extract_action_type' function 9cb1be7 support cors aac14c5 rename internal vitrage properties f130ef5 Show team and repo badges on README 1e81777 Updated from global requirements 931921f test for removing is_deleted edges 2be46ca remove is_deleted edges fd464e5 Use more specific asserts in tests 70d9ab8 update the clean stage to clean all config data ca82e62 Updated from global requirements bb5e94e skip heat tempest temporary c892333 Replace six.iteritems with dict.items() 4e6bcce resolve the conflict about event_type in different namespace 74c65ea Skeleton for static datasource 9b44077 bug fix in heat. 1. show heat stack in error state. 2. event property changed to "project" insead of "project_id" 29f5cf4 Refactoring common/file_utils.py 67f4ad3 template str dependant uuid e2b21d5 Beautify, correct URLs in documentation files 6e64f0a delete 'resource_id' as a component of key_values b98919d Add apache license to source files 9cad273 Replace deprecated LOG.warn with warning LOG 8c2d94b remove edges which are is_deleted=true 1cfa87f Fix warnings in PyCharm 917dbb8 Don't include openstack/common in flake8 exclude list 985cc18 Add notice to nagios devstack installation a784457 use aodh alarm_id as alarm_key eab6a2e fix the parameter type of input and output d32898e Modify variable's using method in Log Messages 4170911 evaluator fix for startup phase 4f06e3a Multi tenancy for topology, alarms and rca apis. 07dcbc3 Fixed some diagrams 0ff6eec Heat.stack datasource values fix f94d0df Added Comprised relationship to constants d6d4f4c Shorten rescheduler test time 36fb360 Re-indent lines and add code block 7667274 Add details to config nagios GUI, re-indent lines 184d885 Clarify zabbix with vitrage installation guide f414ac7 Drop *openstack/common* in flake8 exclude list c50bf9e delete useless input parameter d38d7ee fix the error URL in nagios-devstack-installation.rst 01125f2 Stop adding ServiceAvailable group option 6527733 Enable release notes translation 9f0c14b Updated from global requirements 589d16e Maintain releasenotes for vitrage 980b976 RCA API changes 1e3988b Change RCA API to index 104c06f Correct installation file name stack -> stack.sh ea1ab3c Updated from global requirements 7f9226b rename vitrage engine to vitrage service 5e05d16 Documentation updates 271bad0 make the os clients dynamiclly imported 9295b09 Correct reraising of exception Diffstat (except docs and test files) ------------------------------------- README.rst | 17 +- devstack/README.rst | 23 +- devstack/gate_hook.sh | 7 + devstack/plugin.sh | 14 +- devstack/settings | 8 +- etc/vitrage/api-paste.ini | 6 +- etc/vitrage/datasources_values/collectd.yaml | 17 ++ etc/vitrage/datasources_values/doctor.yaml | 12 + etc/vitrage/datasources_values/heat.stack.yaml | 30 +- etc/vitrage/policy.json | 20 +- .../templates.sample/host_down_scenarios.yaml | 70 +++++ initial.txt | 2 +- releasenotes/notes/.placeholder | 0 releasenotes/source/_static/.placeholder | 0 releasenotes/source/_templates/.placeholder | 0 releasenotes/source/conf.py | 78 +++++ releasenotes/source/index.rst | 17 ++ releasenotes/source/unreleased.rst | 5 + requirements.txt | 22 +- setup.cfg | 4 +- test-requirements.txt | 23 +- tox.ini | 8 +- vitrage/api/controllers/__init__.py | 15 + vitrage/api/controllers/v1/alarm.py | 21 +- vitrage/api/controllers/v1/event.py | 53 ++++ vitrage/api/controllers/v1/rca.py | 21 +- vitrage/api/controllers/v1/root.py | 2 + vitrage/api/controllers/v1/topology.py | 30 +- vitrage/api/policy.py | 2 +- vitrage/api_handler/apis.py | 283 ------------------ vitrage/api_handler/apis/__init__.py | 15 + vitrage/api_handler/apis/alarm.py | 102 +++++++ vitrage/api_handler/apis/base.py | 216 ++++++++++++++ vitrage/api_handler/apis/event.py | 62 ++++ vitrage/api_handler/apis/rca.py | 150 ++++++++++ vitrage/api_handler/apis/template.py | 122 ++++++++ vitrage/api_handler/apis/topology.py | 205 +++++++++++++ vitrage/api_handler/service.py | 14 +- vitrage/clients.py | 116 -------- vitrage/cmd/graph.py | 3 +- vitrage/common/constants.py | 60 ++-- vitrage/common/datetime_utils.py | 30 -- vitrage/common/file_utils.py | 62 ---- vitrage/common/utils.py | 3 +- vitrage/datasources/alarm_driver_base.py | 55 ++-- vitrage/datasources/alarm_transformer_base.py | 36 +-- vitrage/datasources/aodh/__init__.py | 2 +- vitrage/datasources/aodh/driver.py | 188 +++++++++++- vitrage/datasources/aodh/properties.py | 9 + vitrage/datasources/aodh/transformer.py | 21 +- vitrage/datasources/cinder/volume/driver.py | 17 +- vitrage/datasources/cinder/volume/transformer.py | 81 ++--- vitrage/datasources/collectd/__init__.py | 40 +++ .../collectd/collectd_vitrage/__init__.py | 15 + .../collectd/collectd_vitrage/getsigchld.py | 24 ++ .../collectd/collectd_vitrage/plugin.py | 155 ++++++++++ .../datasources/collectd/collectd_vitrage/readme | 32 ++ .../collectd/collectd_vitrage/vitrageplugin.py | 100 +++++++ vitrage/datasources/collectd/driver.py | 94 ++++++ vitrage/datasources/collectd/properties.py | 23 ++ vitrage/datasources/collectd/transformer.py | 103 +++++++ vitrage/datasources/consistency/transformer.py | 10 +- vitrage/datasources/doctor/__init__.py | 37 +++ vitrage/datasources/doctor/driver.py | 117 ++++++++ vitrage/datasources/doctor/properties.py | 40 +++ vitrage/datasources/doctor/transformer.py | 102 +++++++ vitrage/datasources/driver_base.py | 44 ++- vitrage/datasources/heat/stack/driver.py | 23 +- vitrage/datasources/heat/stack/transformer.py | 56 ++-- vitrage/datasources/launcher.py | 3 +- vitrage/datasources/listener_service.py | 7 +- vitrage/datasources/nagios/config.py | 2 +- vitrage/datasources/nagios/driver.py | 5 +- vitrage/datasources/nagios/transformer.py | 55 +--- vitrage/datasources/neutron/base.py | 4 +- vitrage/datasources/neutron/network/driver.py | 13 +- vitrage/datasources/neutron/network/transformer.py | 8 +- vitrage/datasources/neutron/port/driver.py | 13 +- vitrage/datasources/neutron/port/transformer.py | 73 ++--- vitrage/datasources/nova/__init__.py | 13 + vitrage/datasources/nova/host/driver.py | 4 +- vitrage/datasources/nova/host/transformer.py | 59 +--- vitrage/datasources/nova/instance/driver.py | 13 +- vitrage/datasources/nova/instance/transformer.py | 63 ++-- vitrage/datasources/nova/nova_driver_base.py | 4 +- vitrage/datasources/nova/zone/driver.py | 6 +- vitrage/datasources/nova/zone/transformer.py | 97 +++--- vitrage/datasources/rescheduler.py | 4 +- vitrage/datasources/resource_transformer_base.py | 25 -- vitrage/datasources/services.py | 16 +- vitrage/datasources/static/__init__.py | 51 ++++ vitrage/datasources/static/driver.py | 141 +++++++++ vitrage/datasources/static/transformer.py | 113 +++++++ vitrage/datasources/static_physical/driver.py | 55 ++-- vitrage/datasources/static_physical/transformer.py | 60 ++-- vitrage/datasources/transformer_base.py | 162 ++++++---- .../datasources/zabbix/auxiliary/zabbix_vitrage.py | 5 +- vitrage/datasources/zabbix/driver.py | 13 +- vitrage/datasources/zabbix/transformer.py | 56 +--- .../consistency/consistency_enforcer.py | 19 +- .../mappings/datasource_info_mapper.py | 4 +- vitrage/entity_graph/processor/entity_graph.py | 2 +- vitrage/entity_graph/processor/processor.py | 34 +-- vitrage/entity_graph/transformer_manager.py | 40 +-- vitrage/evaluator/actions/action_executor.py | 8 +- .../actions/evaluator_event_transformer.py | 25 +- vitrage/evaluator/scenario_evaluator.py | 19 +- vitrage/evaluator/scenario_repository.py | 14 +- vitrage/evaluator/template_fields.py | 19 +- vitrage/evaluator/template_validation/base.py | 2 +- .../template_validation/status_messages.py | 10 +- .../template_content_validator.py | 22 +- .../template_syntax_validator.py | 51 ++-- vitrage/graph/algo_driver/algorithm.py | 53 +++- vitrage/graph/algo_driver/networkx_algorithm.py | 77 ++++- vitrage/graph/algo_driver/sub_graph_matching.py | 5 +- vitrage/graph/driver/graph.py | 30 +- vitrage/graph/driver/networkx_graph.py | 29 +- vitrage/graph/utils.py | 6 +- vitrage/notifier/plugins/aodh/aodh_notifier.py | 4 +- vitrage/notifier/plugins/nova/__init__.py | 5 - vitrage/notifier/plugins/nova/nova_notifier.py | 34 +-- vitrage/opts.py | 4 +- vitrage/os_clients.py | 131 ++++++++ .../functional/datasources/nagios/test_nagios.py | 3 +- .../static_physical/test_static_physical.py | 2 +- .../entity_graph/consistency/test_consistency.py | 4 +- .../states/test_datasource_info_mapper.py | 10 +- .../functional/evaluator/test_action_executor.py | 20 +- .../evaluator/test_scenario_evaluator.py | 5 +- .../driver/driver_aodh_update_dynamic.json | 11 + .../driver/driver_collectd_update_dynamic.json | 11 + .../driver/driver_consistency_update_dynamic.json | 8 +- .../driver/driver_doctor_update_dynamic.json | 13 + .../driver/driver_host_snapshot_dynamic.json | 6 +- .../driver/driver_inst_snapshot_dynamic.json | 6 +- .../driver/driver_inst_update_dynamic.json | 6 +- .../driver/driver_nagios_snapshot_dynamic.json | 6 +- .../driver/driver_stack_snapshot_dynamic.json | 8 +- .../driver/driver_stack_update_dynamic.json | 10 +- .../driver/driver_static_snapshot_dynamic.json | 11 + .../driver/driver_static_snapshot_static.json | 6 + .../driver/driver_switch_snapshot_dynamic.json | 6 +- .../driver/driver_volume_snapshot_dynamic.json | 6 +- .../driver/driver_volume_update_dynamic.json | 8 +- .../driver/driver_zabbix_snapshot_dynamic.json | 6 +- .../driver/driver_zone_snapshot_dynamic.json | 6 +- .../transformer_aodh_snapshot_dynamic.json | 37 +++ .../transformer_aodh_update_dynamic.json | 37 +++ .../transformer_collectd_update_dynamic.json | 15 + .../transformer_doctor_update_dynamic.json | 16 + .../transformer_host_snapshot_static.json | 4 +- .../transformer_inst_snapshot_dynamic.json | 8 +- .../transformer_inst_snapshot_static.json | 2 +- .../transformer_zone_snapshot_static.json | 4 +- .../static_datasources/switch_to_host.yaml | 64 ++++ .../datasources/aodh/aodh_transformer_base_test.py | 114 +++++++ .../unit/datasources/aodh/test_aodh_driver.py | 222 ++++++++++++++ .../unit/datasources/aodh/test_aodh_transformer.py | 153 ++++++++++ .../cinder/test_cinder_volume_transformer.py | 6 +- .../datasources/collectd/test_collectd_driver.py | 87 ++++++ .../collectd/test_collectd_transformer.py | 116 ++++++++ .../consistency/test_consistency_transformer.py | 6 +- .../unit/datasources/doctor/test_doctor_driver.py | 134 +++++++++ .../datasources/doctor/test_doctor_transformer.py | 121 ++++++++ .../heat/test_heat_stack_transformer.py | 6 +- .../unit/datasources/nagios/test_nagios_driver.py | 8 +- .../datasources/nagios/test_nagios_transformer.py | 21 +- .../datasources/nova/test_nova_host_transformer.py | 73 ++--- .../nova/test_nova_instance_transformer.py | 321 ++++++++++++++++++++ .../nova/test_nova_instance_transformers.py | 309 ------------------- .../datasources/nova/test_nova_zone_transformer.py | 69 +++-- .../unit/datasources/static/test_static_driver.py | 118 ++++++++ .../datasources/static/test_static_transformer.py | 141 +++++++++ .../static_physical/test_static_physical_driver.py | 17 +- .../test_static_physical_transformer.py | 5 +- .../datasources/test_alarm_transformer_base.py | 84 ++++++ .../unit/datasources/test_rescheduler_functions.py | 20 +- .../unit/datasources/test_transformer_base.py | 32 ++ .../unit/datasources/zabbix/test_zabbix_driver.py | 6 +- .../datasources/zabbix/test_zabbix_transformer.py | 21 +- .../unit/entity_graph/processor/test_processor.py | 127 ++++++-- .../unit/evaluator/test_scenario_repository.py | 4 +- .../evaluator/test_template_content_validator.py | 7 +- .../evaluator/test_template_syntax_validator.py | 8 +- vitrage/utils/__init__.py | 39 ++- vitrage/utils/datetime.py | 36 +++ vitrage/utils/file.py | 66 +++++ 249 files changed, 7802 insertions(+), 2426 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 6796f74..17d1f51 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5 +5 @@ -pbr>=1.6 # Apache-2.0 +pbr>=1.8 # Apache-2.0 @@ -7 +7 @@ Babel>=2.3.4 # BSD -lxml>=2.3 # BSD +lxml!=3.7.0,>=2.3 # BSD @@ -11 +11 @@ python-dateutil>=2.4.2 # BSD -python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0 +python-keystoneclient>=3.8.0 # Apache-2.0 @@ -14 +14 @@ python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 -python-heatclient>=1.4.0 # Apache-2.0 +python-heatclient>=1.6.1 # Apache-2.0 @@ -17,4 +17,4 @@ networkx>=1.10 # BSD -oslo.config>=3.14.0 # Apache-2.0 -oslo.messaging>=5.2.0 # Apache-2.0 -oslo.log>=1.14.0 # Apache-2.0 -oslo.policy>=1.9.0 # Apache-2.0 +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.policy>=1.17.0 # Apache-2.0 @@ -23 +23 @@ oslo.i18n>=2.1.0 # Apache-2.0 -pecan!=1.0.2,!=1.0.3,!=1.0.4,>=1.0.0 # BSD +pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD @@ -26,2 +26,2 @@ Werkzeug>=0.7 # BSD License -keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0 -stevedore>=1.16.0 # Apache-2.0 +keystonemiddleware>=4.12.0 # Apache-2.0 +stevedore>=1.17.1 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 1d9c516..bcb362e 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -7,2 +7,2 @@ python-dateutil>=2.4.2 # BSD -coverage>=3.6 # Apache-2.0 -lxml>=2.3 # BSD +coverage>=4.0 # Apache-2.0 +lxml!=3.7.0,>=2.3 # BSD @@ -14 +14 @@ python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 -python-heatclient>=1.4.0 # Apache-2.0 +python-heatclient>=1.6.1 # Apache-2.0 @@ -17,3 +17,3 @@ pyzabbix>=0.7.4 # LGPL -sphinx!=1.3b1,<1.3,>=1.2.1 # BSD -oslo.log>=1.14.0 # Apache-2.0 -oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 +sphinx!=1.3b1,<1.4,>=1.2.1 # BSD +oslo.log>=3.11.0 # Apache-2.0 +oslosphinx>=4.7.0 # Apache-2.0 @@ -22,2 +22,2 @@ oslo.service>=1.10.0 # Apache-2.0 -oslo.config>=3.14.0 # Apache-2.0 -oslo.messaging>=5.2.0 # Apache-2.0 +oslo.config!=3.18.0,>=3.14.0 # Apache-2.0 +oslo.messaging>=5.14.0 # Apache-2.0 @@ -25,2 +25,2 @@ oslo.i18n>=2.1.0 # Apache-2.0 -oslo.policy>=1.9.0 # Apache-2.0 -pecan!=1.0.2,!=1.0.3,!=1.0.4,>=1.0.0 # BSD +oslo.policy>=1.17.0 # Apache-2.0 +pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD @@ -31 +31 @@ testtools>=1.4.0 # MIT -stevedore>=1.16.0 # Apache-2.0 +stevedore>=1.17.1 # Apache-2.0 @@ -33,0 +34 @@ sympy>=0.7.6 # BSD +reno>=1.8.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org