CHANGES
=======

6.0.0
-----

* Add Python3 yoga unit tests
* Update master for stable/xena

5.0.0
-----

* Fix Grafana URL in email notification
* Add Python3 xena unit tests
* Update master for stable/wallaby

4.0.0
-----

* Fix zuul publish docker image job
* Update hacking for Python3
* Remove six
* Add py38 in setup metadata
* Fixed docker configuration template
* bump py37 to py38 in tox.ini
* Add option to choose Kafka client in Docker
* Set Docker publish jobs
* Add Python3 wallaby unit tests
* Update master for stable/victoria
* Remove deprecated YAML config
* [goal] Migrate testing to ubuntu focal As per victoria cycle testing runtime and community goal[1] we need to migrate upstream CI/CD to Ubuntu Focal(20.04)

3.0.0
-----

* Set legacy\_kafka\_client\_enabled = False on default
* Use unittest.mock instead of mock
* Stop to use the \_\_future\_\_ module
* Switch to newer openstackdocstheme and reno versions
* Remove .testr.conf
* Fix and unify cover environment
* Remove ujson from lower-constraints
* Add CONTRIBUTING.rst
* Add Python3 victoria unit tests
* Update master for stable/ussuri

2.0.0
-----

* Remove deprecated YAML config
* Use unittest.mock instead of third party mock
* Migrate from ujson to simplejson
* Cleanup py27 support
* Declare cli.yaml\_config option as not required
* Allow users to set periodic notifications on all notification types
* Fix periodic notifications for webhooks
* [ussuri][goal] Drop python 2.7 support and testing
* Blacklist sphinx 2.1.0 (autodoc bug)
* Switch to Ussuri jobs
* Fix the IPv6 address and port parsing
* Bump the openstackdocstheme extension to 1.20
* Update master for stable/train

1.18.0
------

* Update the constraints url
* Use Confluent Kafka client
* Fix python3 json loads error
* Json loads error
* Disable monasca-tempest-java-influxdb job
* Add Python 3 Train unit tests
* Add default notification plugins to configuration
* Document missing Grafana url env var in Docker
* Switch python3 versions of test jobs to match Train PTI
* [GateFix] Ignore false positive bandit B105 test failure
* Fix notification type plugin install loop
* Change repository links usage in Dockerfile and build image
* Fix loading of notification plugins
* Fix statsd enable option in docker env
* Blacklist bandit and update sphinx requirement
* Add PagerDuty notification plugin documentation
* Templates for Slack notifications
* OpenDev Migration Patch
* Push Docker image to Docker Hub
* Fix docker mysql env variables
* Dropping the py35 testing
* Add Python Jira module to requirements
* Use proper naming for docker service image zuul job
* Docker support statsd disabled
* Add missing jira lib installation in docker
* Bump psycopg2 lowest version
* Update master for stable/stein

1.16.0
------

* Use global job for building docker image
* add python 3.7 unit test job
* Update hacking version to latest
* Replace notification.conf with monasca-notification.conf
* Configure releasenotes job
* Includes missing configuration options
* Bug Fix: Parses notifier configuration options
* Fix help text for [kafka]url option
* Make default notifiers pluggable
* Update Zuul tempest test job names
* Update documentation
* Update claassifiers in setup.cfg
* Change openstack-dev to openstack-discuss
* trivial fix: Correct some spelling errors
* Add python 3.6 unit test job
* Remove setup.py check from pep8 job

1.15.0
------

* Fix team and repository tags in README.rst
* Add tooling for building Docker image
* Py3: Fix encoding of message in RetryEngine
* Use templates for cover and lower-constraints
* Fix loading yaml file warning in Python 3
* add python 3.6 unit test job
* import zuul job settings from project-config
* Remove the duplicated word

1.14.0
------

* Enable keystone authentication with webhook notification
* Changed author and author-email
* Switch to using stestr
* Remove pykafka from lower-constraints
* Convert README to reStructuredText
* fix tox python3 overrides
* Make statsd self-monitoring optional
* Fix lower-constraints job
* Update pep8 checks
* Update links in README
* add lower-constraints job
* Remove PostgreSQL tempest jobs from Zuul
* Clean up tox.ini

1.13.0
------

* Zuul: Remove project name
* Update requirements manually

