CHANGES
=======

0.8.0
-----

* RELEASE 0.8.0 version
* Fix a typo in README
* Remove trailing whitespace character
* Add Carlo Rengo in the contributers list
* Grammar fixes to improve readability
* Remove unnecessary sub-classing
* Remove unnecessary pylint config
* Dynamically set width in log formatter
* Fix typo in comment
* Print a more meaningful message
* Catch the case where pid is higher than allowed
* Rephrase some docstrings
* Remove from local_run.sh redundant settings
* Refuse to start if one IP address is used by multiple service checks
* MAJOR: Drop support for daemonization
* Make docstrings compatible with EP257

0.7.4
-----

* RELEASE 0.7.4 version
* Update copyright
* Make sure we return the prefix length
* Add a 2nd IPv6 service check
* Reorder functions in utils module
* Refactor the way we check our bird settings
* Move the check for a directory to sanity check function
* Fail sanity check when config file and dir don't exist
* Fix incorrect format for enumerated list in README
* fix typo reqeusts->requests (issue #9)
* Mention that IPv6 or v4 is disabled for our software
* Fix type in on_disabled setting
* Add puppet module
* Mention that parent directories for log and pifile files must be present

0.7.3
-----

* RELEASE 0.7.3 version
* Refuse to start when parent directory of pidfile is missing
* Turn on bird6_keep_changes in example config
* Make local.sh to create directories under var/lib
* Remove the logic, which creates parent directories
* Add Returns and Returns section in docstring
* Update example configuration

0.7.2
-----

* RELEASE 0.7.2 version
* Add empty line for proper parsing
* Create anycast-prefixes.conf configuration
* PEP257 compatible docstring
* Use os.path.join to build the file path
* Better handling of symbolic links for bird config
* Make docstrings compatible with EP257
* Add ipv4 setting in the configuration generated by local.sh
* Tiny updates on README

0.7.1
-----

* RELEASE 0.7.1 version
* Update local_run.sh with latest config
* Don't handle bird configuration in local_run.sh
* Allow floating numbers for check_[timeout,interval]
* Instruct Systemd to restart daemon upon failure
* Use standard path rather our custom one
* Mention that prefix length is optional
* Fetch the correct parameter name
* Return boolean value instead of a string
* Update example anycast-healthchecker.conf

0.7.0
-----

* RELEASE 0.7.0 version
* Drop 3.4 version of python for the local_run
* Rephrase usage of CLI
* MAJOR: Add support for IPv6

0.6.3
-----

* RELEASE 0.6.3 version
* Add a note for bird_conf setting
* Keep a history of changes for bird configuration
* Add support for specifying a single service check

0.6.2
-----

* RELEASE 0.6.2 version
* Remove die parameter from get_ip_prefixes_from_bird
* Remove unnecessary call to rstrip function
* Use ConfigParser method to fetch configuration
* Don't exit when there aren't any service checks
* Make the use of format consistent in multi-line
* Add support for removing IP-Prefixes without a check
* Move functions to utils module
* Use double quotes silence error with bash 4.4 version

0.6.1
-----

* RELEASE 0.6.1 version
* Include IP address and prefix length in JSON blob

0.6.0
-----

* RELEASE 0.6.0 version
* Rephrase sentences and fix typos in README
* Restructure documentation about settings in README
* Add option to disable the IP assignment check
* Simplify sanity check on configuration
* Log stderr and stdout of check cmd when it fails
* Rephrase some comments
* Add Documentation option in the Systemd unit file

0.5.10
------

* RELEASE 0.5.10 version
* Set more accurate sleep time to avoid interval drifting
* Add contrib dir and move files there

0.5.9
-----

* RELEASE 0.5.9 version
* Remove inaccurate note from README
* Catch the case where check_cmd can't be killed
* Skip string formatting operation

0.5.8
-----

* RELEASE 0.5.8 version
* Put keywords in 1 line
* Remove empty line
* Work around intermittent ValueErrors
* Add more keywords in setup.cfg

0.5.7
-----

* RELEASE 0.5.7 version
* Change the order of logging a message
* Update bird config when IP isn't assigned to lo
* Update installation instructions
* Update setup.cfg
* Make pylint happy

0.5.6
-----

* RELEASE 0.5.6 version
* Add 'status' key in the JSON blob
* Fix line break before binary operator
* Rewrite docstring of LoggerExt class
* Another set of docstring updates
* Update TODO
* Update docstrings and comments
* Use a more proper name for a variable
* Remove unused reference from README
* Update copyright

0.5.5
-----

* RELEASE 0.5.5 version
* Update TODO.rst
* Enforce HTTP keep-alive on requests

0.5.4
-----

* RELEASE 0.5.4 version
* Fix an indentation issue
* Fix a crash with python-daemon>=2.1

0.5.3
-----

* RELEASE 0.5.3 version
* Use lowercase for the status when is in transition
* Change log level when IP isn't assigned to lo
* Do not send JSON blob for debug messages
* Log only failures when sending JSON blobs
* Reorder the message about zero IP prefixes
* Include the process ID in the header

0.5.2
-----

* RELEASE 0.5.2 version
* Update TODO
* Use lowercase everywhere to simplify log parsing
* Print also the frame stuck
* Remove newline character from the error output
* Implement a more atomic way to update bird conf
* Disable pylint warnings for too-many-arguments
* Store anycast-prefixes.conf under /var/lib/

0.5.1
-----

* RELEASE 0.5.1 version
* Add a module docstring
* Add a warning when all IP prefixes are removed
* Shorten some lines to make pylint happy
* Add module and classes docstrings
* Add support of populating JSON structure
* Rename variable for shorting the length of a line
* Make possible to disable the sending of JSON blobs
* Disable pylint warning attribute-defined-outside-init
* Remove the JSON blob from the log messages
* Wait a bit before starting again the daemon
* Add docstring for a function
* Remove string interpolation within logging calls
* Add version of the daemon in the JSON blob
* Rename a variable for shorting the length of lines
* Add requests module in requirements.txt

0.5.0
-----

* RELEASE 0.5.0 version
* Add support for JSON logging to a remote point

0.4.5
-----

* RELEASE 0.4.5 version
* Catch the error on bird reload due to missing cmd
* Remove unnecessary call to close()

0.4.4
-----

* RELEASE 0.4.4 version
* Update docstring of ip_prefixes_check()
* Remove import of an unused exception
* Change the way we handle IP prefixes without check
* Add Ralf Ertzinger in the contributers list
* Add some corrections in README
* Rewrite routing protcol overview
* Add contributers section

0.4.3
-----

* RELEASE 0.4.3 version
* Fix a regression introduced by 168f9aab

0.4.2
-----

* RELEASE 0.4.2 version
* Change the way threads pass operations
* Fix a regression introduced by 37aa574b1159
* Simplify the update of bird configuration
* Call anycast-healthchecker from the virtualenvironment
* Remove unnecessary catch of Empty exception
* Remove unnecessary block on threads
* Modify README based on the feedback received
* ServiceCheck: simplify code by removing superfluous lines
* switch to split from shlex
* tiny changes on modifications from @ndemou
* New Introduction + minor spelling, grammar syntax
* More clear and simple introduction

0.4.1
-----

* RELEASE 0.4.1 version
* mention the use of virtualenvwrapper tool in Testing section
* another set of small updates on README
* fix broken reference in README
* several changes on README
* fix typo in README
* use correct statement to include images
* add drawings to illustrate how anycasted traffic is routed
* tiny fixes in README
* local_run: get only the list of IPv4 addresses
* tiny fixes on README
* fix typos in README
* add details in README on how someone can test the software
* fix typo in README
* local_run: report if bird is running
* several clean ups on local_run

0.4.0
-----

* RELEASE 0.4.0 version
* ServiceCheck: rearrange the check of IPs in lo interface
* correct the directory path which contains the service checks
* add/remove items from README
* remove OPTIONS variable as its settings aren't supported anymore
* change path of the daemon
* change the default directory location for services check configs
* another set of updates on README
* fix for real the typos in README
* fix typos in README
* some tiny updates on README
* add support for bird_reconfigure_cmd
* reStructured text is fun:-(
* Revert "align left the parameter names"
* align left the parameter names
* small corrections on README
* update diagram about RIB in bird
* update diagram about RIB in bird
* add proper description/examples/configution
* add example and working bird configuration
* use a more reasonable default value for log_backups option
* ServiceCheck: remove unnecessary check for wrong value for on_disabled option
* ServiceCheck: updates on docstrings/comments
* HealthChecker: docstrings/comment updates
* add an item to TODO
* more useful logging on startup
* make pylint happy by shorten length of lines
* remove items from TODO list
* include an example anycast-healthchecker.conf file
* healthchecker: remove unnecessary import of re module
* remove unnecessary empty line
* healthchecker: use get_ip_prefixes_from_bird to fetch IP prefixes
* ServiceCheck: remove unnecessary code
* local_run: drop sleep as it isn't needed anymore
* MAJOR: drop event system as it is not needed anymore
* local_run: use correct file extension
* utils: get_ip_prefixes_from_bird returns a list
* HealthChecker: docstring updates
* utils: remove unnecessary commented lines
* utils: fix typo in variable name
* utils: docstrings updates
* BUG: always perform sanity checks
* BUG:perform sanity check before we check if daemon is running
* add support for showing configuration
* add items in TODO list
* remove items from TODO which are completed
* MAJOR:switch to INI files with configparser and docopt for CLI
* add item in TODO
* use the 'to' option in ip tool to list addresses matching the prefix

0.3.0
-----

* RELEASE 0.3.0 version
* no need to close file handler as 'with' statement does it
* remove another item from TODO
* one item from TODO is finished
* sys.exit can print as well:-)
* remove unused constant
* detect the case where Ddummy ip prefix is missing from bird conf
* detect prefixes in bird without a configuration
* serviceCheck and healthchecker classes get a config option
* configuration_check accept a config object rather a dir with conf files
* provide a get_config() to parse json files and return a dict
* add get_config_files() to return the absolute path of json files
* utils:configuration_check:mention the value for invalid types
* move running function to utils module
* allocate a pid file after all checks has been passed
* refactor configuration_check function
* remove items from TODO which are completed
* exit if we can't write to bird configuration file
* don't print filename as it is mentioned in exception message
* add support for supplying dummy IP prefix in CLI
* make sure log files exists before we start
* add a touch function in utils module
* introduce utils module with valid_ip_prefix function
* remove unused code from local_run
* one item from TODO is implemented
* add support for version in CLI, print it to log as well
* update TODO

0.2.2
-----

* RELEASE 0.2.2 version
* proper shebang

0.2.1
-----

* RELEASE 0.2.1 version
* polish some log messages, no code changes
* reset always counters for states to zero when state is in transition
* more updates on local_run
* updates on TODO
* permission changes
* use birdc rather birdcl to reconfigure bird
* adjust interval in service checks
* updates on local_run
* updates on local_run
* local_run assign IPs and install bird configuration
* some updates on local_run
* exit when parsing bird configuration results to an empty list of IP prefixes
* a script to run the daemon on a development node
* update AUTHORS
* proper handling of invalid data on pid file
* update TODO
* update TODO
* add Systemd unit file
* more updates on TODO
* update TODO
* add TODO file
* proper RST
* add a proper README file
* replace domain in an example conf
* use gmail mail address
* remove old readme
* better catch of IPs in bird config
* include license to __init__
* change License to Apache v2.0

0.2.0
-----

* RELEASE 0.2.0 version
* add some useful info in __init__
* servicecheck.py: less versbose warning
* servicecheck.py: check if we hare received stop signal before perform IP check
* ServiceCheck.py: check was unnecessarily executed twice
* main.py: call configuration checking
* add requirements file
* add a function to perform a sanity check on the configuration
* servicecheck: Tiny rewrite of comment
* servicecheck: Renamed previou_state to check_state
* Fixed argument name collision
* Fixed typo
* Made configurable the rotation policy for log files
* _update_bird_prefix_conf(): Doc string update
* Report valid values for on_disabled setting
* Update ChangeLog

0.1.1
-----

* Tiny change on the comment we place on BIRD config file
* More docstrings and comment updates
* Tiny docstring update
* More pythonic way of loading module
* Spread logic from main.py to individual module files
* Update docstrings and add some comments
* Handle misconfiguration better
* More PEP8 friendly indentation
* Tiny refactoring
* print on stdout and on stderr loggers that we are daemonized
* added pylint filtering
* set umask to 022 to avoid write access for others on log files
* Cosmetic change: Report check duration earlier
* Updated ChangeLog
* fixed path README

0.1.0
-----

* added git push --tags step in README
* Added (finally) some text in README
* Renamed variable is_updated -> bird_updated
* another small doc update
* Various small docstrings updates
* Rewrote ServiceCheck class docstring and changed log severity to error
* Fixed indentation issue and rewrote message when IP-PREFIX is configured
* Catch the case where conf says check disabled but value for on_disabled is wrong
* Changelog updated

0.0.9
-----

* Better handling of errors when we reload bird
* Fixed typos
* Changelog updated

0.0.8
-----

* Added program name in the header of bird configuration
* Detect if IP-PREFIX is assigned to loopback interface
* changelog

0.0.7
-----

* mpla

0.0.6
-----

* Constant name is configurable, sysconfig file
* Cosmetic change
* removed unused script

0.0.4
-----

* mpla

0.0.3
-----

* mpla

0.0.2
-----

* trying to make it to build

0.0.1
-----

* Initial
