We are mirthful to announce the release of:
monasca-api 1.3.0: OpenStack Monitoring as a Service
This release is part of the newton release series.
For more details, please see below.
Changes in monasca-api 1.2.0..1.3.0
-----------------------------------
1e56736 CRIT: Fix grafana build
6c43958 Upgrade to Storm 1.0.2
16156d7 TrivialFix: Remove logging import unused
c867035 Use absolute path for /etc/monasca
29c6c6f Updated from global requirements
3790906 Use constraints everywhere
2b392c7 Sync tools/tox_install.sh
8e679ff Improve dimension filtering performance
be0b587 Rollback the transaction if an exception is thrown
a97a034 Fix config-generator.tempest.conf path
e98d29b Use apt-get wrapper function
b94e959 Fix Influx statistics and Alarm History behavior
34e07d9 Bump drizzle driver version to support millisecond resolution
834b2cc Convert type to uppercase in command setters
b04a7e1 Remove simport from devstack plugin
a0b9754 Fix Alarm State Transitions tests to always work
5f37594 Add monasca api read-only user role
dc048d3 Avoid compilation error in monasca-common AlarmNotificationMethodType change
36e5d42 Add Cassandra support to devstack
7abd139 Enable Cassandra Database
d8b8014 Removed mysql tables - follow up
5a0801e Adds support for notification plugins in monacaapi
6b2b88f Add state to sub_alarm table
02849f0 Add a tempest test for patching notification with new type and period
0666d8b Remove -H from sudo command in plugin.sh
cba16c4 Do not download when OFFLINE=True
b661568 Update the Tempest Test README for devstack
c0391e9 Add Tempest Run option to README
30181b4 Remove event kafka topics and mysql tables
c9af29f Remove discover from test-requirements
a317508 Add metrics/dimensions/names/values api for grafana templating optimization
373a406 Add patch-notification into the content of monasca-api-spec
0e3c869 Fix default domain name
3a9a5d3 Fix typo in devstack scripts and README
51ac51b Change Monasca Port
559bf55 Install monasca-agent without global requirements
139a788 Don't use deprecated nimbus.host
afbb229 Fix update notification method doc
c661202 Use nvm to install node
ab720d7 Fix alarm definition tests
983f9d5 Move influxdb install into tox.ini and plugin.sh
b50b87a Allow TLD test with port in Notification Webhook Address
39a73ce Filter dimension queries by time
815ed50 Remove gunicorn library from requirements.txt
9e479d5 Small function for basic email address validation
e20d45e Show testr output in console
a001720 Clone monascaclient instead of installing via pip
21d6034 Handle is_deterministic returned as Short or Boolean
4508137 SortBy for Hibernate ORM
81928aa Pagination fix for ORM
efa2fe8 Modify influx port to avoid conflict
f9b2208 Don't remove dimensions from measurements unless merging results
04d6b5f Add patch to notification method and clean up code
b5f5951 Import simport from monasca-common
fce1896 Fix monascaclient in tempest for updates
Diffstat (except docs and test files)
-------------------------------------
AUTHORS | 4 +
README.md | 13 +-
devstack/Vagrantfile | 3 +-
devstack/files/cassandra/cassandra_schema.cql | 46 ++
devstack/files/env.sh | 7 +-
devstack/files/influxdb/influxdb.conf | 2 +-
devstack/files/keystone/create_monasca_service.py | 6 +-
devstack/files/monasca-api/api-config.yml | 3 +-
devstack/files/monasca-api/python/api-config.conf | 18 +
.../files/monasca-persister/python/persister.conf | 7 +
.../files/monasca-smoke-test/smoke2_configs.py | 6 +-
devstack/files/schema/mon_mysql.sql | 74 +--
devstack/files/storm/cluster.xml | 85 ---
devstack/files/storm/storm.yaml | 2 +-
devstack/plugin.sh | 355 +++++++----
devstack/post_test_hook.sh | 6 +-
devstack/settings | 4 +-
etc/api-config.conf | 18 +
java/pom.xml | 2 +-
java/src/deb/etc/api-config.yml-sample | 3 +-
.../main/java/monasca/api/MonApiApplication.java | 16 +-
java/src/main/java/monasca/api/MonApiModule.java | 10 +-
.../command/CreateNotificationMethodCommand.java | 45 +-
.../command/PatchNotificationMethodCommand.java | 105 ++++
.../command/UpdateNotificationMethodCommand.java | 35 +-
.../validation/NotificationMethodValidation.java | 38 +-
.../api/domain/model/dimension/DimensionRepo.java | 34 ++
.../domain/model/dimension/DimensionValues.java | 122 ++++
.../api/domain/model/measurement/Measurements.java | 27 +-
.../notificationmethod/NotificationMethod.java | 25 +-
.../notificationmethod/NotificationMethodRepo.java | 12 +-
.../notificationmethod/NotificationMethodType.java | 67 ++-
.../NotificationMethodTypesRepo.java | 26 +
.../api/domain/model/statistic/Statistics.java | 104 +---
.../api/infrastructure/InfrastructureModule.java | 30 +-
.../middleware/MiddlewareConfiguration.java | 2 +
.../infrastructure/persistence/PersistUtils.java | 60 +-
.../hibernate/AlarmDefinitionSqlRepoImpl.java | 66 ++-
.../persistence/hibernate/AlarmSqlRepoImpl.java | 137 ++++-
.../hibernate/NotificationMethodSqlRepoImpl.java | 13 +-
.../NotificationMethodTypesSqlRepoImpl.java | 72 +++
.../influxdb/InfluxV9DimensionRepo.java | 125 ++++
.../influxdb/InfluxV9MeasurementRepo.java | 6 +-
.../influxdb/InfluxV9MetricDefinitionRepo.java | 24 +-
.../influxdb/InfluxV9StatisticRepo.java | 43 +-
.../persistence/influxdb/InfluxV9Utils.java | 16 +
.../mysql/AlarmDefinitionMySqlRepoImpl.java | 2 +-
.../mysql/NotificationMethodMySqlRepoImpl.java | 63 +-
.../NotificationMethodTypesMySqlRepoImpl.java | 67 +++
.../vertica/DimensionVerticaRepoImpl.java | 109 ++++
.../vertica/MeasurementVerticaRepoImpl.java | 171 ++----
.../vertica/MetricDefinitionVerticaRepoImpl.java | 98 +---
.../persistence/vertica/MetricQueries.java | 172 +++++-
.../vertica/StatisticVerticaRepoImpl.java | 178 ++----
.../servlet/PostAuthenticationFilter.java | 25 +-
.../monasca/api/resource/DimensionResource.java | 79 +++
java/src/main/java/monasca/api/resource/Links.java | 96 +--
.../api/resource/NotificationMethodResource.java | 46 +-
.../resource/NotificationMethodTypesResource.java | 71 +++
.../monasca/api/resource/StatisticResource.java | 12 +-
.../java/monasca/api/MonApiApplicationRunner.java | 21 -
.../command/CreateAlarmDefinitionCommandTest.java | 8 +-
.../app/command/CreateNotificationMethodTest.java | 81 ++-
.../api/domain/model/NotificationMethodTest.java | 12 +-
.../persistence/PersistUtilsTest.java | 54 ++
.../AlarmDefinitionSqlRepositoryImplTest.java | 125 +++-
.../hibernate/AlarmSqlRepositoryImplTest.java | 98 ++--
.../persistence/hibernate/HibernateUtil.java | 11 +-
.../NotificationMethodSqlRepositoryImplTest.java | 51 +-
...tificationMethodTypesSqlRepositoryImplTest.java | 88 +++
.../NotificationMethodMySqlRepositoryImplTest.java | 99 +++-
...ificationMethodTypeMySqlRepositoryImplTest.java | 78 +++
.../persistence/vertica/MetricQueriesTest.java | 20 +-
.../NotificationMethodIntegrationTest.java | 13 +-
.../api/integration/docker/ITInfluxDBTest.java | 6 +-
.../api/resource/DimensionResourceTest.java | 71 +++
.../test/java/monasca/api/resource/LinksTest.java | 49 +-
.../resource/NotificationMethodResourceTest.java | 81 ++-
.../NotificationMethodTypeResourceTest.java | 108 ++++
java/src/test/resources/monasca-api-config.yml | 1 +
.../persistence/mysql/notification_method_type.sql | 4 +
monasca_api/api/metrics_api_v2.py | 9 +
monasca_api/api/notifications_api_v2.py | 5 +-
monasca_api/api/notificationstype_api_v2.py | 38 ++
monasca_api/api/server.py | 19 +-
.../repositories/cassandra/metrics_repository.py | 648 ++++++++++++++++++++-
.../common/repositories/fake/metrics_repository.py | 6 +-
.../repositories/influxdb/metrics_repository.py | 88 ++-
.../common/repositories/metrics_repository.py | 17 +-
.../mysql/notification_method_type_repository.py | 31 +
.../repositories/mysql/notifications_repository.py | 3 -
.../notification_method_type_repository.py | 25 +
.../sqla/alarm_definitions_repository.py | 4 -
.../common/repositories/sqla/alarms_repository.py | 5 -
monasca_api/common/repositories/sqla/models.py | 7 +-
.../sqla/notification_method_type_repository.py | 41 ++
.../repositories/sqla/notifications_repository.py | 3 -
.../schemas/notifications_request_body_schema.py | 8 +-
monasca_api/v2/common/validation.py | 9 +
monasca_api/v2/reference/__init__.py | 17 +-
monasca_api/v2/reference/alarm_definitions.py | 11 +-
monasca_api/v2/reference/alarming.py | 2 +-
monasca_api/v2/reference/alarms.py | 23 +-
monasca_api/v2/reference/helpers.py | 55 ++
monasca_api/v2/reference/metrics.py | 72 ++-
monasca_api/v2/reference/notifications.py | 49 +-
monasca_api/v2/reference/notificationstype.py | 44 ++
...est_alarm_state_history_multiple_transitions.py | 10 +-
.../test_alarms_state_history_one_transition.py | 7 +-
requirements.txt | 45 +-
setup.cfg | 2 +-
setup.py | 18 +-
test-requirements.txt | 36 +-
tools/tox_install.sh | 66 +--
tox.ini | 4 +-
132 files changed, 5794 insertions(+), 1716 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
old mode 100755
new mode 100644
index 7d3adcc..4313057
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,8 @@
-oslo.config
-oslo.log
-oslo.middleware
-oslo.serialization
-oslo.utils
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+oslo.config>=3.14.0 # Apache-2.0
+oslo.log>=1.14.0 # Apache-2.0
+oslo.middleware>=3.0.0 # Apache-2.0
+oslo.serialization>=1.10.0 # Apache-2.0
+oslo.utils>=3.16.0 # Apache-2.0
@@ -7 +10 @@ oslo.utils
-python-keystoneclient
+python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0
@@ -9,16 +12,14 @@ python-keystoneclient
-falcon
-gunicorn>=19.1.0
-keystonemiddleware
-pastedeploy
-pbr
-six
-pyparsing
-voluptuous
-influxdb
-eventlet
-kafka-python>=0.9.5,<1.0.0
-simplejson
-simport
-validate_email>=1.3
-monasca-common>=0.0.2
-sqlalchemy
+falcon>=0.1.6 # Apache-2.0
+keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0
+PasteDeploy>=1.5.0 # MIT
+pbr>=1.6 # Apache-2.0
+six>=1.9.0 # MIT
+pyparsing>=2.0.1 # MIT
+voluptuous>=0.8.9 # BSD License
+#influxdb
+#cassandra-driver>=2.1.4,!=3.6.0 # Apache-2.0
+eventlet!=0.18.3,>=0.18.2 # MIT
+kafka-python<1.0.0,>=0.9.5 # Apache-2.0
+simplejson>=2.2.0 # MIT
+monasca-common>=1.0.0 # Apache-2.0
+SQLAlchemy<1.1.0,>=1.0.10 # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index 37427c3..aa009ca 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -0,0 +1,3 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
@@ -3,17 +6,16 @@ hacking<0.11,>=0.10.0
-Babel>=1.3
-coverage>=3.6
-discover
-fixtures>=0.3.14
-flake8==2.2.4
-pep8==1.5.7
-httplib2>=0.7.5
-mock>=1.0
-funcsigs
-mox>=0.5.3
-nose
-oslotest
-python-subunit>=0.0.18
-testrepository>=0.0.18
-testscenarios>=0.4
-testtools>=0.9.34
-tempest-lib
+Babel>=2.3.4 # BSD
+coverage>=3.6 # Apache-2.0
+fixtures>=3.0.0 # Apache-2.0/BSD
+flake8<2.6.0,>=2.5.4 # MIT
+pep8==1.5.7 # MIT
+httplib2>=0.7.5 # MIT
+mock>=2.0 # BSD
+funcsigs>=0.4;python_version=='2.7' or python_version=='2.6' # Apache-2.0
+mox>=0.5.3 # Apache-2.0
+nose # LGPL
+oslotest>=1.10.0 # Apache-2.0
+python-subunit>=0.0.18 # Apache-2.0/BSD
+testrepository>=0.0.18 # Apache-2.0/BSD
+testscenarios>=0.4 # Apache-2.0/BSD
+testtools>=1.4.0 # MIT
+tempest-lib>=0.14.0 # Apache-2.0