1.12.0
------

* Use assertRegex instead of assertRegexpMatches
* Add .zuul.yaml file
* Integrate with oslo.conf and oslo.log

1.11.0
------

* Add .stestr.conf 
* Revert Ibd2f64f464af1f501d45c43c0f438f5c74027f6c
* Added a field 'Grafana Url' in the email
* Make code compatible with Python3.5

1.10.0
------

* Send notification to Jira in custom description
* Fix typo and add configuration example for Jira
* Fix slack notification
* Add unit test for Jira
* Make monasca-notification Py35 compatible
* Use absolute paths for imports
* Do not log stack traces when out of disk
* Fix insert notification type of ORM
* Updated from global requirements

1.9.0
-----

* Updated from global requirements
* Updated from global requirements

1.8.0
-----

* Insecure and verify were being treated equally
* Updated from global requirements
* Optimize the link address
* Use neutral IPs/hostnames in example configuration
* Enable Py35 tests to run
* Updated from global requirements
* Replacing six.iteritems() with .items()
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements

1.7.0
-----

* Turn on bandit check as part of pep8
* Enhance hipchat plugin to color-code messages by alarm severity
* Updated from global requirements
* Remove plugins from possible notifiers
* Updated from global requirements
* Migrate tests to ostestr
* Replace yaml.load() with yaml.safe\_load()
* Remove monasca\_notification\_offsets
* Fix typo in main.py

1.6.0
-----

* Updated from global requirements
* add a one-line summary to the package metadata
* Slack: support incoming webhooks
* Add config option for statsd
* Correct reraising of exception
* Show team and repo badges on README

1.5.0
-----

* Updated from global requirements
* Add \_\_ne\_\_ built-in function
* Clean imports in code
* Updated from global requirements
* Removed redundant import
* Removed redundant 'the'
* Add Jira Plugin

1.4.0
-----

* Updated from global requirements
* int is not valid column type
* Use constraints everywhere
* Sync tools/tox\_install.sh
* Query database to see if the periodic notificiation changes
* Add https proxy support for a hipchat/slack plugin
* Fix race condition in notification type inserts
* Removed H302, H305 and H307
* Fix H904: wrapping using paratheses
* Add HipChat and Slack Notification types
* Import simport from monasca-common

1.3.0
-----

* Update copyright in monasca-nofitication
* [monasca-notification] Change tox to use https instead of git
* [monasca-notification] Constraint tox targets with upper-constraints
* Adding support for periodic notifications
* Change tox file
* Retry engine trys to write bad data to Kafka
* Retry engine trys to write bad data to Kafka

1.2.13
------

* Fix the spelling mistake

1.2.12
------

* Support dynamic mysql port via config file
* Remove kafka-python and kazoo from requirements
* Remove limit on dimension sets in email
* When receiving a SIGTERM exit with a zero
* Change email notification format

1.2.10
------

* Add in HP Copyrights

1.2.9
-----

* Unlocking monasca-common requirement

1.2.8
-----

* Mitaka compatibility
* Update Notification Engine Requirements.txt
* Migrate from MysqlDB to pymysql
* Deprecated tox -downloadcache option removed
* Delete python bytecode before every test run
* Fix simport requirement
* Migrate notification engine to common kafka interface
* Update .gitreview for new namespace
* Modified kafka max buffer size
* Do not spin when more processors than partitions
* Fixed mysql reconnect on error
* Adding stricter requirements
* Add configurable database setting (mysql, postgres, orm)

1.2.7
-----

* Allows a newer version of pbr

1.2.6
-----

* Enhanced the email notification messages
* Updated test-requirements.txt because of mock update
* Adjusted detection for user and password
* Add fix for local time bug
* Add nosexcover to test requirements, it is useful for coverage reports
* Added MySql reconnect and better error output

1.2.5
-----

* Changes to log messages to support unicode
* Add unicode support to email notifications

1.2.4
-----

* six is also a required dependency

1.2.3
-----

* Add underscore to password config

2015.1
------

* AlarmStateTransitionedEvent timestamp now in ms
* More information sent through webhook

1.2.1
-----

* Fixed Kafka read error
* Exit with the signal number
* Email notifier returns false if self.\_smtp == None
* Updated documentation

