CHANGES
=======

3.3.0
-----

* Fix zuul publish docker image job
* Use C compiler to build cryptography
* Bump librdkafka to 1.6.0
* [goal] Deprecate the JSON formatted policy file
* Fix zuul publish docker image job
* Remove six
* Add py38 in setup metadata
* bump py37 to py38 in tox.ini
* Add Python3 wallaby unit tests
* [goal] Migrate testing to ubuntu focal

3.2.0
-----

* drop mock from lower-constraints
* Stop to use the \_\_future\_\_ module
* Bump sublibraries
* Add CONTRIBUTING.rst
* Update the outdated link
* Remove .testr.conf
* Fix hacking min version to 3.0.1
* Switch to Victoria tests
* Bump librdkafka to 1.4.0
* Update hacking for Python3
* Use unittest.mock instead of third party mock
* Cleanup py27 support

3.1.0
-----

* Replacing ujson with simplejson
* fix a typo

3.0.0
-----

* Enable running unit tests in py37 environment
* Allow passing config options to Kafka producer
* [ussuri][goal] Drop python 2.7 support and testing
* Avoid value decoding in Kafka delivery report
* Fix building librdkafka from source in Docker
* Install librdkafka from source code

2.16.0
------

* Create Docker image for StatsD
* Confluent Kafka driver broker option bug
* Add LegacyKafkaMessage and Kafka client factory
* Fix Confluent Kafka consumer topics subscription
* Support kafka connection timeout option
* Fix Confluent Kafka consumer loop

2.15.0
------

* Removed unused code
* Disable monasca-tempest-java-influxdb job
* In Python 3.7 "async" and "await" will become reserved keywords
* Add Python 3 Train unit tests

2.14.0
------

* Upgrade Alpine version
* Remove one unnecessary env var form Docker images
* Change links usage
* Upgrade Python version
* Blacklist bandit 1.6.0
* Replace git.openstack.org URLs with opendev.org URLs
* Dropping the py35 testing
* OpenDev Migration Patch
* Use proper naming for docker services image zuul jobs
* Use full branch name as build\_image.sh argument
* Catch the case when no new messages are available
* Convert mysql port to int in wait script
* Don't remove tempest tests from installation folder
* Support full links in Docker wait script
* Use proper naming for docker base image zuul jobs

2.13.0
------

* Remove duplicate target name from README
* Fix monasca-common for building Docker image
* Add wrapper for Confluent Kafka client consumer
* Add the metric name to the Exception message when validation fails
* Improve coverage
* Prepare one zuul docker job for all services
* Add tempest tests jobs
* Update hacking version to latest
* Use template for lower-constraints
* Add missing build dependencies for agent in docker
* Add python3.5 classifier to setup.cfg
* Change openstack-dev to openstack-discuss
* Add description-file field to setup.cfg
* Decrease amount of Docker image layers
* Bump Alpine to 3.8 in docker
* Push monasca/base image on commit, periodicaly and on release
* Add py36 tox environment
* Add wrapper for Confluent Kafka async Producer
* Remove Linux apps pinning from Dockerfile
* Remove setup.py check from pep8 job
* Workaround to avoid surefire plugin error
* Add running tempest tests for logs-pipeline

2.12.0
------

* Don't quote {posargs} in tox.ini
* Remove Docker tag based on timestamp
* fix tox python3 overrides
* Fix coverage job for Python 3
* Update the outdated URL
* Allow to build image with common from Gerrit
* add python 3.6 unit test job
* import zuul job settings from project-config
* Build and push images only on relevant changes
* Ensures that messages pass to kafka client are bytes string
* Implement MySQL check script for Docker
* Make health checks more frequent in Docker
* Remove not used pykafka requirement
* Py3:Fix messages encoding for kafka producer
* Improve Zuul jobs with Docker names

2.11.0
------

* Update README
* Build Docker image in zuul
* Add check for rst syntax
* Switch to using stestr
* Minor language changes and added license headers
* Add base Dockerfile and supporting scripts
* Convert README.md to ReStructuredTest format
* Python3.5: Make KafkaProducer compatible with Py35

2.10.0
------

* Fix package check errors
* fix tox python3 overrides
* ignore python2-specific code under python3 for pep8
* Sync requests-mock minimum version
* Update Python section in README
* Add alarm expression parser

2.9.0
-----

