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