1.2.0
-----

* Added retry engine to notification system
* Don't install kafka-python 0.9.3
* Notification engine refactored from many processes to one
* Refactored notification engine types

1.1.6
-----

* Added pagerduty support to notification\_processor
* Force mysql\_passwd to a string
* Fixes for statsd integration
* Webhook now passes alarm\_id instead of alarm\_name
* Added timeout to webhook
* Added test coverage for email and webhook notification

1.1.5
-----

* Added mysql ssl support

1.1.4
-----

* Updated email notification
* Implementing Webhook Notification type

1.1.3
-----

* Switch to using monasca-statsd
* Change timeouts so shutdown is quicker

1.1.2
-----

* Change alarm\_id to alarm\_definition\_id in alarm\_action

1.1.1
-----

* Changes for alarmed metrics

1.1.0
-----

* Move from using zookeeper to track partition offsets to kafka

1.0.3
-----

* Move to pbr based build
* Use hacking instead of flake8/pep8

1.0.2
-----

* Added wheel settings setup.cfg so the publish to pypi works correctly

1.0.1
-----

* bump version 1.0.1
* Log mysql connection failures better
* Added virtual env to the tox.ini so the push to pypi will work correctly

1.0.0
-----

* Rename to monasca, setup for tox, removed legacy bits
* Moved code out of \_\_init\_\_.py, minor pep8 fix
* Noted multiple hosts can be used
* Turn on mysql autocommit
* Cleaned up dependencies for easy\_install
* Set to version 1.0.0 and setup for upload to pypi
* Update README.md
* Update README.md
* Added copyright header, LICENSE and HACKING.rst
* Fixed tests to match updated alarmtransition fields
* Added checking of the actionsEnabled field in the alarm transition message
* Added requirements files
* moved to a human readable date in the email
* Added first notification processor test
* Added some state tracker tests
* pep8/flake8 formatting fixes
* Fixed test on the build box
* Added some notification equality tests
* The build box is slow
* Added tests of the alarm processor
* Initial test using mock with the multiprocess setup
* Fixed some unraised exceptions
* Switched back to exiting on all mysql errors
* Updated to new sql schema for alarm actions
* Made default config more debug friendly
* Made \_offsets a default dict to handle the first use of a partition
* Fixed pep8 violations that I used for testing the build job
* Added a simple unit test and the test framework
* Added mon\_notification\_offsets tool
* Removed get\_offsets, it didn't make sense after making offsets a property
* Added test note about alarm\_ttl needing to be updated
* logging options are now in the config
* Changed ttl to seconds, made both ttl and max\_lag optional
* Minor flake8 + hacking code convention fix
* Added SIGINT to list of handled signals
* Implemented offset\_max\_lag
* Added ttl messages to the no\_notification counter
* Added alarm ttl
* Implemented a clean shutdown that finished any work left in the queue
* Minor changes from inspection
* Added some ideas for better Fault Tolerance
* Adde zookeeper timer
* Added in statsd!
* I realized I am not sure what dependencies.txt is for, removing it
* Fixed notification.to\_json broke when slots was added
* Changes after running the hacking open stack code checks, except line length
* Better handle child processes exiting
* Update column name
* Handle reconnecting to smtp servers without dropping an notifications
* Added better logging
* Revert "Moved main so imports are right both from the source directly and the package."
* Moved main so imports are right both from the source directly and the package
* Minor setup.py change
* Added a some sample tests, fixed misc bugs
* Misc spelling error Craig caught
* Fixed a directory structure issue
* Fixed module name to match what python likes
* Added \_\_init\_\_ to mon-notification
* Re-org for packing nicely
* Initial email implementation
* Updated sql queries and the alarm format parsing
* Added mysql section of the alarm processor
* Initial alarm processing and handling mutliple notifications per alarm
* Added in basic handling of our out of order commits
* Fixes from code inspection, mostly pep8
* Working offset tracking. I moved all Zookeeper bits to one class run by main
* Unfinished implementation of the commit tracker, alarm and notification processors
* Added zookeeper based locking so only one process runs at a time
* Initial test run of a kafka producer
* Initial reading from kafka
* Decided it is better to publish notifications to kafka rather than vertica
* Fixed readme ordered lists
* Initial structure