* Updated pep8 checks
* Execute ostestr in lower-constraints job
* Updated from global requirements
* add lower-constraints job
* Updated from global requirements
* Update links in README
* Remove PostgreSQL tempest jobs from Zuul
* Enable gate jobs
* change the hacking guideline for out of date

2.8.0
-----

* Enable tempest tests as voting
* Add messages for testing unicode
* Zuul: Remove project name
* Remove not used mox library
* Updated from global requirements
* Updated from global requirements
* Update links in pom.xml

2.7.0
-----

* Updated from global requirements
* Updated from global requirements

2.6.0
-----

* Upper the pom version to 1.3.0
* Implemented a policy enforcement engine
* Add Cassandra tempest tests
* Retry publish once on failures

2.5.0
-----

* Add Cassandra db support
* Remove -U from pip install
* Avoid tox\_install.sh for constraints support
* Allow () in dimensions
* Updated from global requirements
* Updated from global requirements
* Add .zuul.yaml file

2.4.0
-----

* Fixed inconfigurable kafka consumer offset location
* Cleanup test-requirements
* Updated from global requirements
* Updated from global requirements

2.3.0
-----

* Fix links in README.md

2.2.0
-----

* Add a query language for group, inhibit, and silence rules
* Updated from global requirements
* [doc] Fix sublist formatting in monasca\_common/kafka\_lib/NOTES.md
* Updated from global requirements

2.1.0
-----

* Replace assertRaisesRegexp with assertRaisesRegex
* Updated from global requirements

2.0.0
-----

* Updated from global requirements
* Add bindep.txt
* Optimize the link address
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Migrate to ostestr framework and PY3
* Updated from global requirements
* [Fix gate]Update test requirement
* Removed unused logging module

1.5.0
-----

* Revert "Revert "Release version 1.2.1 for Java""
* Revert "Release version 1.2.1 for Java"
* Use long as possible timestamp value
* Release version 1.2.1 for Java
* Updated from global requirements
* Turn on bandit check as part of pep8
* Updated from global requirements

1.4.0
-----

* Fork 0.9.5 kafka-python and require pykafka
* Add proxy configuration for tox.ini file
* Break up dimenion validation into key and value parts
* Clean imports in code
* Allow value\_meta to be None/Null
* Updated from global requirements
* Add validation for 'nan' and infinity

1.3.0
-----

* Fix crash-loop in thresholder caused by floating point numbers used as dimension filter
* Updated from global requirements
* Show team and repo badges on README
* Don't include openstack/common in flake8 exclude list
* Change version number to 1.2.0
* Use six.moves.range for Python 3

1.2.0
-----

* Updated from global requirements
* Updated from global requirements
* Add prefix "$" for command examples
* TrivialFix: Remove logging import unused
* TrivialFix: Remove unused import of log

1.1.0
-----

* Move metric validation from agent to monasca common
* Updated from global requirements
* Always put value in first bucket if force is set
* Use constraints everywhere
* Sync tools/tox\_install.sh
* Reconnect to auth url in case of ClientProtocolException
* Updated from global requirements
* Change Enum to String for AlarmNotificationMethodType
* Add Last function
* Add entity for notification\_method\_type table
* Remove discover from test-requirements
* Add unit tests for common repositories module
* Updated from global requirements
* Updated from global requirements
* Add Conversions.variantToBoolean to fix API bug

1.0.0
-----

* Move simport into monasca common
* (Non)deterministic support for alarms
* Make monasca-common pep8 compatible
* [monasca-common] Change tox to use https instead of git
* Remove unnecessary executable permissions
* [monasca-common] Constraint tox targets with upper-constraints
* Add unit tests for common rest.utils module
* Add unit tests for common Kafka module
* Add Period to hibernate notification method
* Log the end of the token which varies by token
* Don't log the entire token if auth failure
* FIX handling json data with multibyte characters
* Invalid kafka check script name
* Remove sphinx requires from test-requirements

0.0.8
-----

* Partition rebalance broken in kafka-python 0.9.5
* Updating kafka requirements
* Kafka healthcheck

0.0.7
-----

* Restricting kafka-python version
* Use SimpleDateFormat in thread safe construct

0.0.6
-----

* Improving kafka performance
* Fix Kafka consumer commit
* Check TimeZone equality using equals
* Skip a test that fails if the server's time is UTC

0.0.5
-----

