Release-announce
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- 1 participants
- 17222 discussions
We are pleased to announce the release of:
cloudkitty 5.0.0: Rating as a Service component for OpenStack
This release is part of the ocata release series.
Download the package from:
https://pypi.python.org/pypi/cloudkitty
For more details, please see below.
Changes in cloudkitty 0.6.1..5.0.0
----------------------------------
31845a8 Trivial: fix warnings when build_sphinx
2ba69c4 Modify policy of get total/summary
f85dc55 Rename yaml file to keep consistent format
1798630 Refact Orchestrator
8945bc5 Fix JSON serialization error with sqlachemy storage backend
0f35d8d Fix compute service collection with ceilometer
7038eb4 Trivial: add the missing period
5af98e1 Add oslo_debug_helper to tox.ini
cf4305c Fix wrong option names and missed options in cloudkitty.conf.sample
ad173be Get total price group by res_type and tenant_id
138d85e Fix pep8 check error
671fbb9 Improve User Experience by adding an info REST entrypoint
0fbb20a Added release note for cloudkitty
25910c7 Add a note to indicate the change of default port
6761087 Generate the needed configuration files for devstack
4672cf9 [docs] Add rating module introduction
ae94b6d The qty's type should be more precision in storage tables
932b5fe Replace oslo_utils.timeutils.isotime
982b5c6 Update the documentation to propose the usage of keystone v3
5d35fa1 Introduce hacking check to Cloudkitty
b3e6efa Bring the begin/end checking before the storage module
cd994fb Ensure the exist of writer path
f9a16c5 devstack: support the gnocchi collector
240415f Don't include openstack/common in flake8 exclude list
e17cec1 Add .idea and vim temp/swap types to .gitignore
7336f8a Delete the magic number
8e38bd4 Use keystone v3 instead of keystone v2 in cloudkitty's devstack plugin
80d4aaf Remove discover from test-requirements
1123103 Pin kombu to < 4.0.0 to fix gate error
03bc777 Add wrapper for decimal.Decimal objects in json.dumps()
29410ca Replace six.iteritems() with .items()
a106fd8 Show team and repo badges on README
6f1fa2f Add PyScript module documentation
85920c9 Fix devstack plugin compatibility
460c4e3 Add Apache 2.0 license header to the alembic/script.py.mako
5553b95 Update the install docs
994c6f7 Modify variable's using method in Log Messages
681f875 Rename the gabbi filename to avoid GabbiSyntaxWarning
d9ad38c Replaces uuid.uuid4 with uuidutils.generate_uuid()
f6af017 Make begin and end optional when get dataframes
470ec70 Don't include */alembic/version/* in flake8 exclude list
babfc92 Upgrade oslo.messaging to 5.2.0
4aa4d66 Enable DeprecationWarning in test environments
8dbb42d Remove mox3 in test-requirement.txt
da42758 Add http_proxy_to_wsgi to api_paste
5d95908 Enable code coverage report in console output
584d81b Remove html_static_path from doc
3acacc7 Add Python 3.5 classifier and venv for cloudkitty
Diffstat (except docs and test files)
-------------------------------------
.gitignore | 13 +
HACKING.rst | 102 +++
README.rst | 9 +
cloudkitty/api/app.py | 6 +-
cloudkitty/api/hooks.py | 10 +-
cloudkitty/api/middleware.py | 2 +-
cloudkitty/api/v1/controllers/__init__.py | 2 +
cloudkitty/api/v1/controllers/info.py | 83 +++
cloudkitty/api/v1/controllers/report.py | 70 +-
cloudkitty/api/v1/controllers/storage.py | 8 +-
cloudkitty/api/v1/datamodels/info.py | 65 ++
cloudkitty/api/v1/datamodels/report.py | 75 ++
cloudkitty/backend/__init__.py | 4 +-
cloudkitty/cli/writer.py | 9 +
cloudkitty/collector/__init__.py | 25 +
cloudkitty/collector/ceilometer.py | 68 +-
cloudkitty/collector/fake.py | 18 +
cloudkitty/collector/gnocchi.py | 22 +-
cloudkitty/common/config.py | 11 +-
cloudkitty/common/policy.py | 3 +
cloudkitty/db/sqlalchemy/alembic/script.py.mako | 15 +
...ac2217dcbd9_added_support_for_meta_collector.py | 13 +
...385e33fef139_added_priority_to_modules_state.py | 13 +
.../versions/464e951dc3b8_initial_migration.py | 13 +
cloudkitty/hacking/__init__.py | 0
cloudkitty/hacking/checks.py | 386 ++++++++++
cloudkitty/orchestrator.py | 37 +-
cloudkitty/rating/hash/__init__.py | 4 +-
.../hash/db/sqlalchemy/alembic/script.py.mako | 15 +
...7df_rename_mapping_table_to_hashmap_mappings.py | 13 +
.../versions/3dd7e13527f3_initial_migration.py | 13 +
.../4da82e1c11c8_add_per_tenant_hashmap_support.py | 20 +-
.../4fa888fd7eda_added_threshold_support.py | 13 +
.../versions/54cc17accf2c_fixed_constraint_name.py | 13 +
...88a06b1cfce_clean_hashmap_fields_constraints.py | 13 +
.../f8c799db4aa0_fix_unnamed_constraints.py | 56 +-
cloudkitty/rating/hash/db/sqlalchemy/api.py | 5 +-
.../pyscripts/db/sqlalchemy/alembic/script.py.mako | 15 +
.../versions/4f9efa4601c0_initial_migration.py | 13 +
cloudkitty/rating/pyscripts/db/sqlalchemy/api.py | 3 +-
cloudkitty/state.py | 11 +-
cloudkitty/storage/__init__.py | 7 +-
cloudkitty/storage/gnocchi/__init__.py | 54 +-
.../storage/gnocchi_hybrid/alembic/script.py.mako | 15 +
.../versions/4c2f20df7491_initial_migration.py | 36 +-
.../d39836d70aee_fixed_uuid_length_problem.py | 13 +
cloudkitty/storage/sqlalchemy/__init__.py | 62 +-
.../storage/sqlalchemy/alembic/script.py.mako | 15 +
.../versions/17fd1b237aa3_initial_migration.py | 38 +-
.../versions/307430ab38bc_improve_qty_precision.py | 35 +
.../792b438b663_added_tenant_informations.py | 15 +-
cloudkitty/storage/sqlalchemy/models.py | 2 +-
cloudkitty/tenant_fetcher/keystone.py | 5 +-
.../gabbi/rating/hash/gabbits/hash-empty.yaml | 28 +
.../gabbi/rating/hash/gabbits/hash-errors.yaml | 318 ++++++++
.../gabbi/rating/hash/gabbits/hash-location.yaml | 144 ++++
.../gabbi/rating/hash/gabbits/hash_empty.yaml | 28 -
.../gabbi/rating/hash/gabbits/hash_errors.yaml | 318 --------
.../gabbi/rating/hash/gabbits/hash_location.yaml | 144 ----
cloudkitty/transformer/__init__.py | 7 +-
cloudkitty/transformer/ceilometer.py | 23 +
cloudkitty/transformer/format.py | 2 +-
cloudkitty/transformer/gnocchi.py | 25 +
cloudkitty/utils.py | 43 +-
cloudkitty/write_orchestrator.py | 3 +
devstack/plugin.sh | 32 +-
etc/cloudkitty/api_paste.ini | 6 +-
etc/cloudkitty/cloudkitty.conf.sample | 798 ---------------------
etc/cloudkitty/policy.json | 8 +-
etc/oslo-config-generator/cloudkitty.conf | 3 +-
releasenotes/source/_static/.placeholder | 0
releasenotes/source/_templates/.placeholder | 0
releasenotes/source/conf.py | 263 +++++++
releasenotes/source/index.rst | 16 +
releasenotes/source/unreleased.rst | 5 +
requirements.txt | 4 +-
setup.cfg | 1 +
test-requirements.txt | 10 +-
tox.ini | 13 +-
102 files changed, 4129 insertions(+), 2395 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 40f8504..e9c1af8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -17 +17 @@ oslo.config>=3.7.0 # Apache-2.0
-oslo.context>=2.2.0 # Apache-2.0
+oslo.context>=2.9.0 # Apache-2.0
@@ -22 +22 @@ oslo.log>=1.14.0 # Apache-2.0
-oslo.messaging>=4.0.0 # Apache-2.0
+oslo.messaging>=5.2.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index e455d2a..e38b022 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4 +4,4 @@
-hacking<0.10,>=0.9.2
+
+# hacking should be first
+hacking>=0.12.0,<0.13 # Apache-2.0
+
@@ -6 +9,2 @@ coverage>=3.6 # Apache-2.0
-discover # BSD
+kombu<4.0.0 # BSD
+ddt>=1.0.1 # MIT
@@ -8 +11,0 @@ gabbi>=1.11.0,<=1.25.0 # Apache-2.0
-mox3>=0.7.0 # Apache-2.0
@@ -16,0 +20 @@ sphinxcontrib-pecanwsme>=0.8 # Apache-2.0
+reno>=1.8.0 # Apache2
1
0
We are gleeful to announce the release of:
cloudkitty-dashboard 5.0.0: CloudKitty Horizon dashboard
This release is part of the ocata release series.
Download the package from:
https://pypi.python.org/pypi/cloudkitty-dashboard
For more details, please see below.
Changes in cloudkitty-dashboard 0.6.1..5.0.0
--------------------------------------------
0efc3c6 Add module priority in the dashboard
7bbf02e User experience improvement on hashmap's forms
e328eda Remove py26 support
1299dc4 Added release note for cloudkittydashboard
5cdebd7 fix bug: change getSelectedImage to getSelectedImageOrSnapshot
2118c2b Set upper-constraints for tox
ab732b5 remove useless file: dashboards/admin/dashboard.py
59f5050 Show team and repo badges on README
97d25ae Don't include openstack/common in flake8 exclude list
00adadd Drop MANIFEST.in - it's not needed by pbr
131d1a8 Fix miss import _
7bafa51 Update home page link in cfg file
Diffstat (except docs and test files)
-------------------------------------
MANIFEST.in | 6 -
README.rst | 9 +
cloudkittydashboard/dashboards/admin/dashboard.py | 26 --
.../dashboards/admin/hashmap/forms.py | 81 ++++++-
.../dashboards/admin/hashmap/tables.py | 4 +
.../hashmap/templates/hashmap/service_details.html | 7 +
.../dashboards/admin/hashmap/views.py | 35 ++-
.../dashboards/admin/modules/forms.py | 33 +++
.../dashboards/admin/modules/tables.py | 16 +-
.../dashboards/admin/modules/urls.py | 4 +-
.../dashboards/admin/modules/views.py | 34 +++
.../dashboards/project/rating/views.py | 1 +
.../static/cloudkitty/js/pricing.js | 2 +-
openstack-common.conf | 6 -
releasenotes/notes/.placeholder | 0
releasenotes/source/_static/.placeholder | 0
releasenotes/source/_templates/.placeholder | 0
releasenotes/source/conf.py | 263 +++++++++++++++++++++
releasenotes/source/index.rst | 16 ++
releasenotes/source/unreleased.rst | 5 +
setup.cfg | 3 +-
test-requirements.txt | 1 +
tox.ini | 9 +-
23 files changed, 504 insertions(+), 57 deletions(-)
Requirements updates
--------------------
diff --git a/test-requirements.txt b/test-requirements.txt
index 31f5ce4..8859dbe 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14,0 +15 @@ testtools>=1.4.0
+reno>=1.8.0 # Apache2
1
0
We enthusiastically announce the release of:
vitrage-dashboard 1.1.1: Vitrage Horizon plugin
This release is part of the ocata stable release series.
Download the package from:
https://tarballs.openstack.org/vitrage-dashboard/
For more details, please see below.
1.1.1
^^^^^
New Features
* Added "highlight" functionality. When a user selects a vertex in
the Vitrage Entity Graph, the vertex is highlighted together with
its neighbors. It helps the user focus on the relevant area in the
graph and understand the topology.
* Added "Pin All" functionality. In Newton, the user was able to pin
an entity in the Vitrage Entity Graph by double-clicking it. In
Ocata, by clicking the "Pin All" button the user can pin all
entities, so their locations will not change if the page is being
reloaded or if new entities are added to the graph.
* The "Vitrage Topology View" was enhanced. It looks better,
visually, and is much easier to understand.
* Added the "Templates View" under the Vitrage tab in Horizon. This
view shows a list of the currently loaded templates in Vitrage, with
their statuses. The user can view the contents of each template and
understand the effect it has on the alarms correlation.
Changes in vitrage-dashboard 1.1.0..1.1.1
-----------------------------------------
b73c387 entities graph refresh fix, now shows red alarm
a620a33 Added release notes to vitrage-dashboard
99aa4ec Fix setup.cfg package name
c2e2586 entities graph refresh fix, now shows red alarm
484c1e6 fix $modal after bootstrap upgrade
Diffstat (except docs and test files)
-------------------------------------
README.rst | 6 +-
releasenotes/notes/highlight-fc02111debe1e3f5.yaml | 6 +
releasenotes/notes/pin-all-eca759914ddd1429.yaml | 7 +
.../sunburst-enhancements-dd6126beed02ccb4.yaml | 4 +
.../notes/template-view-4f10a05c52680f75.yaml | 6 +
releasenotes/source/_static/.placeholder | 0
releasenotes/source/_templates/.placeholder | 0
releasenotes/source/conf.py | 79 +++
releasenotes/source/index.rst | 18 +
releasenotes/source/unreleased.rst | 5 +
setup.cfg | 2 +-
test-requirements.txt | 1 +
tox.ini | 3 +
.../components/sunburst/sunburst.directive.js | 2 +-
.../project/entities/entities.controller.js | 614 ++++++++++++++++++---
.../dashboard/project/services/modal.service.js | 6 +-
16 files changed, 664 insertions(+), 95 deletions(-)
Requirements updates
--------------------
diff --git a/test-requirements.txt b/test-requirements.txt
index 21a7e3b..39905a0 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14,0 +15 @@ testtools>=1.4.0
+reno>=1.8.0 # Apache-2.0
1
0
We are excited to announce the release of:
vitrage 1.5.0: The OpenStack RCA Service
This release is part of the ocata stable 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.5.0
^^^^^
The main focus of Vitrage in the Ocata version was to enhance the
integration with external projects, to support more use cases, and to
give more value to the user.
New Features
************
* A new "Collectd Datasource" was added, to handle notifications
coming from collectd. collectd is a fast system statistics
collection daemon, with plugins that collect different metrics. We
tested the DPDK plugin, that can trigger alarms such as interface
failure or noisy neighbors.
* A new "Doctor Datasource" was added in order to support the OPNFV
Doctor Inspector requirements. This datasource handles notifications
sent from the Doctor monitor. If a "compute.host.down" notification
arrives, the Doctor datasource will create an alarm on the host in
Vitrage, call nova force-down API and create deduced alarms on the
relevant instances and applications.
* The Vitrage "Static Datasource" is meant to define in a yaml file
cloud resources that cannot be retrieved dynamically. Switches are a
good example, as currently no OpenStack project provides information
about them. In Newton, only switches could be defined in the static
yaml files. In Ocata the file definition was enhanced, so the user
can define practically everything. The new schema is subset of the
Vitrage evaluator templates schema, to make it easier to use and
maintain.
* The "Aodh Datasource" is used to collect alarms from Aodh and pass
them to Vitrage, so Vitrage can correlate them with other alarms in
the system. In Ocata we added support for receiving immediate
notifications on alarm state changes from Aodh. This allows Vitrage
to act immediately in case Aodh detects a problem and there is a
need to trigger new alarms (e.g. on an application) or modify the
states of resources.
Deprecation Notes
*****************
* The "static_physical" file format is deprecated. Please use the
new "static" file format instead.
Changes in vitrage 1.4.0..1.5.0
-------------------------------
fd27b65 Added prelude to the Ocata release notes
10006a9 not condition
add310b Added Ocata release notes
4d7f675 no more mocks
fdb88a5 fix mapping to create an alarm on a resource other then host
c14ee5c Updated from global requirements
312617d Allow interchangeable graph class for the entity graph. Graph driver class is a configurable entry point using stevedore, can be changed in entry_points.txt and vitrage.conf. NetworkX graph - classes encapsulation, can now easily be replaced
7a2938d change the way I create a alarm id
544533c more tempests changes
a052423 Code refactoring - EntityGraph class functionality moved to a processor utils
6076a7c Rename `config_id` to `static_id`
Diffstat (except docs and test files)
-------------------------------------
devstack/gate_hook.sh | 3 +
devstack/plugin.sh | 3 -
etc/vitrage/alarms.sample.json | 64 ---
.../datasources_values/network.interface.yaml | 22 ++
etc/vitrage/graph.sample.json | 434 ---------------------
etc/vitrage/rca.sample.json | 65 ---
etc/vitrage/vitrage.conf.sample | 3 -
.../collectd-datasource-a730f06aff840c8f.yaml | 6 +
.../notes/doctor-datasource-59ee5b2afb677ab4.yaml | 8 +
.../notes/ocata-prelude-9b64d68bc898f7ec.yaml | 5 +
...ic-datasource-refactoring-2cc7569fafbe65c6.yaml | 12 +
...upport-aodh-notifications-cc495f3bc137099d.yaml | 8 +
releasenotes/source/conf.py | 1 +
releasenotes/source/index.rst | 13 +-
requirements.txt | 2 +-
setup.cfg | 3 +
test-requirements.txt | 2 +-
vitrage/api/__init__.py | 3 -
vitrage/api/controllers/rest.py | 21 -
vitrage/api/controllers/v1/alarm.py | 5 +-
vitrage/api/controllers/v1/rca.py | 5 +-
vitrage/api/controllers/v1/topology.py | 5 +-
vitrage/api_handler/apis/rca.py | 3 +-
vitrage/api_handler/apis/template.py | 2 +-
vitrage/api_handler/apis/topology.py | 3 +-
vitrage/cmd/graph.py | 4 +-
vitrage/common/utils.py | 15 +
.../collectd/collectd_vitrage/vitrageplugin.py | 45 ++-
vitrage/datasources/collectd/driver.py | 8 +-
vitrage/datasources/collectd/properties.py | 3 +
vitrage/datasources/collectd/transformer.py | 8 +
vitrage/datasources/launcher.py | 1 +
vitrage/datasources/nova/zone/transformer.py | 3 +-
vitrage/datasources/static/__init__.py | 2 +-
vitrage/datasources/static/driver.py | 16 +-
vitrage/datasources/static/transformer.py | 4 +-
vitrage/entity_graph/__init__.py | 14 +
vitrage/entity_graph/processor/entity_graph.py | 99 -----
vitrage/entity_graph/processor/processor.py | 32 +-
vitrage/entity_graph/processor/processor_utils.py | 58 +++
vitrage/evaluator/scenario_evaluator.py | 9 +-
vitrage/graph/algo_driver/__init__.py | 16 +-
vitrage/graph/algo_driver/networkx_algorithm.py | 22 +-
vitrage/graph/driver/__init__.py | 13 -
vitrage/graph/driver/graph.py | 52 ++-
vitrage/graph/driver/networkx_graph.py | 52 +--
vitrage/graph/driver/notifier.py | 4 +-
.../driver/driver_static_snapshot_dynamic.json | 2 +-
.../static_datasources/switch_to_host.yaml | 16 +-
.../unit/datasources/static/test_static_driver.py | 10 +-
.../entity_graph/processor/test_entity_graph.py | 88 ++---
.../unit/entity_graph/processor/test_processor.py | 3 +-
71 files changed, 539 insertions(+), 1048 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 17d1f51..2e276d7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13 +13 @@ python-neutronclient>=5.1.0 # Apache-2.0
-python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0
+python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index bcb362e..02fea7f 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -13 +13 @@ python-neutronclient>=5.1.0 # Apache-2.0
-python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0
+python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0
1
0
We are tickled pink to announce the release of:
python-vitrageclient 1.1.1: Vitrage Client API Library
This release is part of the ocata stable release series.
Download the package from:
https://pypi.python.org/pypi/python-vitrageclient
For more details, please see below.
1.1.1
^^^^^
New Features
* A new "event post" API was added in order to support the OPNFV
Doctor Inspector requirements. It can be used for posting events
from an external monitor or datasource to Vitrage. In the Doctor use
case, if a "compute.host.down" event is posted, then it is handled
by the new "Doctor Datasource".
* Multi Tenancy support was added to all Vitrage API queries. In
Ocata, a user will only see alarms and resources which belong to his
tenant.
* Added OpenStack Client support
Changes in python-vitrageclient 1.1.0..1.1.1
--------------------------------------------
11e97cc Ocata release notes
Diffstat (except docs and test files)
-------------------------------------
releasenotes/notes/event-post-api-e30548bb0a6fa6ac.yaml | 7 +++++++
releasenotes/notes/multi-tenancy-support-b8d4cd83e9ded7bc.yaml | 4 ++++
releasenotes/notes/osc-support-fab94b809caa7eac.yaml | 3 +++
releasenotes/source/conf.py | 1 +
releasenotes/source/index.rst | 8 ++++----
5 files changed, 19 insertions(+), 4 deletions(-)
1
0
We are ecstatic to announce the release of:
gnocchi 3.1.0: Metric as a Service
Download the package from:
https://tarballs.openstack.org/gnocchi/
For more details, please see below.
3.1.0
^^^^^
New Features
************
* Allow to search for values in metrics by using one or more
granularities.
* A new archive policy named *bool* is provided by default. It
provides a cheap and easy way to store boolean measures (0 and 1).
* The REST API authentication mechanism is now pluggable. You can
write your own plugin to specify how segregation and policy should
be enforced.
* Add support to backfill timestamps with missing points in a subset
of timeseries when computing aggregation across multiple metrics.
User can specify *fill* value with either a float or *null* value. A
granularity must be specified in addition to *fill*.
* When sending measures in batch for resources, it is now possible
to pass *create_metric=true* to the query parameters so missing
metrics are created. This only works if an archive policy rule
matching those named metrics matches.
* Add *resample* parameter to support resampling stored time-series
to another granularity not necessarily in existing archive policy.
If both resampling and reaggregation parameters are specified,
resampling will occur prior to reaggregation.
* The *gnocchi-config-generator* program can now generates a default
configuration file, usable as a template for custom tweaking.
* A healthcheck endpoint is provided by default at /healthcheck. It
leverages oslo_middleware healthcheck middleware. It allows to
retrieve information about the health of the API service.
* gnocchi-metricd now uses the cotyledon/oslo.config helper to
handle configuration file reloading. You can dynamically change the
number of workers by changing the configuration file and sending
SIGHUP to the metricd master process.
* When updating a resource attribute, it's now possible to pass the
option 'fill' for each attribute to fill existing resources.
* required=True is now supported when updating resource type. This
requires the option 'fill' to be set.
* New storage driver for AWS S3. This new driver works in the same
way that the Swift driver, expect that it leverages the Amazon Web
Services S3 object storage API.
* The storage of new measures that ought to be processed by
*metricd* can now be stored using different storage drivers. By
default, the driver used is still the regular storage driver
configured. See the *[incoming]* section in the configuration file.
Known Issues
************
* The conversion mechanism provided by the API to convert non-UUID
resource id to UUID is now also based on the user creating/accessing
the resource. This makes sure that the conversion generates a unique
UUID for the user and that several users can use the same string as
*original_resource_id*.
Upgrade Notes
*************
* The new *auth_type* option specifies which authentication system
to use for the REST API. Its default is still *noauth*.
* Ceph driver has moved the storage of measures metadata from xattr
to omap API. Already created measures are migrated during gnocchi-
upgrade run.
* The *auth_type* option has a new default value set to "basic".
This mode does not do any segregation and uses the standard HTTP
*Authorization* header for authentication. The old "noauth"
authentication mechanism based on the Keystone headers (*X-User-Id*,
*X-Creator-Id* and *X-Roles*) and the Keystone segregation rules,
which was the default up to Gnocchi 3.0, is still available.
* The api.pecan_debug has been removed.
* Since *original_resource_id* is now unique per creator, that means
users cannot refer to resource by using the *original_resource_id*
if the resource was not created by them.
Deprecation Notes
*****************
* The *created_by_user_id* and *created_by_project_id* field are now
deprecated and being merged into a unique *creator* field. The old
fields are still returned and managed by the API for now.
Bug Fixes
*********
* '/' in resource id and metric name have been accepted by mistake,
because they can be POSTed but not GETed/PATCHed/DELETEd. Now this
char is forbidden in resource id and metric name, REST api will
return 400 if it presents. Metric name and resource id already
present with a '/' have their '/' replaced by '_'.
Other Notes
***********
* ceph driver now uses the rados async api to retrieve measurements
to process in parallel.
* The default archive policies "low" and "medium" are now storing
less data than they used to be. They are only using respectively 1
and 2 definition of archiving policy, which speeds up by 66% and 33%
their computing speed.
* Gnocchi now leverages microseconds timestamps available since
MySQL 5.6.4, meaning it is now the minimum required version of
MySQL.
* The *noauth* authentication mode now requires that the *X-User-Id*
and/or *X-Project-Id* to be present.
* The default archive policies list does not contain the 95pct and
median aggregation methods by default. These are the least used
methods and should make gnocchi-metricd faster by more than 25% in
the default scenario.
Changes in gnocchi 3.0.0..3.1.0
-------------------------------
6e41c34 tools: make measure injector works without gnocchiclient
5a8d3a4 paginate ceph report generation
2c0f2b6 indexer: make sure original_resource_id is never NULL
ad4b851 rest: string → UUID conversion for resource.id to be unique per user
34b7d30 tests: specify columns to compare in resource list
35ae345 modernise gabbi tests
7dd8a32 supporting disabling reporting process
dcb2a6a fix live gabbi test
cd8d85e ceph: set return limit
77d02ef tests: do not create a resource with a custom resource type in 2.2
e066d53 tests: factorize measure generation to speed up test
fc0e38c mysql: retry on table changes
0d268f5 Revert "indexer: catch another mysql exception"
7d602de carbonara: numpy 1.9 have some bug with ? for bool
e87710d tests: use GNU sed where needed
e011cdd storage: Read incoming config correctly
2bc624f noauth: force user to be provided
60ae8fa cleanup noauth path
c2c8cef doc: move devstack at the end
05ad548 tests: clean upgrade variable
5b974f3 Required some configuration options
5f58016 allow required=True when patching resource type
0a1b374 rest,indexer: handle ResourceUUID conversion in the REST API
f27ec58 sqlalchemy: use a list rather than if/elif to convert type in queries
a7bc20c Revert "indexer: fix datetime with mysql >= 5.7.17"
f97a586 Update Pandas requirements to 0.18
451dbda Add a release note about storage/incoming split
ac7ae99 drop gnocchi_<id>_container object
2361401 indexer: catch another mysql exception
c4027ce stop validating aggregation on init
2e29652 increase timeout
24d2210 Remove redundant comma
9f3de46 carbonara: resample() with scipy/numpy
d2435dc Fix error message
417dd91 carbonara: add tests for each aggregation
34cc642 carbonara: add resample() benchmark
3b99004 utils: use proper timedelta conversion
67807cd tests: increase benchmark timeout for Carbonara
e3597ad sqlalchemy: fix compat search on created_by_project_id
fdefb41 serialise: simplify array format
ed028da carbonara: add merge() benchmark
c7b4f40 carbonara: don't use groupby for split
ce79e4b Remove non-existent -all suffix in tox targets
a5e9cd5 Remove py{27,35} from valid tox targets
e1219e2 indexer: fix datetime with mysql >= 5.7.17
71e437b carbonara: Add benchmark for split()
c3ab47d carbonara: use numpy for unserialization
9cc3485 carbonara: use numpy for serialization
5596bde carbonara: Don't use clean_ts()
ddf69cf carbonara: handle timestamps from struct with numpy
eaa1681 carbonara: remove a pandas.iteritems()
ff5bbc4 carbonara: prepare datetime for pandas.to_datetime()
7ceed2e add metricd tester for profiling
5005d59 rest: returns orignal resource id
9a4f414 indexer: fix migration script "no_more_slash"
b39eead Remove workaround to upgrade from 2.2.0
b817a8b utils: allow ResourceUUID to convert UUID
40b6492 cleanup invalid upgrade errors
b8ef321 archive_policy: provide a boolean storage archive policy by default
2aae94a storage: add more debug information to trace behaviour
db02e6b opts: list entry points with pkg_resources rather than stevedore
ea9ae16 mysql: fix timestamp upgrade
fece429 rest: reject / as resource id and metric name
b0b8c1a tests: Fix upgrade script
ab4d74c ceph: enhance the documentation
9da4e07 Introduce "basic" authentication mechanism
5633edd don't override logging when loading alembic module
c03958b upgrade: fix OS_AUTH_TYPE variable name
63e1cd9 Add sem-ver flag so pbr generates correct version
546bd69 ceph: fix data compression when oldest_mutable_timestamp == next(key)
410b164 Add gnocchi-config-generator
1aaf8be Remove broken script
e534ebb Fix a typo in estimated sizing per metric under archive policies
39265b4 Merge project and user id in a creator field
020dce5 test: remove unnused method
054b306 Create a base exception for resource type error
d55f6f0 ceph: Workaround for oslo.config interpolation bug
178a349 indexer: fix resource type update
fc10dba Tests to confirm resources are searchable.
da0498e rest: introduce auth_helper to filter resources
98a4961 rest: add auth_mode to pick authentication mode
37db178 Move default policy.json away from etc/
6964ac2 Ship api-paste.ini out of etc/
3b1415e rest: make sure 409 is returned when double creating resource with non-UUID
c751087 tools: import a small tools to compute size of archive policies
246b787 archive_policy: lighten the default archive policies
6449ed8 run-tests: use case rather than if/elif/else
72fdba7 metricd: move metricd options in metricd group
00d842c storage: remove temporary incoming setup
9376c00 Introduce new storage groups for storage
2cb85a7 devstack: prepare ceph keyring before using it
ca43bec Adjust testr group_regex to not group on 'prefix'
9200ae3 storage: split s3 driver
3632911 Fix expected content-type and move CORS tests to gabbi
1dcd2fd [doc] Note lack of constraints is a choice
c5dd0d9 gabbi: remove unused variable
4a7a3cc rest: catch create_metric duplicate
cd82f8d Revert "add mysql minimum version check"
57bbee6 add mysql minimum version check
85a39e3 All granularity input should be parsed as timespan
5edc39a fill series when aggregating cross metrics
14c58fc carbonara: log a message and do not fail if a file is missing
fb31248 Enable H904 hacking check
05c2656 storage: split swift driver
3385186 doc: add a page talking about collectd support
7cff2f7 Enable oslo_middleware healthcheck middleware by default
bbe2d37 use datetime when defining series range
9d0192a storage: split ceph driver
ecbb5fd storage: split file driver
f5794af fix oslo.db 4.15.0 breakage
4bdb88b rest: remove user_id and project_id from metric schema
fcf08aa api: use egg entry_point rather than code path
dbcfa9c doc: Add reference to gnocchi-nagios tool
b6d08c2 fix logging...
77c0aa0 rest: don't ignore measures of created metrics
049116d Modify variable's using method in Log Messages
9055624 Fix two trivial docs errors in architecture.rst
e413a93 storage: split the storage interface
14a7cba config: only include oslo.middleware options that are shipped
0b970f0 doc: remove unused links
db38938 file: remove tmp configuration
5b833bb storage: remove _pending_measures_to_process_count()
8612ab8 storage: split process_new_measures()
b48483a Remove 95pct and median from default archive policies
38c2d32 rest: wait for the thread pool executor result
00b349e indexer: list_metric(), skip sql if names is empty
e6d3cee rest: Don't use private webob API
4e5b18d rest: fix batching error handling
516e681 rest: don't fail if the batch measure is not a dict
db7ea6a Replace retry with tenacity.retry
e2732af ceph: make computed measures read async
ff53ff8 utils: do not retry on any exception
c5779e4 Remove usage of deprecated operatorPrecedence and remove duplicate operators
6959709 drop pytimeparse requirement
21966a7 support pandas.to_timedelta
fd8b81b Bump hacking to 0.12
219fd0d rest: use flatten_dict_to_keypairs instead of recursive_keypairs
0c66859 carbonara: add support for Gnocchi v2 measures format
68a2a35 support resampling on aggregation endpoint
7418017 support resampling
abfa908 Use tenacity.TryAgain rather than a own-defined exception
f9b19ad rest: allow to create missing metrics when sending measures in batch
04dde36 Interpolate strings using logging own methods
04917de metricd: retry slowly coordination connection failure
e4d3b57 rest: don't use is_body_seekable
ad5b4fc Allow timespan to be floating values
021a041 rest: empty search query in resource search
a8c170d ceph: move out of xattr completely
b97a91a support consistent timestamps
c95b98f Revert "drop non-I/O threading in upgrade"
dd7cda9 rest: register default JSON converter using pecan.jsonify
1e8b6de Don't hang with wsgiref
234b0f0 Add missing granularity to base storage class
e1ab93c json: remove outdated comment
2ba63d4 Update doc because default services are all being added to settings
4637aeb accommodate new oslo.config
06fcd34 devstack: stop all gnocchi services, not just api
b04b370 Fix incorrect EXTRA_FLAVOR in plugin.sh
e7d8faf rest: using ujson to deserialize
839316a doc: add s3 to the list of Carbonara based drivers
37d8fea Fix typo in release note file
6430afb Unify timestamp parsing
537cd29 rest: fix Epoch timestamp parsing
34beae6 test: rewrite test_post_unix_timestamp in Gabbi
4bc5170 Remove pecan_debug option
0e453f2 test: allow to pass OS_DEBUG
16a05de Remove unused requests dependency
9a95873 carbonara: fix SplitKey with datetime greater than 32bits value
201dc6d Revert "Remove the file named MANIFEST.in"
2ac7a20 Add helper for utcnow to epoch nano
2b1ed8d Add http_proxy_to_wsgi to api-paste
510d799 Use Cotyledon oslo config glue
6baf05b Add a S3 based storage driver
5186bcc tox: only install all storage drivers in py-$index or py-#index-all
50c6141 Remove Python 3.4 support
93bb23d doc,tests: fix reaggregate/reaggregation mispelling
b36b66e Fix oslo.log minimum requirement
bb3cd40 Remove the file named MANIFEST.in
811a8fd Stop adding ServiceAvailable group option
bbc821d sqlalchemy: use precise DATETIME rather than DECIMAL in MySQL
bbbe67e enable threading of batched writes
83f0299 switch to stop validating batch individually
c34b246 Don't mock ceph
0a06089 upgrade tests: don't patch gnocchi 3.0
1157cac tests: Cover resource-type modification
0198b5b Use xx=None instead of xx=[] to initialize the default value
35c4a08 Fix some gabbi tests
15c0c71 Add STRICT_RESPONSE_HEADERS check to gabbi tests
984a976 Add upgrade targets for Gnocchi 3.0
e26bf90 tox: shorter envdir name for upgrade target
21845a8 remove the pandas module in test test_carbonara.py
07034a1 doc: include stable/3.0 release notes
b5106eb Fix typos in tests/gabbi/gabbits/resource.yaml
b5ad717 Add granularity in searching for values in metrics
b8c0c23 Modify api startup parameters in devstack plugin
723557f Replace retrying with tenacity
31cdcb5 ceph: fix python3 issue
bd14276 Add simple upgrade tests
7a37e4e compute new first_block_timestamp once
3a8f315 Allow to pass search filter in the query string
Diffstat (except docs and test files)
-------------------------------------
.testr.conf | 2 +-
bindep.txt | 2 +
devstack/gate/post_test_hook.sh | 1 -
devstack/plugin.sh | 31 +-
devstack/settings | 1 -
etc/gnocchi/api-paste.ini | 31 --
etc/gnocchi/gnocchi-config-generator.conf | 9 -
etc/gnocchi/policy.json | 42 --
gnocchi/aggregates/moving_stats.py | 9 +-
gnocchi/archive_policy.py | 32 +-
gnocchi/carbonara.py | 482 +++++++++++++------
gnocchi/cli.py | 92 +++-
gnocchi/genconfig.py | 13 +-
gnocchi/gendoc.py | 8 +-
gnocchi/gnocchi-config-generator.conf | 11 +
gnocchi/indexer/__init__.py | 12 +-
gnocchi/indexer/alembic/alembic.ini | 34 --
gnocchi/indexer/alembic/env.py | 5 -
.../1e1a63d3d186_original_resource_id_not_null.py | 39 ++
.../397987e38570_no_more_slash_and_reencode.py | 185 +++++++
.../5c4f93e5bb4_mysql_float_to_timestamp.py | 77 +++
.../aba5a217ca9b_merge_created_in_creator.py | 53 ++
gnocchi/indexer/sqlalchemy.py | 142 ++++--
gnocchi/indexer/sqlalchemy_base.py | 78 ++-
gnocchi/indexer/sqlalchemy_extension.py | 26 +-
gnocchi/json.py | 14 +-
gnocchi/opts.py | 82 +++-
gnocchi/resource_type.py | 71 ++-
gnocchi/rest/__init__.py | 532 +++++++++++++--------
gnocchi/rest/api-paste.ini | 46 ++
gnocchi/rest/app.py | 29 +-
gnocchi/rest/auth_helper.py | 125 +++++
gnocchi/rest/policy.json | 42 ++
gnocchi/service.py | 18 +-
gnocchi/statsd.py | 41 +-
gnocchi/storage/__init__.py | 79 +--
gnocchi/storage/_carbonara.py | 410 ++++++++--------
gnocchi/storage/ceph.py | 286 +++--------
gnocchi/storage/common/__init__.py | 0
gnocchi/storage/common/ceph.py | 66 +++
gnocchi/storage/common/s3.py | 81 ++++
gnocchi/storage/common/swift.py | 63 +++
gnocchi/storage/file.py | 133 +-----
gnocchi/storage/incoming/__init__.py | 58 +++
gnocchi/storage/incoming/_carbonara.py | 85 ++++
gnocchi/storage/incoming/ceph.py | 209 ++++++++
gnocchi/storage/incoming/file.py | 124 +++++
gnocchi/storage/incoming/s3.py | 151 ++++++
gnocchi/storage/incoming/swift.py | 98 ++++
gnocchi/storage/s3.py | 200 ++++++++
gnocchi/storage/swift.py | 118 +----
gnocchi/tempest/config.py | 13 +-
gnocchi/tempest/plugin.py | 13 +-
.../gabbi/gabbits/metric-timestamp-format.yaml | 60 +++
gnocchi/utils.py | 169 +++++--
...add-parameter-granularity-7f22c677dc1b1238.yaml | 4 +
.../archive_policy_bool-9313cae7122c4a2f.yaml | 5 +
.../notes/auth_type_option-c335b219afba5569.yaml | 5 +
.../auth_type_pluggable-76a3c73cac8eec6a.yaml | 5 +
...ackfill-cross-aggregation-2de54c7c30b2eb67.yaml | 6 +
...e_measures_create_metrics-f73790a8475ad628.yaml | 5 +
releasenotes/notes/ceph-omap-34e069dfb3df764d.yaml | 5 +
.../notes/ceph-read-async-ca2f7512c6842adb.yaml | 4 +
.../notes/creator_field-6b715c917f6afc93.yaml | 6 +
.../notes/dynamic-resampling-b5e545b1485c152f.yaml | 6 +
.../notes/forbid-slash-b3ec2bc77cc34b49.yaml | 7 +
.../gnocchi_config_generator-0fc337ba8e3afd5f.yaml | 5 +
.../healthcheck-middleware-81c2f0d02ebdb5cc.yaml | 5 +
...-default-archive-policies-455561c027edf4ad.yaml | 5 +
.../mysql_precise_datetime-57f868f3f42302e2.yaml | 4 +
.../noauth-force-headers-dda926ce83f810e8.yaml | 5 +
.../noauth-keystone-compat-e8f760591d593f07.yaml | 9 +
.../pecan-debug-removed-1a9dbc4a0a6ad581.yaml | 3 +
releasenotes/notes/reloading-734a639a667c93ee.yaml | 6 +
...fault-aggregation-methods-2f5ec059855e17f9.yaml | 5 +
...-type-required-attributes-f446c220d54c8eb7.yaml | 6 +
releasenotes/notes/s3_driver-4b30122bdbe0385d.yaml | 5 +
.../notes/storage-incoming-586b3e81de8deb4f.yaml | 6 +
.../notes/uuid5-change-8a8c467d2b2d4c85.yaml | 12 +
requirements.txt | 18 +-
setup.cfg | 30 +-
tools/gnocchi-archive-policy-size.py | 49 ++
tools/measures_injector.py | 26 +-
tox.ini | 83 +++-
128 files changed, 6499 insertions(+), 2617 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 23cf70d..ea3d96a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2 +2 @@ pbr
-numpy
+numpy>=1.9.0
@@ -5 +5 @@ oslo.config>=2.6.0
-oslo.log>=1.0.0
+oslo.log>=2.3.0
@@ -8,3 +8,4 @@ oslo.serialization>=1.4.0
-oslo.utils>=3.3.0
-oslo.middleware>=3.11.0
-pandas>=0.17.0
+oslo.utils>=3.18.0
+oslo.middleware>=3.22.0
+pandas>=0.18.0
+scipy>=0.18.1 # BSD
@@ -12 +12,0 @@ pecan>=0.9
-pytimeparse>=1.1.5
@@ -15,2 +15 @@ jsonpatch
-cotyledon>=1.2.2
-requests
+cotyledon>=1.5.0
@@ -18,0 +18 @@ stevedore
+ujson
@@ -22 +22 @@ trollius; python_version < '3.4'
-retrying
+tenacity>=3.1.0 # Apache-2.0
1
0
We joyfully announce the release of:
python-watcher 1.0.0: OpenStack Watcher provides a flexible and
scalable resource optimization service for multi-tenant OpenStack-
based clouds.
This release is part of the ocata stable release series.
The source is available from:
https://github.com/openstack/watcher
Download the package from:
https://tarballs.openstack.org/watcher/
Please report issues through launchpad:
http://bugs.launchpad.net/watcher
For more details, please see below.
1.0.0
^^^^^
New Features
* Add notifications related to Action plan object.
Changes in python-watcher 0.34.0..1.0.0
---------------------------------------
d49c6c1 Added action_plan.execution.* actions
e51e7e4 Added action_plan.create|update|delete notifs
244d28a Add release note for action plan notifications
7ac1d0d Add first alembic version for db migration
52d701a Updated graph model to use attr_dict
ea1fd59 Fix context error for user
659cbf3 Idiomatic loop for calculate_num_migrations
198d827 Fix multinode tempest test failure
59c5adc Documentation update
Diffstat (except docs and test files)
-------------------------------------
devstack/lib/watcher | 2 +-
.../action_plan-execution-end.json | 55 +
.../action_plan-execution-error.json | 65 +
.../action_plan-execution-start.json | 55 +
.../plantuml/action_plan_state_machine.png | Bin 0 -> 59207 bytes
.../plantuml/action_plan_state_machine.txt | 2 +
.../plantuml/watcher_db_schema_diagram.png | Bin 0 -> 73517 bytes
.../plantuml/watcher_db_schema_diagram.txt | 4 +-
...rsioned-notifications-api-e8ca4f5d37aa5b4b.yaml | 3 +
watcher/api/controllers/v1/action_plan.py | 7 +-
watcher/applier/action_plan/default.py | 35 +-
watcher/applier/default.py | 4 +-
watcher/cmd/dbmanage.py | 6 +-
watcher/common/context.py | 2 +-
watcher/common/exception.py | 16 +-
watcher/db/sqlalchemy/alembic/README | 15 -
watcher/db/sqlalchemy/alembic/README.rst | 62 +
.../db/sqlalchemy/alembic/versions/001_ocata.py | 203 +++
watcher/db/sqlalchemy/alembic/versions/__init__.py | 0
watcher/db/sqlalchemy/migration.py | 2 +-
watcher/decision_engine/model/element/base.py | 3 +-
watcher/decision_engine/model/model_root.py | 58 +-
watcher/decision_engine/planner/weight.py | 2 +-
watcher/decision_engine/scope/default.py | 2 +-
.../strategy/strategies/basic_consolidation.py | 4 +-
watcher/decision_engine/sync.py | 6 +-
watcher/notifications/__init__.py | 1 +
watcher/notifications/action_plan.py | 312 ++++
watcher/notifications/audit.py | 49 +-
watcher/notifications/base.py | 6 +-
watcher/objects/action_plan.py | 54 +-
watcher/objects/base.py | 4 +
watcher/objects/fields.py | 3 +-
.../action_plan/test_default_action_handler.py | 61 +-
.../decision_engine/audit/test_audit_handlers.py | 11 +-
.../decision_engine/planner/test_weight_planner.py | 1 +
.../planner/test_workload_stabilization_planner.py | 1 +
.../notifications/test_action_plan_notification.py | 419 +++++
.../services/infra_optim/v1/json/client.py | 12 +
70 files changed, 3257 insertions(+), 595 deletions(-)
1
0
We are satisfied to announce the release of:
watcher-dashboard 1.0.0: Watcher Management Dashboard
This release is part of the ocata stable release series.
The source is available from:
http://git.openstack.org/cgit/openstack/watcher-dashboard
Download the package from:
https://tarballs.openstack.org/watcher-dashboard/
Please report issues through launchpad:
http://bugs.launchpad.net/watcher-dashboard
For more details, please see below.
Changes in watcher-dashboard 0.8.0..1.0.0
-----------------------------------------
d9852e7 Add [watcher] tag when using OpenStack ML
Diffstat (except docs and test files)
-------------------------------------
1 file changed, 1 insertion(+), 1 deletion(-)
1
0
We are satisfied to announce the release of:
aodh 4.0.0: OpenStack Telemetry Alarming
This release is part of the ocata release series.
Download the package from:
https://tarballs.openstack.org/aodh/
For more details, please see below.
4.0.0
^^^^^
New Features
************
* A healthcheck endpoint is provided by default at /healthcheck. It
leverages oslo_middleware healthcheck middleware. It allows to
retrieve information about the health of the API service.
Upgrade Notes
*************
* The api.pecan_debug option has been removed.
* All the deprecated non-SQL drivers have been removed.
Other Notes
***********
* Gnocchi aggregation capabilities are now cached to minimise
redundant calls to Gnocchi when validating aggregation methods. The
cache is stored in-memory for an hour. If additional aggregations
are added to Gnocchi, they will not be proprogated to Aodh's API
service for at most an hour or unless the service is restarted.
* Aodh now leverages microseconds timestamps available since MySQL
5.6.4, meaning it is now the minimum required version of MySQL.
Changes in aodh 3.0.0..4.0.0
----------------------------
2ad5fb7 Stop shipping Apache2 configuration file
4109e31 Switch to decorators.idempotent_id
a4c868b Fix all current typo bugs on Aodh project.
a80e26b Add sem-ver flag so pbr generates correct version
b0c91f9 Move policy.json out of etc
7b0435a Move api-paste file to common code location
30f4bfa install-guide: remove useless step
260bd26 api: add auth_mode option
bebe520 enable cachetools for gnocchi alarms
600d6ee modernise gabbi usage
3c8e029 property refactoring
57e7966 Simple pip install fails for python3
ae1b172 Simple pip install fails under python3
0ac9fca composite: fix evaluation of trending state alarms
5df34a8 Enable coverage report in console output
dc681f4 Fix expecting content-type headers
2d15753 Don't create multiple trust IDs per alarm
30ee864 [doc] Note lack of constraints is a choice
e86f216 Enable healthcheck app to check API status
aa9f7df Remove legacy policy file test
f73b6df Replaces uuid.uuid4 with uuidutils.generate_uuid()
4b66e5a Add missing webtest dependency in test
0057ace Remove API workers option
ff96089 Remove notes about MongoDB
7587ab9 Replace retrying with tenacity
ef08bc2 Add trust+zaqar:// action
b9242bf Refactor ZaqarAlarmNotifier and fix tests
d0fd852 Change for more useful output in log notifier
25b10e4 Improve docs for ZaqarAlarmNotifier
3a788c7 Fix typo in plugin.sh
ba56a0f add testresources req
5ae2845 cli: Fix --alarm-id in alarm conversion
d1944f7 Replaced e.message with str(e)
0e49f88 Bump hacking to 0.12
efcff7f Imported Translations from Zanata
7514b3d [instll] Update a more simple rabbitmq configuration
8bf672e cors: update default configuration using cors' own set_defaults funtion
5b42d9f Fix the endpoint type of zaqar notifier
97f32ee add alarm.deletion notification
3f4f637 read data from stdout instead of stderr
de31a0d Support keystone v3 for Zaqar notifier
f6dfbee devstack: fix mispelling of aodh-api in ENABLED_SERVICES
80ec5fb Remove testtools dependency
4570e42 Remove deprecated non-SQL drivers
4de0e84 Add http_proxy_to_wsgi to config-generator
d1391f7 sqlalchemy: use DATETIME(fsp=6) rather than DECIMAL
d24dff2 Remove pecan_debug option
0f2a80d Add http_proxy_to_wsgi to api-paste
0112415 Handle case where sample-api is disabled
2858989 Enable release notes translation
82eb0ab Fix typo
8643f4f Adds notes on how to launch aodh-api with uwsgi
65d9ae4 Remove default=None when set value in Config
b83b1ba sqlalchemy: remove Ceilometer upgrade workaround
5238e07 Fix locale builds
7198a1e Update reno for stable/newton
Diffstat (except docs and test files)
-------------------------------------
aodh/api/__init__.py | 15 +-
aodh/api/api-paste.ini | 47 +++
aodh/api/app.py | 66 ++--
aodh/api/controllers/root.py | 6 +-
aodh/api/controllers/v2/alarm_rules/gnocchi.py | 10 +-
aodh/api/controllers/v2/alarm_rules/threshold.py | 49 ++-
aodh/api/controllers/v2/alarms.py | 96 ++++--
aodh/api/controllers/v2/query.py | 2 +-
aodh/api/controllers/v2/utils.py | 2 +-
aodh/api/policy.json | 20 ++
aodh/api/rbac.py | 2 +-
aodh/cmd/alarm_conversion.py | 7 +-
aodh/cmd/data_migration.py | 162 ----------
aodh/conf/defaults.py | 29 +-
aodh/coordination.py | 35 +-
aodh/evaluator/__init__.py | 20 +-
aodh/evaluator/composite.py | 17 +-
aodh/evaluator/threshold.py | 10 +-
aodh/locale/de/LC_MESSAGES/aodh-log-error.po | 132 ++++++++
aodh/locale/de/LC_MESSAGES/aodh.po | 30 +-
aodh/locale/en_GB/LC_MESSAGES/aodh-log-error.po | 20 +-
aodh/locale/en_GB/LC_MESSAGES/aodh-log-info.po | 23 +-
aodh/locale/en_GB/LC_MESSAGES/aodh-log-warning.po | 22 +-
aodh/locale/es/LC_MESSAGES/aodh.po | 1 -
aodh/locale/fr/LC_MESSAGES/aodh.po | 1 -
aodh/locale/ko_KR/LC_MESSAGES/aodh.po | 1 -
aodh/notifier/log.py | 2 +-
aodh/notifier/rest.py | 7 +-
aodh/notifier/trust.py | 25 +-
aodh/notifier/zaqar.py | 109 +++++--
aodh/service.py | 7 +-
aodh/storage/__init__.py | 16 +-
aodh/storage/hbase/__init__.py | 0
aodh/storage/hbase/base.py | 78 -----
aodh/storage/hbase/inmemory.py | 283 -----------------
aodh/storage/hbase/migration.py | 43 ---
aodh/storage/hbase/utils.py | 250 ---------------
aodh/storage/impl_hbase.py | 189 -----------
aodh/storage/impl_mongodb.py | 106 -------
aodh/storage/impl_sqlalchemy.py | 22 +-
aodh/storage/models.py | 1 +
aodh/storage/mongo/__init__.py | 0
aodh/storage/mongo/utils.py | 297 -----------------
aodh/storage/pymongo_base.py | 317 -------------------
.../alembic/versions/12fe8fac9fe4_initial_base.py | 21 +-
.../367aadf5485f_precisetimestamp_to_datetime.py | 68 ++++
aodh/storage/sqlalchemy/models.py | 51 +--
.../functional/api/v2/test_alarm_scenarios.py | 150 ++++-----
.../api/v2/test_complex_query_scenarios.py | 4 +-
.../functional/gabbi/gabbits-live/alarms.yaml | 36 +--
.../functional/gabbi/gabbits/capabilities.yaml | 3 +-
.../functional/gabbi/gabbits/healthcheck.yaml | 7 +
.../storage/sqlalchemy/test_migrations.py | 1 -
.../functional/storage/sqlalchemy/test_models.py | 86 -----
.../functional/storage/test_data_migration.py | 112 -------
.../functional/storage/test_get_connection.py | 35 +-
.../functional/storage/test_storage_scenarios.py | 1 -
.../tempest/api/test_alarming_api_negative.py | 10 +-
devstack/gate/gate_hook.sh | 2 +-
devstack/plugin.sh | 64 +---
etc/aodh/aodh-config-generator.conf | 2 +
etc/aodh/api_paste.ini | 22 --
etc/aodh/policy.json | 20 --
etc/apache2/aodh | 39 ---
install-guide/source/configure-common.rst | 10 +-
install-guide/source/install-ubuntu.rst | 9 -
.../gnocchi-capability-cache-75d011e77b8ecc72.yaml | 8 +
.../notes/healthcheck-560700b72ae68e18.yaml | 5 +
.../notes/ingestion-lag-2317725887287fbc.yaml | 2 +-
.../mysql-precise-datetime-e374c77e6707985e.yaml | 4 +
.../pecan-debug-removed-7c7a528a1aea98bf.yaml | 3 +
.../remove-no-sql-drivers-21dfdbd750751340.yaml | 3 +
releasenotes/source/conf.py | 3 +
releasenotes/source/index.rst | 1 +
.../source/locale/de/LC_MESSAGES/releasenotes.po | 351 +++++++++++++++++++++
.../locale/en_GB/LC_MESSAGES/releasenotes.po | 10 +-
releasenotes/source/newton.rst | 6 +
requirements.txt | 7 +-
setup.cfg | 17 +-
tools/test_hbase_table_utils.py | 38 ---
tox.ini | 25 +-
109 files changed, 1512 insertions(+), 3382 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index e29b1ac..2676492 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5 +5 @@
-retrying!=1.3.0,>=1.2.3 # Apache-2.0
+tenacity>=3.2.1 # Apache-2.0
@@ -13 +13 @@ lxml>=2.3
-oslo.db>=1.12.0 # Apache-2.0
+oslo.db>=4.8.0,!=4.13.1,!=4.13.2,!=4.15.0 # Apache-2.0
@@ -22 +22 @@ oslo.messaging>=5.2.0 # Apache-2.0
-oslo.middleware>=3.0.0 # Apache-2.0
+oslo.middleware>=3.22.0 # Apache-2.0
@@ -33,0 +34 @@ WSME>=0.8
+cachetools>=1.1.6
1
0
We are tickled pink to announce the release of:
ceilometer 8.0.0: OpenStack Telemetry
This release is part of the ocata release series.
Download the package from:
https://tarballs.openstack.org/ceilometer/
For more details, please see below.
8.0.0
^^^^^
In an effort to minimise the noise, Ceilometer will no longer produce
meters which have no measureable data associated with it. Image meter
only captures state information which is already captured in events
and other meters.
Samples are required to measure some aspect of a resource. Samples not
measuring anything will be dropped.
New Features
************
* In the [dispatcher_http] section of ceilometer.conf, batch_mode
can be set to True to activate sending meters and events in batches,
or False (default value) to send each meter and event with a fresh
HTTP call.
* Ceilometer sets up the HTTPProxyToWSGI middleware in front of
Ceilometer. The purpose of this middleware is to set up the request
URL correctly in case there is a proxy (for instance, a loadbalancer
such as HAProxy) in front of Ceilometer. So, for instance, when TLS
connections are being terminated in the proxy, and one tries to get
the versions from the / resource of Ceilometer, one will notice that
the protocol is incorrect; It will show 'http' instead of 'https'.
So this middleware handles such cases. Thus helping Keystone
discovery work correctly. The HTTPProxyToWSGI is off by default and
needs to be enabled via a configuration value.
* The Ceilometer compute agent can now retrieve some instance
metadata from the metadata libvirt API instead of polling the Nova
API. Since Mitaka, Nova fills this metadata with some information
about the instance. To enable this feature you should set
[compute]/instance_discovery_method = libvirt_metadata in the
configuration file. The only downside of this method is that
user_metadata (and some other instance attributes) are no longer
part of the samples created by the agent. But when Gnocchi is used
as backend, this is not an issue since Gnocchi doesn't store
resource metadata aside of the measurements. And the missing
informations are still retrieved through the Nova notifications and
will fully update the resource information in Gnocchi.
* Add support of metering the size of cinder volume/snapshot/backup.
Like other meters, these are useful for billing system.
Upgrade Notes
*************
* Configuration values can passed in via the querystring of
publisher in pipeline. For example, rather than setting target,
timeout, verify_ssl, and batch_mode under [dispatcher_http] section
of conf, you can specify
http://<target>/?verify_ssl=True&batch=True&timeout=10. Use
*raw_only=1* if only the raw details of event are required.
* Any existing commands utilising *image* meter should be switched
to *image.size* meter which will provide equivalent functionality
* The *instance* meter no longer will be generated. For equivalent
functionality, perform the exact same query on any compute meter
such as *cpu*, *disk.read.requests*, *memory.usage*,
*network.incoming.bytes*, etc...
* Ceilometer legacy backends and Ceilometer API are now deprecated.
Polling all nova instances from compute agent is no more required
with Gnocchi. So we switch the [compute]instance_discovery_method to
libvirt_metadata. To switch back to the old deprecated behavior you
can set it back to 'naive'.
* If you are using Gnocchi as backend it's strongly recommended to
switch [compute]/instance_discovery_method to libvirt_metadata. This
will reduce the load on the Nova API especially if you have many
compute nodes.
* The api.pecan_debug option has been removed.
* Pipeline processing in polling agents was removed in Liberty
cycle. A new polling specific definition file is created to handle
polling functionality and pipeline definition file is now reserved
exclusively for transformations and routing. The polling.yaml file
follows the same syntax as the pipeline.yaml but only handles
polling attributes such as interval, discovery, resources, meter
matching. It is configured by setting cfg_file under the polling
section.If no polling definition file is found, it will fallback to
reuse pipeline_cfg_file.
Deprecation Notes
*****************
* Ceilometer API is deprecated. Use the APIs from Aodh (alarms),
Gnocchi (metrics), and/or Panko (events).
* With collector service being deprecated, we now have to address
the duplication between dispatchers and publishers. The file
dispatcher is now marked as deprecated. Use the file publisher to
push samples into a file.
* As the collector service is being deprecated, the duplication of
publishers and dispatchers is being addressed. The http dispatcher
is now marked as deprecated and the recommended path is to use http
publisher.
* The *image* meter is dropped in favour of *image.size* meter.
* The *instance* meter no longer will be generated.
* The [compute]/workload_partitioning = True is deprecated in favor
of [compute]/instance_discovery_method = workload_partitioning
Bug Fixes
*********
* A local cache is used when polling instance metrics to minimise
calls Nova API. A new option is added *resource_cache_expiry* to
configure a time to live for cache before it expires. This resolves
issue where migrated instances are not removed from cache. This is
only relevant when *instance_discovery_method* is set to *naive*. It
is recommended to use *libvirt_metadata* if possible.
Other Notes
***********
* The Events API (exposed at /v2/events) which was deprecated has
been removed. The Panko project is now responsible for providing
this API and can be installed separately.
* The deprecated ceilometer-dbsync has been removed. Use ceilometer-
upgrade instead.
Changes in ceilometer 7.0.0.0rc1..8.0.0
---------------------------------------
8c40ca8 add polling.yaml docs
b7a9f13 Do not use non-UUID resource ID in Aodh+Gnocchi tests
259ce46 Use Tempest stable library interfaces
8999528 polling definition file
b6f166d gnocchi: do not use removed encode_resource_id
d8f70cf update multi-publisher image
02a644b make connection pool configurable
e2e7489 make http publisher equivalent to dispatcher
ce8ecb9 add ceilometer-upgrade step to install guide
f02d9f8 update verify to use gnocchi
8342ff8 drop api and storage references from install-guide
fd84f29 Switch to decorators.idempotent_id
4a10659 modernise gabbi tests
51249ff drop notes re mod_wsgi
57f7923 move and trim legacy db docs
61efcdd show panko events for debug
226fdab devstack: make sure it's possible to deploy panko only
dd37686 set project_id for cinder polling
5c62171 install-doc: Disable ceilometer-api service
8aefdcd check panko during integration test
6eab130 set panko dispatcher if enabled
ac00996 agent: always print the extension name on failure
1a07701 Fix same type of simple message error
a7c7344 Don't load many times the same publisher
6cfb819 pipeline: remove tests helper from runtime code
198381c Trivial: add white space of error message
3ae997e Add support of refereshing the resource info in local cache
c18b07a Simplify code of test_complex_query
d0c23a5 Trivial: remove white space of exception message
13aeba4 switch instance_discovery to libvirt_metadata
40da6c9 publisher: fix pipeline confusing reference
bb9b083 remove test_hbase_table_utils
78510db Use parameter skip_op_id in compute.virt.vmware.test_vsphere_operations
d7d1576 gnocchi: replace / by _ in resource_id
d77310a gnocchi: don't rely on gnocchi uuid5
d136977 gnocchi: prepare removal of gnocchi uuid5
61a70a9 gnocchi: move volume_type to correct section
7471d1b tempest: use tempest img
49aac3d fix the gnocchi resource type upgrade
4fa9dae remove residual instance pollster
fb6cd01 use domainListGetStats to get cputime
a91253a drop instance meter
f9122f4 Fix oslo.vmware change that added new keyword argument
b692d3a Don't poll nova with compute agent
9f64b62 tempest: Allow to not run deprecated API tests
8d23f43 Remove events storage and API
c0aea03 Update custom install doc
5928617 correct volumes name source
23a3b6e add volume.backup.size to gnocchi
407b726 upgrade: fix gnocchi resource update
03298e6 stop assuming ceph/swift share same endpoint
322ccb0 devstack: check for ceilometer+panko service
67c11fa tempest: allow usage of scenario-img for autoscaling
c0e42f0 Fix the gate failure because of several issues
7e95b95 Trival-Fix: replace "nova" with "ceilometer" in api-ref
dfa9183 Fix error module usage
dcd69a9 add support to parse user metadata
739cd34 [doc] Note lack of constraints is a choice
49a6d6d always create ceilometer user
2ff9ed0 glossary: remove collector and add publisher
b2eb02e Test suite for Aodh's gnocchi-resource-threshold alarm.
2944bd3 simplify fail gnochi+ceilometer check
6fc1862 Fix publisher comment
31cad7b integration: run gabbi first
07816db integration: deleting the stack sometimes timeout
4e3f8a9 tempest: support keystone v3 for autoscaling
89967e0 tests: generate reports when tempest fail
34731ee Make sure gnocchi is enabled before ceilometer
62c7c3a Added new instance metrics to gnocchi definition
72b5a1e Revert "Add hypervisor inspector sanity check"
638f691 gnocchi: Allow to set a different creds section
16ca36e Allow to configure the triplo network name
34ae40a Fix oslo.vmware lazy loading
d5eed7e test: remove unused variable
2f9fca6 utils: remove unused function stringify_timestamps
970358c gnocchi: Add volume_type attribute to volume
73b6749 devstack: Don't enable api by default
5e74838 add libxml2 required for lxml
a900832 fix http publisher test
a954f96 filtered out the phynical nics when query vm nics with VMware API
4019273 Correct ceilometer reraising of exception
1e581f3 Fix typo in plugin.sh
0120d98 Add old vm state for compute.instance.update
2b47601 capture keystone authentication as metric
627ae05 tools: stop using global conf
a1f0275 gnocchi: use batch create_metrics=True
209275b Fix the install guide bug
345e136 Update Ceilometer architecture docs
77d93d6 Remove useless mock
8d610d0 drop `counters` support from pipeline
405a4ef cleanup unit test location
6797933 update architecture docs
22d5782 Remove api index file
cf92a7a Bump minimal version of cotyledon
fb2fb7a Make rabbitmq configuration much simpler
dc60726 Reenable the tempest test about nova notification
a697f13 use hyphen-less option name sql_expire_sample_only
641d0ff Translate info-level log messages for LOG.error
d82b19e drop disable_non_metric_meters option
43ec763 cleanup gnocchiclient
6c90b46 Change gnocchi_ext.NotFound to gnocchi_ext.ResourceTypeNotFound
af154b0 integration tests: fix generation of tests_results.html
6656c56 Use one log level
87b2909 Add volume and floatingip event_delete for gnocchi event_dispatcher
0cf947d more gnocchi mapping cleanup
dc183cf cleanup gnocchi mapping
3f0e2b4 cleanup manual install
e0f28ee fix postgresql functional gate
752af20 Add a release note for HTTPProxyToWSGI middleware
e82cf20 Modify unit of disk requests rate
eb7659f Handling KeyError error, make gnocchi event dispatcher work
64da0bb Corrected debug msg in CPUL3CachePollster
f7b7494 doc cleanup
83387d1 use aodhclient in integration test
779b322 Print ceilometer configuration on startup
1842e19 register ceilometer options at runtime
e16e232 utils: stop using global conf
08aa4c6 intel_node_manager: stop using global conf
5a2d28a Remove useless singleton check
e322e2c register oslo_db options at runtime
97ad41e register keystoneauth options at runtime
3219e8b storage: stop using global conf
f7508d7 cmd.storage: stop using global conf
4ba6c34 test_storage_scenarios: stop using global conf
b07708e raise InstanceShutOffException if vm power off when get_vm_moid use map of vm manage obj to reduce vmware api calls
230f11a Remove duplicated code
6c656b7 Remove useless code
4d8bc10 drop image pollster
fce0729 gnocchi: remove useless keepalive adapter
bbcf7e0 comment: remove unused comment
0c9a0cb XenAPI: Not support two key network meters
380bb26 Replace retrying with tenacity
2387c8b Clean the glance v1 code in tempest plugin
0aaa160 Convert file publisher to be equivalent to file dispatcher
f843b78 Add aliases for direct publisher
0e63667 doc: fix the wsgi configuration file name
6616a71 deprecate ceilometer api
7ff3ee4 make blacklist log more specific
1b4fcf5 extract 'instance_id' as 'resource_id' in event definitions
21c2bb4 disable signing in direct publisher
d46376c Add pyOpenSSL to test-requirements
8fe6a88 Trivial fix: fix a wrong config option type usage
b7344dd Add support of metering volume related resources
c7c51b6 coordination: remove unused kwarg
bdb3a84 Fix bug for ceilometer polling generates an error
a357bf6 fix perf when libvirt is >=2.0.0 and <2.3.0
3353378 Remove ceilometer tool show_data.py since it is not usable
72ef141 Bump hacking to 0.12
6eefa31 Replace oslo_utils.timeutils.isotime
14925d8 inspectors: stop using global conf
94f278c meter.notifications: stop using global conf
0ae3d30 collector: stop using global conf
1709b1c pollsters: stop using global conf
e0a2853 Replace SimpleProducer with KafkaProducer
9e03f7e document: remove configuration README description
995f93d devstack: allow to configure not backend
af53f31 Modify variable's using method in Log Messages
30bae49 compute.util: stop using global conf
5254da9 event.converter: stop using global conf
79bd7e7 discovery: stop using global conf
fb7f4b1 event: stop using global conf
52b1f07 sample: stop using global conf
336fffe keystone_client: stop using global conf
f827d42 publisher: stop using global conf
f30b4ae Use method constant_time_compare from oslo.utils
f7f9f83 Add more verbosity for gnocchi_resources.yaml
d93b492 Add package "pifpaf" license description
2c7f5e1 Change redirect status from 307 to 308
79b4bf3 Use set_defaults method in oslo_middleware to check CORS_OPTS
982115c change gnocchi cache enable condition
502ad1a Correct wrong description of method enforce
e6ff088 Fix gate problem related to _error_checker()
7796735 Remove deprecated ceilometer-dbsync
a369c94 gnocchi: don't show backtrace on connection failure
1695b47 fix gate
9df4642 Redact password from opendaylight client logging
799d891 Broken Link: setuptools entry point
75a11f4 enable caching
e769bb5 Replace 'vmware' with 'vsphere'
8d9744b gnocchi: stronger configuration file parsing
b5004a4 Don't create useless threads
bf46cee pipeline: stop using global conf
32fc7eb declarative: stop using global conf
967c06c coordination: stop using global conf
8150391 Remove buggy usage of global config
bb72ae7 pipeline services: stop using global conf
2a6b325 Fix collector single worker to handle UDP package with many worker config
9191874 Add http_proxy_to_wsgi to config-generator
f68edc7 Fixed cotyledon version requirement
3e95cc1 Remove pecan_debug option
ce5c9d4 Fix the issue that missing the app file
f28d139 neutron_client: stop using global conf
692c3e4 nova_client: stop using global conf
32c5d72 messaging: stop using global config
5901528 collector: stop using global config
5ecb2ab api: Remove global conf
55916df tests: fix broken udp tests
5881c52 tests: fix tests for functional tests without dsvm
f86dbd8 fix perf when libvirt is >=2.0.0 and <2.3.0
30eb0f0 Add http_proxy_to_wsgi to api-paste
bc073f7 make gnocchi event dispatcher work
79444e6 Enable release notes translation
8902dd1 collector: do not set any dispatcher by default
9b34b75 Remove the unnecessary space
22811f6 Add autoscaling scenario in tempest tests
7794efc Compute agent can poll tx and rx errors and drops
54e4cc7 Batching of event & meter dispatching over HTTP
6fbbed1 Stop adding ServiceAvailable group option
901b78b specific the title
75b8ecd Trivial - Changes rst markup
d49c256 Alters rst markup to comply with OpenStack rst guidelines.
b4f7d66 Add prefix "$" for command examples
7f6402f Use 'code-block' for pieces of code
eb3ce85 Docstrings should not start with a space
c24dc20 collector: fix graceful shutdown when udp enabled
3e3489c Updates rst markup to better align with OpenStack rst guidelines.
580c2a2 Modify startup parameters of ceilometer-api in devstack script
33864b8 Fix the "Gnocchi" link pages of custom.rst doc
e18abdf Bad Link: stevedore
2d31c24 Clean the deprecated non-metric related code
0048edf Clean imports in code
9bbed77 Using assertIsNone() instead of assertIs(None)
5b20e2a Using assertIsNone() instead of assertIs(None)
d14701f Fix typo in a docstring in agent/manager.py
37878f6 XenAPI: polling meters are always 0
e3752c1 Fix UnicodeEncodeError in Ceilometer polling
a969623 gabbi: set panko_is_disabled to avoid relying on Keystone autodiscovery
a2ef6ad tox: refactor targets
8caca03 Fix problem when using wsgi script to start
ea87d93 Remove import objects and use import modules
37c45c0 Refactor Ceilometer resource API
fae8cae Move oslo.db to hard requirements list
b99f4b3 Remove left over from old ceilometer-api binary
71561c6 gabbi: import pipeline_cfg_file option before using it
976d8b4 Update reno for stable/newton
Diffstat (except docs and test files)
-------------------------------------
api-ref/source/conf.py | 4 +-
api-ref/source/parameters.yaml | 17 +-
api-ref/source/resources.inc | 6 +-
bindep.txt | 11 +
ceilometer/agent/discovery/endpoint.py | 10 +-
ceilometer/agent/discovery/tenant.py | 4 -
ceilometer/agent/manager.py | 97 +-
ceilometer/agent/plugin_base.py | 22 +-
ceilometer/api/app.py | 54 +-
ceilometer/api/app.wsgi | 4 +-
ceilometer/api/controllers/v2/capabilities.py | 12 +-
ceilometer/api/controllers/v2/events.py | 327 ---
ceilometer/api/controllers/v2/meters.py | 4 +-
ceilometer/api/controllers/v2/root.py | 50 +-
ceilometer/api/controllers/v2/utils.py | 5 +-
ceilometer/api/hooks.py | 45 +-
ceilometer/api/middleware.py | 4 +-
ceilometer/api/rbac.py | 33 +-
ceilometer/cmd/agent_notification.py | 9 +-
ceilometer/cmd/api.py | 21 +-
ceilometer/cmd/collector.py | 10 +-
ceilometer/cmd/polling.py | 21 +-
ceilometer/cmd/sample.py | 27 +-
ceilometer/cmd/storage.py | 190 +-
ceilometer/collector.py | 61 +-
ceilometer/compute/discovery.py | 212 +-
ceilometer/compute/notifications/__init__.py | 41 -
ceilometer/compute/notifications/instance.py | 89 -
ceilometer/compute/pollsters/__init__.py | 12 +-
ceilometer/compute/pollsters/cpu.py | 5 +-
ceilometer/compute/pollsters/disk.py | 19 +-
ceilometer/compute/pollsters/instance.py | 33 -
ceilometer/compute/pollsters/memory.py | 3 +
ceilometer/compute/pollsters/net.py | 86 +-
ceilometer/compute/pollsters/perf.py | 1 +
ceilometer/compute/pollsters/util.py | 10 +-
ceilometer/compute/util.py | 66 -
ceilometer/compute/virt/hyperv/inspector.py | 10 +-
ceilometer/compute/virt/inspector.py | 36 +-
ceilometer/compute/virt/libvirt/inspector.py | 98 +-
ceilometer/compute/virt/libvirt/utils.py | 104 +
ceilometer/compute/virt/vmware/inspector.py | 84 +-
.../compute/virt/vmware/vsphere_operations.py | 56 +-
ceilometer/compute/virt/xenapi/inspector.py | 92 +-
ceilometer/conf/defaults.py | 39 +-
ceilometer/coordination.py | 47 +-
ceilometer/declarative.py | 9 +-
ceilometer/dispatcher/__init__.py | 16 +-
ceilometer/dispatcher/data/gnocchi_resources.yaml | 236 +++
ceilometer/dispatcher/database.py | 44 +-
ceilometer/dispatcher/file.py | 5 +-
ceilometer/dispatcher/gnocchi.py | 220 +-
ceilometer/dispatcher/gnocchi_opts.py | 32 +
ceilometer/dispatcher/http.py | 107 +-
ceilometer/energy/kwapi.py | 15 +-
ceilometer/event/converter.py | 29 +-
ceilometer/event/endpoint.py | 4 +-
ceilometer/event/storage/__init__.py | 57 -
ceilometer/event/storage/base.py | 99 -
ceilometer/event/storage/impl_elasticsearch.py | 287 ---
ceilometer/event/storage/impl_hbase.py | 224 --
ceilometer/event/storage/impl_log.py | 33 -
ceilometer/event/storage/impl_mongodb.py | 85 -
ceilometer/event/storage/impl_sqlalchemy.py | 456 -----
ceilometer/event/storage/pymongo_base.py | 147 --
ceilometer/exchange_control.py | 9 +
ceilometer/gnocchi_client.py | 64 +-
ceilometer/hardware/discovery.py | 38 +-
ceilometer/hardware/pollsters/generic.py | 14 +-
ceilometer/image/discovery.py | 17 +-
ceilometer/image/glance.py | 15 -
ceilometer/ipmi/notifications/ironic.py | 3 -
ceilometer/ipmi/platform/intel_node_manager.py | 33 +-
ceilometer/ipmi/pollsters/__init__.py | 2 -
ceilometer/ipmi/pollsters/node.py | 14 +-
ceilometer/ipmi/pollsters/sensor.py | 12 +-
ceilometer/keystone_client.py | 42 +-
ceilometer/messaging.py | 5 +-
ceilometer/meter/data/meters.yaml | 562 +----
ceilometer/meter/notifications.py | 47 +-
ceilometer/middleware.py | 24 +-
ceilometer/network/floatingip.py | 3 -
ceilometer/network/notifications.py | 258 ---
ceilometer/network/services/discovery.py | 6 +-
ceilometer/network/services/lbaas.py | 15 +-
ceilometer/network/statistics/__init__.py | 6 +-
ceilometer/network/statistics/driver.py | 2 +
.../network/statistics/opencontrail/client.py | 25 +-
.../network/statistics/opencontrail/driver.py | 7 +-
.../network/statistics/opendaylight/client.py | 20 +-
.../network/statistics/opendaylight/driver.py | 5 +-
ceilometer/neutron_client.py | 17 +-
ceilometer/notification.py | 84 +-
ceilometer/nova_client.py | 26 +-
ceilometer/objectstore/rgw.py | 30 +-
ceilometer/objectstore/swift.py | 23 +-
ceilometer/opts.py | 84 +-
ceilometer/pipeline.py | 350 ++--
ceilometer/publisher/__init__.py | 34 +-
ceilometer/publisher/direct.py | 38 +-
ceilometer/publisher/file.py | 25 +-
ceilometer/publisher/http.py | 110 +-
ceilometer/publisher/kafka_broker.py | 14 +-
ceilometer/publisher/messaging.py | 35 +-
ceilometer/publisher/test.py | 5 +-
ceilometer/publisher/udp.py | 13 +-
ceilometer/publisher/utils.py | 34 +-
ceilometer/sample.py | 50 +-
ceilometer/service.py | 71 +-
ceilometer/service_base.py | 25 +-
ceilometer/storage/__init__.py | 38 +-
ceilometer/storage/base.py | 4 +-
ceilometer/storage/hbase/base.py | 3 +-
ceilometer/storage/hbase/inmemory.py | 2 +-
ceilometer/storage/hbase/migration.py | 31 +-
ceilometer/storage/hbase/utils.py | 53 +-
ceilometer/storage/impl_hbase.py | 3 -
ceilometer/storage/impl_mongodb.py | 8 +-
ceilometer/storage/impl_sqlalchemy.py | 17 +-
ceilometer/storage/mongo/utils.py | 98 +-
ceilometer/storage/sqlalchemy/models.py | 95 -
ceilometer/telemetry/notifications.py | 10 -
.../functional/api/v2/test_event_scenarios.py | 703 -------
.../gabbi/gabbits/api-events-no-data.yaml | 210 --
.../gabbi/gabbits/api-events-with-data.yaml | 242 ---
.../functional/gabbi/gabbits/capabilities.yaml | 3 +-
.../functional/gabbi/gabbits/clean-samples.yaml | 18 +-
.../functional/gabbi/gabbits/fixture-samples.yaml | 2 +-
.../functional/gabbi/gabbits/resources-empty.yaml | 16 +-
.../gabbi/gabbits/resources-fixtured.yaml | 26 +-
.../functional/gabbi/gabbits_prefix/basic.yaml | 4 +-
.../gabbi/gabbits_prefix/clean-samples.yaml | 9 +-
.../gabbi/gabbits_prefix/resources-fixtured.yaml | 4 +-
.../functional/storage/test_impl_sqlalchemy.py | 73 +-
.../functional/storage/test_storage_scenarios.py | 449 +---
.../gabbits-live/aodh-gnocchi-threshold-alarm.yaml | 342 ++++
.../gabbi/gabbits-live/autoscaling.yaml | 36 +-
.../tempest/api/test_telemetry_notification_api.py | 33 +-
.../test_object_storage_telemetry_middleware.py | 3 +-
.../tempest/service/images/v1/images_client.py | 254 ---
.../tempest/service/images/v2/images_client.py | 245 ---
.../unit/compute/notifications/test_instance.py | 608 ------
.../compute/pollsters/test_location_metadata.py | 10 +-
.../unit/compute/virt/hyperv/test_inspector.py | 4 +-
.../unit/compute/virt/libvirt/test_inspector.py | 84 +-
.../unit/compute/virt/vmware/test_inspector.py | 108 +-
.../compute/virt/vmware/test_vsphere_operations.py | 40 +-
.../unit/compute/virt/xenapi/test_inspector.py | 108 +-
.../unit/ipmi/platform/test_intel_node_manager.py | 26 +-
.../network/statistics/opencontrail/test_client.py | 7 +-
.../network/statistics/opencontrail/test_driver.py | 4 +-
.../network/statistics/opendaylight/test_client.py | 6 +-
.../network/statistics/opendaylight/test_driver.py | 5 +-
.../unit/network/statistics/test_statistics.py | 35 +-
.../unit/publisher/test_kafka_broker_publisher.py | 57 +-
.../unit/publisher/test_messaging_publisher.py | 23 +-
ceilometer/utils.py | 27 +-
ceilometer/volume/__init__.py | 0
ceilometer/volume/cinder.py | 109 +
ceilometer/volume/discovery.py | 59 +
devstack/plugin.sh | 83 +-
devstack/settings | 39 +-
devstack/upgrade/upgrade.sh | 4 +-
etc/ceilometer/api_paste.ini | 8 +-
etc/ceilometer/ceilometer-config-generator.conf | 2 +
etc/ceilometer/event_definitions.yaml | 7 +
etc/ceilometer/gnocchi_resources.yaml | 226 --
etc/ceilometer/pipeline.yaml | 4 -
etc/ceilometer/policy.json | 3 -
etc/ceilometer/polling.yaml | 6 +
.../glance/install-glance-obs.rst | 12 +-
.../glance/install-glance-rdo.rst | 16 +-
.../glance/install-glance-ubuntu.rst | 16 +-
.../nova/install-nova-common.rst | 12 +-
.../database/environment-nosql-database-obs.rst | 78 -
.../database/environment-nosql-database-rdo.rst | 50 -
.../database/environment-nosql-database-ubuntu.rst | 52 -
install-guide/source/get_started.rst | 23 +-
install-guide/source/index.rst | 3 -
.../source/install-base-config-common.rst | 94 +-
install-guide/source/install-base-obs.rst | 75 +-
.../source/install-base-prereq-common.rst | 56 +-
install-guide/source/install-base-rdo.rst | 52 +-
install-guide/source/install-base-ubuntu.rst | 75 +-
install-guide/source/verify.rst | 69 +-
rally-jobs/plugins/plugin_sample.py | 2 +-
.../ceilometer-api-deprecate-862bfaa54e80fa01.yaml | 5 +
...lometer-event-api-removed-49c57835e307b997.yaml | 6 +
...deprecate-file-dispatcher-2aff376db7609136.yaml | 6 +
...deprecate-http-dispatcher-dbbaacee8182b550.yaml | 11 +
.../notes/drop-image-meter-9c9b6cebd546dae7.yaml | 11 +
.../drop-instance-meter-1b657717b21a0f55.yaml | 11 +
.../http-dispatcher-batching-4e17fce46a196b07.yaml | 7 +
...ttp_proxy_to_wsgi_enabled-616fa123809e1600.yaml | 13 +
...nce-discovery-new-default-7f9b451a515dddf4.yaml | 7 +
.../notes/less-nova-polling-ac56687da3f8b1a3.yaml | 22 +
.../pecan-debug-removed-dc737efbf911bde7.yaml | 3 +
.../notes/polling-definition-efffb92e3810e571.yaml | 10 +
.../refresh-legacy-cache-e4dbbd3e2eeca70b.yaml | 9 +
.../remove-ceilometer-dbsync-53aa1b529f194f15.yaml | 4 +
...-snapshot-backup-metering-d0a93b86bd53e803.yaml | 4 +
releasenotes/source/conf.py | 3 +
releasenotes/source/index.rst | 1 +
releasenotes/source/newton.rst | 6 +
requirements.txt | 11 +-
setup.cfg | 59 +-
test-requirements.txt | 4 +-
tools/ceilometer-test-event.py | 83 -
tools/make_test_data.py | 16 +-
tools/make_test_event_data.py | 116 --
tools/send_test_data.py | 20 +-
tools/show_data.py | 122 --
tools/test_hbase_table_utils.py | 41 -
tox.ini | 81 +-
327 files changed, 8498 insertions(+), 15220 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 9534fe7..21c8c63 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5 +5,2 @@
-cotyledon
+cachetools>=1.1.0 # MIT License
+cotyledon>=1.3.0 #Apache-2.0
@@ -9 +10 @@ debtcollector>=1.2.0 # Apache-2.0
-retrying!=1.3.0,>=1.2.3 # Apache-2.0
+tenacity>=3.1.0 # Apache-2.0
@@ -12 +13 @@ jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT
-kafka-python<1.0.0,>=0.9.5 # Apache-2.0
+kafka-python>=1.3.1 # Apache-2.0
@@ -17,0 +19 @@ oslo.config>=3.9.0 # Apache-2.0
+oslo.db>=4.1.0 # Apache-2.0
@@ -36,0 +39 @@ python-swiftclient>=2.2.0 # Apache-2.0
+python-cinderclient>=1.6.0,!=1.7.0,!=1.7.1 # Apache-2.0
@@ -44 +47 @@ tooz>=1.28.0 # Apache-2.0
-WebOb>=1.2.3 # MIT
+WebOb>=1.5.0 # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index 422a4cb..d392569 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -7 +6,0 @@ coverage>=3.6 # Apache-2.0
-elasticsearch>=1.3.0 # Apache-2.0
@@ -19,0 +19 @@ python-subunit>=0.0.18 # Apache-2.0/BSD
+pyOpenSSL>=0.14 # Apache-2.0
@@ -31 +31 @@ WebTest>=2.0 # MIT
-pifpaf>=0.0.11
+pifpaf>=0.0.11 # Apache-2.0
1
0