* Adjust copyright for AlarmSeverity
* Add fromString and fromJson to AlarmSeverity

0.0.4
-----

* Convert partition key to str

0.0.3
-----

* Mitaka compatibility
* Pass link and lifecycle state in state transitions
* Common REST data handling
* Remove invalid ascii characters
* Change MySqlDB to pymysql
* Adding liberty versions of oslo to requirements.txt
* Upgrade to Kafka 0.8.2.2
* Fix connRetryInterval parameter interpreted as milliseconds
* Delete python bytecode before every test run
* add adminUserDomainId and adminUserProjectId support to monasca-api
* Using own key in kafka producer

0.0.2
-----

* Added kafka interaction objects to monasca\_common
* Change repositories from stackforge to openstack
* Update .gitreview for new namespace
* Fix files which had a mix of tabs and spaces
* Fix for decimal separator during type conversion
* Time zone fix

0.0.1
-----

* Updating python documentation
* Add support for drizzle jdbc connector
* initial python monasca-common code in monasca\_common
* Add adminUserDomainName and adminProjectDomainName to monasca-api
* [monasca-common] Hibernate support added
* Threshold Engine is rejecting valid measurements
* Ensure threshold is always printed as a decimal
* Make Monasca-API recover from Keystone failures
* Allow spaces and apostrophes in dimensions
* jah-1957
* Disallow alarm expressions with threshold first
* Bump the version to 1.1.0
* Bump to version 1.1

2015.1
------

* Allow unicode in the alarm expression parser
* Cleanup toString() method
* Revert changes to the alarm expression parser
* Make alarm expression parsing less restrictive
* Fix toString methods
* Add gzip flag to Influxdb Configuration
* Added option to define project for admin user
* Add measurement valueMeta
* Prevent premature evaluation of Sliding Window
* Remove unused constant
* Always use adminAuthMethod value
* Adding  object to hold info about an Alarm's subalarms when a transition occurs
* Added a config file for documentation generation using Markdown and readthedocs.org
* Add maxHttpConnections for Influxdb 0.9.0 code path
* Fail main maven build if java maven build fails
* Accidentally commented out field on last patchset
* Add missing copyrights
* Add Influxdb 0.9.0 support
* Adds retentionPolicy to the config InfluxDB
* Make MetricDefinition extend AbstractEntity for pagination
* Fixed issue with api accepting expired tokens
* Log helpful messages when keystone connection is misconfigured
* JAH-775 - Monasca-api is encountering SSL problems
* Don't automatically start and stop the topology
* Allow the topology to be rebuilt if needed
* Change package names from com.hpcloud to monasca.common
* Added severity to AlarmStateTransitionEvent
* Add support for decimal threshold values in alarm expressions
* Threshold Engine needs the sub alarm id and the alarm sub expression they map to for AlarmUpdatedEvent and AlarmDeletedEvent
* WIP - Event changes for alarmed-metrics support
* added support for \ as first charcter
* Add details about the StackForge build to README.md
* added support for complex characters without quote
* Changes to use monasca instead of mon
* Add configuration classes
* Add DatabaseConfiguration
* Add mon-influxdb project
* Get initial build to work
* added test for parsing strings
* changed name to reflect the type being parsed
* revert back to cast
* Remove unneccessary cast
* Add CORS support to auth middleware
* Add mon-middleware module
* changes to exception handling
* initial check in
* initial check in
* Switch to kafka 2.10
* Update README.md
* JAH-1891 Threshold Engine will not update State properly if user has changed state via the API
* Changes so it will build without access to any HP resources
* JAH-204 Threshold Engine is rejecting very recent measurements
* Remove unused projects/classes
* Change the timestamp on MetricEnvelope to be seconds not milliseconds to be more consistent with the other timestamps
* Ensure hashcode treats null dimensions the same as empty dimensions
* Make dimensions==null equivalent to dimensions.size() == 0 for equals():
* Add a timestamp to MetricEnvelope so the Threshold Engine and the Persister can determine the progress of emptying the Kakfa queue
* Added license file
* Update dropwizard version in mon-dropwizard
* Removed unused deps in mon-kafka
* Removed messaging sub-project in mon-common
* Removed mon-http, messaging and collectd. Moved kafka related stuff to mon-kafka. Removed all @author tags Added license to all /src/main files
* Remove retry stuff
* Added support for boolean expression trees parsed from AlarmExpressions
* Kill yellow
* Change SlidingWindowStats.slideViewTo() to not floor the timestamp to the minute so that it slides on the first call
* Add support for Timestamp -> String|DateTime conversion in BeanMapper
* Add support for converting sql timestamps to Longs
* Alarm sub expressions should be public
* Documented alarm state transitioned event timestamp field
* Added docs to alarm updated event
* Make Metric Serializable again so the Threshold Engine works
* Added actionsEnabled field to AlarmStateTransitionedEvent
* alarmEnabled -> alarmActionsEnabled
* Added description to alarm updated event
* Modified Metric so that mon-persister could use it too
* Remove call to StringEscapeUtils.unescapeJava() for the JSON String in fromJson. This makes the JSON String unparseable if the json contains backslashes
* Simple MetricDefinition setter
* Dimensions should not be tweaked when they're set in a MetricDefinition
* Added alarmDescription to AlarmStateTransitionedEvent
* Added AlarmStateTransitionedEvent
* Added changed subexpressions to AlarmUpdatedEvent
* Fixed AbstractResourceTest teardown
* Added state and enabled values to AlarmUpdatedEvent
* cpu\_total\_time -> cpu\_time, cpu\_total\_utilization -> cpu\_utilization
* Added AlarmUpdatedEvent
* Removed unused method from MetricDefinition
* NamespacesTest -> ServicesTest
* NamespacesTest -> ServicesTest
* Namespace -> Service Removed required dimensions stuff
* Update README.md
* Marked KafkaProducerConfiguration as Serializable
* Update the readme with 'mvn clean deploy -DBUILD\_NUM=${BUILD\_NUMBER}'
* Change 'verion\_number' to 'version\_number'
* Use computed versions again
* Forgot to add rename of KafkaProducerProperties to last commit
* Upper cased first letter of KafkaProducerProperties
* Marked Metric as Serializable so it can be used in Storm for the Threshold Engine
* Added versions to all plugins
* Added versions to all plugins
* Added versions to all plugins
* Changed <version>${computedVersion}</version> to 1.0.0-SNAPSHOT
* Added jar plugin to mon-streaming to create test-jar
* Marked KafkaConsumerProperties and KafkaConsumerConfiguration as Serializable so they can be used with Storm
* Changed properties file to camel case
* Added Kafka producer properties
* Removed events that are not used for mon
* Add Kafka consumer configuration utilities
* Added Kafka consumer configuration utilities
* Removed headers from TupleDeserializer
* Added mon-streaming common sub-project
* Added Validation and Configuration utilities
* Added MetricDef -> Metric constructor
* Simplified AggregateFunction -> Statistics conversion
* Updated pom and readme to do nexus deploys
* Metric namespace -> name
* Add thread pool name to instrumented thread pool metric names
* Added Environment to abstract resource test
* Support reading config files from classpath
* Added support for loading config files to AbstractResourceTest
* Removed the old dropwizard test server stuff in favor of a new AbstractAppTest
* Added support class for testing jersey resources
* Added additional namespace utility methods
* Work on simplifying namespace utilities
* Removed ps-common references from POM. General POM cleanup
* Removed moved test classes
* Fixed kafka healthcheck test
* Add healthcheck topic to kafka config
* Better-safe-than-sorry-safe-resource-closure
* Basic Kafka healthcheck implementation and test
* Basic KafkaService
* Disabled Serialization tests that depend on overriding Jackson writer types until https://github.com/FasterXML/jackson-databind/issues/412 is resolved
* Move JsonHelpers class away from testing package
* Added test-jar to mon-util build
* Update jackson to resolve conflict with dropwizard
* Fixed mon-util build
* Updated DropwizardTest stuff
* Added MetricEnvelope and utils
* Did away with ChannelAdapters in favor of global MessageTranslators since I think that's all we'll need for mon
* Committed ThreadPooling utilities including instrumented threadpools
* Upgrade to metrics 3.0.x
* Added mon-messaging sub-project
* Added mon-service sub-project
* Committed ThreadPooling utilities including instrumented threadpools
* Updated dropwizard to 0.7.0-rc1
* Lazily sort dimensions in MetricDefinitions
* Consolodated Metric and FlatMetric classes. Removed CollectdMetric stuff
* Created sub-project for http Added serialization, retry, and various other utilities
* Initial commit
