openATTIC Changelog
===================

All notable changes to this project will be documented in this file.

The format is inspired by the `Keep a Changelog <http://keepachangelog.com/>`_
project, with the exception of using reStructuredText for markup instead of
Markdown.

To describe their impact on the project, changes are grouped as follows:

* **Added** for new features.
* **Changed** for changes in existing functionality.
* **Deprecated** for once-stable features removed in upcoming releases.
* **Removed** for deprecated features removed in this release.
* **Fixed** for any bug fixes.
* **Security** to invite users to upgrade in case of vulnerabilities.

[2.0.20] - 2017-04-26
---------------------

Added
~~~~~
* Development: Added Ceph support to the Vagrant configuration (OP-2048)
* Development: Support for 'variable' id attribute on 'required' directive
  (OP-1993)
* Development: Added delete confirmation modal component (OP-2013)
* WebUI: Improved javascript error handling by notifying the user via toasty
  error messages (OP-1926)
* Documentation: Split installation instructions for Debian and Ubuntu, to make
  use of Ubuntu's `add-apt-repository`
* Documentation: Instructions to backport commits into a stable release branch
  (OP-2063)

Changed
~~~~~~~
* WebUI: Upgrade angular-bootstrap to the newer major version 2.5.0 (OP-1888)
* WebUI: Improved style of iSCSI iqn and fibre channel wwn inputs (OP-1959)
* Backend: Stop spamming the log with ``Skipping
  /etc/ceph/ceph.client.admin.keyring, permission denied`` (OP-2066)
* Backend: Improved logging by adding PID, Process Name and Current Version
  (OP-2065)

Fixed
~~~~~
* Installation: fixed "OAUSER: unbound variable" error during update on EL7
  (OP-2046)
* Installation: Fixed config file location in the SUSE systemd service
  (OP-2067)
* Backend: Fixed "Systemd did not respond to DBus ping" error on SUSE
  (BNC#1032263)
* Backend: Removed ``__getattribute__`` of ``NodbQuerySet``, cause of strange
  exceptions (OP-2068)
* WebUI: Prevents browser freezing when session expires (OP-1779)
* WebUI: Disallow underscores in IQN WWNs (OP-1669)
* WebUI: Fix incomplete delete confirmation message (OP-2061)
* Documentation: Updated developer documentation for git (OP-2054)
* Packaging: make_dist.py: Fixed building of non-local git branches (OP-2106)
* Development: Fixed Django unit tests (OP-1983)

[2.0.19] - 2017-03-24
---------------------

Added
~~~~~
* WebUI: Display loading spinner icon on form submit to give the user feedback
  that something is happening in the background (OP-1760)
* WebUI: Automatically show toasty notifications for API errors.
  Thanks to Uro� Lates for the contribution. (OP-1631)
* WebUI: Added DRBD support. (OP-1201)

Changed
~~~~~~~
* WebUI: Prevent the dashboard from notifying on a 401 request (OP-1997)
* WebUI: Using $log.error instead of throw on API errors (OP-2003)
* WebUI: Only use the items array in the ceph pool and rbd deletion process (OP-1981)
* WebUI/QA: Removed static names from common.js (OP-1971)
* Backend: REST API response header do now contain 'Cache-Control: no-cache'
  option (OP-1402)
* WebUI: Disabled successful task queue notifications (OP-1961)
* WebUI: Changed mouse cursor to "pointer" over clickable rows (OP-1893)
* WebUI: Dropdown button should not close when user clicks on a disabled option
  Thanks to David D�az for the contribution. (OP-940)
* Documentation: Updated E2E section (changed test tool versions, OP-1919)
* Packaging: Stop and remove ``openattic-rpcd`` service when upgrading to
  version 2.0.19 (OP-1900)
* Development: Change API URL in a Vagrant box setup. (OP-1913)
* Development: Create various directories in a Vagrant box that are required
  at runtime. (OP-1964)
* Development: Add system user/group ``openattic`` in Vagrant boxes to be
  able to run Gatling unit tests. (OP-1960)
* Testing/QA: Improve Gatling tests to be able to execute them in a Vagrant
  box by making the API root part of the base URL configurable. Additionally
  more information are displayed if a test case fails. This could help to
  identify the problem. (OP-1927)
* Installation: Removed symlink from ``/etc/openattic/databases/pgsql.ini``
  (OP-1822)
* Documentation: Restructured and improved format of the CHANGELOG (OP-1911)
* Documentation: Add network preparation howto for Vagrant boxes. (OP-2004)

Fixed
~~~~~
* WebUI/QA: Fix random fails in various tests (OP-1974)
* WebUI: Fixed selection of zero items after deletion in a table (OP-1980)
* WebUI/QA: Fixed random fails in wizard tests (OP-1969)
* WebUI/QA: Fixed random fails in the task queue test (OP-1970)
* WebUI/QA: Fixed some e2e styling issues (OP-1992)
* WebUI: Fixed inconsistent state of rbd datatable actions (OP-1954)
* WebUI: Fixed the RBD utilization graphs (OP-1945)
* WebUI: Fixed ceph pagination issue (OP-1925)
* WebUI: Fixed bug when generating a new user API token. (OP-1914)
* WebUI: Readded the missing $q injection (OP-1965)
* Backend: Wait until the LV is ready when creating a DRBD resource. (OP-1898)
* Backend: Handle ValidationError exception correct, otherwise the error
  message isn't forwarded to the API caller. (OP-1956)
* Backend: The validation error message must be added as an array per field
  name. (OP-1978)
* Backend: Fixed Ceph RBD disk usage value (OP-2008)
* Installation: Fixed domain join - wrong order on ``oaconfig`` script (OP-1209)
* Installation: fixed location of the Nagios ``status.dat`` file on EL7 (OP-1955)
* Development: Remove useless code which breaks Gatling unit tests. (OP-1963)

Removed
~~~~~~~
* Backend: Removed ``oacli`` (OP-1249)
* Backend: Removed peering module (OP-1252)
* Backend: Removed RPC API files and RPCD module (OP-1253)
* Backend: The pkgapt module has been removed (OP-1531)
* Backend: Removed all RPCD and RPC API dependencies (OP-1254, OP-1761)
* Backend: The IPMI module has been removed (OP-1772)
* Backend: The mdraid module has been removed (OP-1773)
* Backend: The twraid module has been removed (OP-1774)
* Backend: Fix creation of erasure coded ceph pools (OP-1885)
* Installation: Ensure removal of obsolete RPM/DEB packages during update
  from a previous version (OP-1968)


[2.0.18] - 2017-02-09
---------------------

Added
~~~~~
* WebUI/QA: Added test that deletes multiple hosts at once (OP-1817)
* WebUI: Task-queue UI implementation (OP-1418)
* WebUI/QA: Tests for task-queue implementation (OP-1746)
* Documentation: Documentation of background task and task-queue
  usage (OP-1747)
* WebUI: Displays RBD utilization graphs in the RBD details view (OP-1592)
* WebUI: Show the openATTIC version number on each node (OP-1619)
* Documentation: Added Ubuntu Xenial to the list of distributions provided by
  our repository (OP-1543)
* Packaging: Added the ability to add mercurial tags to a repository when
  creating a tarball using ``make_dist.py`` (OP-1374)
* Packaging: Enable to use suffixes for the tarball creation using
  ``make_dist.py`` (OP-1875)

Changed
~~~~~~~
* WebUI: Colorize the disk/pool/volume status icons depending on their
  classification. (OP-1891)
* WebUI: Enabled multiple host deletion (OP-1816)
* WebUI: Improved RBD creation error messages (OP-1527)
* Backend/QA: Added timestamps to verbose output to map the testcase and to
  the related openattic.log file entry (OP-1841)
* Deployment: Improved error messages and handling of errors of ``make_dist.py``
  related to ``debchange`` (OP-1804)
* Installation: Added missing configuration entries to the SUSE sysconfig
  file (PR#576)
* Installation: Make ``oaconfig`` respect the username and database name stored
  in ``database.ini`` to create/connect to a database (PR#599)
* Installation: Changing the database password during ``oaconfig install`` now
  follows the symlink from ``database.ini`` to ``pgsql.ini`` instead of
  creating a new file (OP-1821)
* Packaging: Confusing message about how to delete the openATTIC database is
  no longer shown when updating the ``openattic-pgsql`` package (OP-1537)
* Documentation: Adapt Vagrant developer documentation.

Fixed
~~~~~
* WebUI: Fixed WWN duplication error (OP-1842)
* WebUI: Fixed loading spinner disappearance problem (OP-1495)
* WebUI: Enables the RBD form to create RBDs after reloading (OP-1839)
* Installation: Fixed ``%post`` scriplet failure in the openattic-module-ceph
  RPM package (OP-1820)
* Development: Fix rtslib import warnings in Vagrant Xenial boxes. (OP-1858)
* Development: Reconfigure default gateway in Vagrant boxes to set the correct
  primary interface during ``oaconfig install``. (OP-1874)

Removed
~~~~~~~
* WebUI: Removed not implemented widgets (OP-1191)


[2.0.17] - 2016-12-20
---------------------

Added
~~~~~
* WebUI: Display and generate a user's API auth token. (OP-815)
* WebUI: Add a button to the API Recorder dialog to copy the Python script
  into clipboard. (OP-1706)
* Documentation: Added chapter about multinode setup (OP-1045)

Changed
~~~~~~~
* WebUI: Render the Disks/Pools/Volumes indication of size in the
  frontend (OP-1115)
* WebUI: Make the Disks/Pools/Volumes datatable sortable by additional
  criteria (OP-1427)
* WebUI: Modify the API-Recorder Start/Stop buttons (OP-1720)
* WebUI: Remove the OSD selection (OP-1615)
* Backend: Use ``reload-or-restart`` instead of plain ``reload`` for restarting
  services on systemd-based operating systems (OP-984).
* Backend: Change taskqueue description and result fields to ``TextField``
  (OP-1755)
* Installation: Replaced hard-coded paths in systemd unit files with
  ``OADIR`` variable. Thanks to Ricardo Marques. (PR#522)
* Installation: New database instances are created using a random password.
  This change applies to RPM packages only. (OP-1438)
* Installation: Improved error message for problems with ``database.ini``
  (OP-1739)
* Installation: Properly restart ``npcd`` in ``oaconfig install`` on
  distributions using systemd (OP-1688)
* WebUI/QA: E2E adjustments related to OP-1786 (OP-1787)
* WebUI/QA: Try to disable all columns and expect not to succeed (OP-1718)
* WebUI/QA: Refactored cmdlog e2e tests (OP-1797)

Fixed
~~~~~
* Backend: Infinite hanging librados calls are avoided by separated Apache
  processes with timeouts (OP-1340)
* Backend: Fixed creation of NFS and Samba shares on Ubuntu Xenial
  (OP-1697)
* Backend: Fixed XML-RPCD on Ubuntu Xenial (OP-1698)
* Backend: Fixed creation of volume snapshots on Xenial (OP-1699)
* Backend: Fixed btrfs not being available when adding a new volume (OP-1726)
* Backend: Fixed pagination on Xenial (OP-1727)
* Backend: Fix Nagios scripts to get the volume usage statistics working
  again (OP-1403)
* Backend: Fixed compatibility issues in our Ceph module on Xenial (OP-1763)
* Backend: Fixed calls to ``systemd`` (not oA systemd) (OP-1769)
* Backend: Fixed truncated dropdown inputs on Xenial (OP-1788)
* Installation: Fixed Apache redirect from ``/`` to ``/openattic`` on Ubuntu
  Xenial (OP-1672)
* WebUI: Display alternative graph image if loading fails (OP-1403)
* WebUI: Fixes iSCSI/FC wizard issue (OP-1718)
* WebUI: Display tooltips again (OP-1749)
* WebUI: Prevent the disabling of all columns in oA-datatables (OP-1158)
* WebUI: Validate the right WWN formats in the selected host share method
  (OP-1786)
* Installation: Fix Permission denied: ``/usr/bin/pip`` for Vagrant development
  environment using SUSE Leap (OP-1715)
* Installation: Fix a bug with recreation of the database (OP-1757)
* Documentation: Applied some fixes contributed by Ricardo Marques (PR#523)
* Development: Fix storage controller issue with the Vagrant Debian box.
* Development: Fix patch file which is customizing settings in a Vagrant VM.
* Development: Fix vagrant-cachier issues. (OP-1466)

Removed
~~~~~~~
* Backend: RPC API dependencies removed in ``oaconfig`` (OP-1255)


[2.0.16] - 2016-11-07
---------------------

Added
~~~~~
* Backend: The REST API ``host`` resource returns the openATTIC version (in
  ``version.txt``) if the host is an openATTIC host (OP-553)
* Backend: The REST API ``host`` resource returns the installed Django apps if
  the host is an openATTIC host (OP-1023)
* Backend: Salt minions keys can now be accepted via our REST API (OP-1601)
* Backend: Added reading and writing of the ``policy.cfg`` of DeepSea REST API
  (OP-1617)
* Backend: The ``is_oa_host`` field is set to ``True`` for oA hosts by
  ``oaconfig add-host`` (OP-1665)
* Backend: Added database migrations for Django 1.6 (OP-1649)

Changed
~~~~~~~
* Backend: Reverted ``NAGIOS_PLUGIN_DIR`` on SUSE back to
  ``/usr/lib/nagios/plugins``
* Backend: The backend does no longer print the whole traceback into the
  logfile if the XML file of an RRD file is not found (OP-1632)
* Backend: Django migration files aren't checked by Flake8 anymore (OP-1638)
* Packaging: The ``python-configobj`` dependency is moved to the
  ``openattic-base`` package (OP-1666)
* Packaging: Added missing dependency ``openattic-module-cron`` in
  ``openattic-module-lvm`` (OP-1664)
* WebUI: Removed confusing "Sorry folks" message displayed during the loading
  of data tables (OP-1333)

Fixed
~~~~~
* Backend: Fixed Bug on Ubuntu Trusty preventing deletion of iSCSI targets
  (OP-722)
* Backend: Fixed issue breaking the WebUI on Xenial (OP-1689)
* WebUI: Tabs will be selected as expected (OP-1082)
* WebUI: Display the Ceph Pool data table even when there are no objects
  to be displayed, to make the "Create Ceph Pool" button visible (OP-1561)

Removed
~~~~~~~
* Backend: Removed ID parameter from volume update view (OP-1473)


[2.0.15] - 2016-10-12
---------------------

Added
~~~~~
* WebUI: Blockstorage wizard can create a new host (OP-1150)
* WebUI: Added functionality to delete existing erasure code
  profiles (OP-1297)
* WebUI: Added functionality to add erasure code profiles when creating
  new Ceph pools (OP-1298)
* WebUI: Added performance data to the extended view of a ceph pool (OP-1405)
* WebUI: Show Salt Minions plus DeepSea Pillar Data (OP-1571)
* Backend: Added Nagios plugin to collect performance data of RBDs (OP-1444)
* Backend: Added support for Ubuntu 16.04 in our Vagrantfile (OP-1492)
* Backend: Added read-only REST API returning
  `DeepSea <https://github.com/SUSE/DeepSea>`_ minions (OP-1469)
* WebUI/QA: Blockstorage wizard host creation tests (OP-1496)
* WebUI/QA: Adds missing condition to filter test categories (OP-1551)
* Packaging/Installation: Added ``openattic-module-ceph-deployment`` RPM and
  DEB Packages for the DeepSea integration backend module. (OP-1566)
* Packaging: Allow to override the default GPG key or disable the signing
  completely using ``build_deb_packages.py`` (OP-1435)
* Documentation: Added chapter about customizing the WebUI (OP-1541).

Changed
~~~~~~~
* WebUI: It's no longer possible to remove one's own privileges
  (OP-1497)
* Backend: Improved custom error messages in the REST API (OP-497)
* Backend: Code cleanup (PEP8) for the following apps: DRBD, volumes,
  lvm and nagios (OP-838)
* Backend: Fixed code-style for the following Django apps: samba, sysutils,
  nfs, cmdlog, ifconfig and http (OP-1503, OP-1505, OP-1506, OP-1511, OP-1517,
  OP-1519)
* Backend: Moved general graphbuilder functionalities (get RRD, get Graph,
  get sources list) from the Ceph to the Nagios module (OP-1542)
* Backend: The ``check_cephcluster`` Nagios plugin does log into the
  ``openattic.log`` logfile if the conf file and/or the keyring do not exist or
  are not accessible (OP-1572)
* Backend: Use ``osd metadata`` instead of ``osd tree`` to get the hostname
  of Ceph OSDs (OP-1573)
* Packaging: Separated the Ceph related Nagios commands into their own
  configuration file ``openattic-ceph.cfg`` (OP-1548)
* Documentation: Updated Vagrant installation instructions (OP-1467).
* Documentation: Updated Ceph installation chapter, emphasizing the requirement
  of openATTIC and Nagios being able to read the Ceph config file and keyring
  (OP-1572). Emphasized the requirement of Ceph Jewel on both the Ceph cluster
  and the openATTIC node. Added a note to the EL7 installation instructions to
  perform a check of the Nagios configuration after editing it.
* Documentation: Fixed bug in the SUSE installation instructions (thanks to
  Kenneth Wimer for reporting this).
* Documentation: Improved the Debian/Ubuntu package installation chapter by
  removing some duplicate content and clarifying how to enable the nightly
  builds. (OP-1603)

Fixed
~~~~~
* Backend: Performance data for non existing Ceph clusters is no longer
  returned (OP-1406)
* Backend: The ``used_size`` of an RBD is now given by the
  ``get_rbd_performance_data`` task and not directly from the RbdApi. This
  should prevent the 504 error that sometimes occurred by getting RBDs
  (OP-1411)
* Backend: The empty values at the end of the performance data collections
  are filtered now (OP-1470)
* Backend: Fixed compatibility issues with Django 1.8 and Django REST
  Framework 3 (OP-1210, OP-1490, OP-1486)
* Backend: The ``check_cephpool`` Nagios plugin does return the correct outputs
  and exit codes (per the Nagios plugin development guidelines) in error and
  success case now (OP-1521)
* Backend: The Nagios plugins ``check_cephcluster`` and ``check_cephpool`` are
  now exiting with the correct exit codes (as per the Nagios plugin development
  guidelines: https://nagios-plugins.org/doc/guidelines.html#AEN78) for
  invalid arguments (OP-1522)
* Backend: Fixed browsable REST API for Ceph Pools (OP-1549)
* Backend: Fixed creation of Ceph erasure code profiles (OP-1574)
* Backend: Nagios config files including a dot (.) in filename are now
  deleted too (OP-1534)
* Backend: Fixed two Internal Server Errors when accessing Ceph
  resources (OP-1569)
* Backend: Fixed internal server error when creating invalid Erasure Code
  Profiles or deleting used ones (OP-1578)
* Backend/Installation: Fixed misleading debug message during ``oaconfig
  install`` (OP-1580)
* Backend: The ``check_cephcluster`` plugin now prints the correct message and
  returns the correct exit code in case of an error (OP-1586)
* Backend: Fixed ``oaconfig install`` on CentOS 7 (OP-1368)
* Backend: Fixed ``HEALTH_ERR`` not handled in ``ceph.models.Pool#get_status``
  (OP-1593)
* Installation: Fixed ``NAGIOS_PLUGIN_DIR`` path in in the SUSE sysconfig
  file to point to the Icinga plugin directory. Thanks to Abhishek
  Lekshmanan. (PR-457)
* Packaging/Installation: Fixed installation issues on Ubuntu 16.04
  (OP-1012, OP-1484, OP-1494)
* Packaging/Installation: fixed permission problems for Nagios plugins that
  require writing to ``openattic.log`` or reading the Ceph key ring and
  configuration (OP-1320)
* Packaging: Fixes a bug with piped tarball paths to ``build_deb_packages.py``
  (OP-1536)


[2.0.14] - 2016-09-12
---------------------

Added
~~~~~
* WebUI: Implemented a widget which displays the current state of the
  Ceph cluster (OP-85)
* WebUI: Create and delete ceph pools (OP-1299)
* WebUI: If quicklogin is defined in ``config.js``, the username and password
  will be predefined (OP-1386)
* Backend: Added a task queue module to track long-running commands (OP-1360)
* WebUI/QA: Added screenshot and error log functionality (OP-1375)
* WebUI/QA: Create and delete ceph pool tests (OP-1417)
* Installation: ``oaconfig version`` now displays both the openATTIC and Django
  version numbers. Thanks to Brandon Keep. (OP-516)
* Installation: The ``openattic-gui`` RPM and DEB packages now take care of
  installing an ``index.html`` file in the Apache document root directory that
  performs a redirect to the WebUI. Previously, this task was performed by
  ``oaconfig install``. Thanks to Brandon Keep. (OP-959)
* Development: Add Vagrantfile to easily set up a development environment
  (OP-1423)
* Documentation: Added instructions on how to set up a development system
  with Vagrant (OP-1439)
* Packaging: Added a script ``utils/build_rpm.sh`` to the repository that
  converts a source tar archive created by ``make_dist.py`` into installable
  RPM packages (using ``rpm/openattic.spec``) (OP-1117)

Changed
~~~~~~~
* WebUI: Replaced malhar-angular-dashboard with a gridster based implementation
  (OP-1485)
* WebUI: Allow sorting storage volumes by additional fields "Used", "Status",
  "Type" and "Created". Thanks to Tahaa Karim. (OP-1427)
* WebUI/QA: Extended E2E test configuration by ceph pools and suite path
  filter (OP-1339)
* WebUI/QA: Have more precise error messages in volume_add site in case of an
  error (OP-1376)
* WebUI/QA: Make e2e outDir and cephCluster attribute optional (OP-1474)
* WebUI/QA: Add sleeps for the rbd creation and deletion in e2e tests (OP-1489)
* Packaging: ``make_dist.py`` doesn't delete anything in the home directory
  anymore (OP-1371)

Fixed
~~~~~
* Backend: Fixed rtslib deprecation warning in LIO backend (OP-953)
* Backend: Properly handle optional attributes of Ceph pools (OP-1416)
* Backend: Fixed broken call to ``ceph/<fsid>/osds`` on
  http://demo.openattic.org (OP-1453)
* Monitoring: Fixed compatibility of the Ceph pool plugin with
  Django 1.6 (OP-1393)
* WebUI/QA: Fix a timing problem and create needed RBDs (OP-1461)
* WebUI/QA: Fix the timing problems with in the RBD creation test (OP-1471)
* Packaging: Simplified the usage of ``make_dist.py`` and prevented
  ``build_deb_packages.py`` from hanging indefinitely (OP-1431)
* Packaging: Fixed a bug where folder names had to be ``openattic`` to be
  correctly packaged using ``make_dist.py`` (OP-1447 and OP-1449)

Removed
~~~~~~~
* Backend: Removed unused module 'Clustering' (OP-1251)


[2.0.13] - 2016-07-28
---------------------

.. note::
  Due to an incompatible change in our ``check_cephcluster`` Nagios plugin, you
  need to delete existing perfomance data by running ``rm
  /var/lib/pnp4nagios/perfdata/<host_name>/Check_CephCluster_*``. Keep in mind
  that previously collected performance data for your Ceph clusters will be
  lost.

Added
~~~~~
* WebUI: Wizards automatically setting the share path (OP-590)
* WebUI: Make the oA API URL configurable (OP-989)
* WebUI: Deletion of a RBD or multiple RBDs (OP-1032)
* WebUI: Creation of RBDs (OP-753 & OP-1290)
* WebUI: Sortable RBD table and a cleaned up details view (OP-1309)
* WebUI: Added a welcome message to the login screen (OP-1310)
* WebUI: Enable cluster selection in the RBD creation form (OP-1314)
* WebUI: Added grunt task ``grunt inspect --force`` to check the quality of
  your JavaScript code (OP-1332)
* WebUI: Replacing the "Sorry folks" messages with loading messages (OP-1333)
* WebUI: Add form throws toasty error message in case of a pool list loading
  failure. (OP-1357)
* Backend: Added a REST API (userprofiles) to store user preferences
  (key/value pairs) (OP-756)
* Backend: Added the performance data (in JSON) of a Ceph cluster to the REST
  API (OP-1279)
* Backend: Added Ceph pool Nagios monitoring (OP-1292)
* Backend: The ``check_cephcluster`` Nagios plugin contains another value
  ``exec_time``. It represents the run time of the cluster check. (OP-1307)
* WebUI/QA: RBD form, table, details, creation and deletion tests (OP-1338)
* Packaging: Added ``version.txt`` to the ``openattic-base`` RPM and DEB files
  (OP-1267)
* Packaging: Enabled relative paths for ``make_dist.py`` (OP-1324)

Changed
~~~~~~~
* Backend: General Ceph RBD improvements (OP-1309, OP-1302, OP-1305 and OP-1133)
* Backend: Improved compatibility with Ceph Hammer (OP-1303)
* WebUI/QA: Restructured wizard tests with help of a page object (OP-1356)
* WebUI/QA: Includes cluster selection tests in the RBD creation form tests
  (OP-1367)

Fixed
~~~~~
* Backend: Fixed RBDs with same name in multiple pools (OP-1313)
* Backend: Fixed ``ceph df`` missing a newly created pool (OP-1282)
* Backend: Optimized calls to librados (OP-1321)
* Packaging: Fixed building tar archives from a local hg repository (OP-1312)
* Packaging: Fixed automatic Debian changelog adaption (OP-1288)
* Packaging: Fixed building Debian snapshot packages on Ubuntu 16.04 (OP-1372)

Removed
~~~~~~~
* Packaging: Removed dependency on ``python-simplejson`` from RPM and DEB
  packages (OP-1106)
* Packaging: Remove ``backend/.style.yapf`` from the RPM buildroot instead of
  packaging it (OP-1141)


[2.0.12] - 2016-06-23
---------------------

Added
~~~~~
* WebUI: Added WWN validation (OP-475)
* WebUI: Save personal settings of each data table (OP-1134)
* WebUI: Create the Ceph RBD module (OP-1230)
* Backend: Added possiblility to create erasure-coded Ceph pools in the
  REST API (OP-546)
* Backend: Added API call for creating new Ceph pools (OP-1024)
* Backend: Added modifying requests to Ceph pools (OP-1170, OP-1172)
* Backend: Added Ceph Pool snapshots to the REST API (OP-1242)
* Backend: Added support for Ceph cache tiering (OP-1184)
* Backend: Added field ``host`` to Disks REST API resource (OP-1195)
* Backend: Added API call to activate and deactivate Ceph OSDs (OP-1212)
* Backend: Added Ceph RBD REST Collection (OP-1214)
* Backend: Added a Nagios plugin to monitor basic performance data of a Ceph
  cluster (OP-1222) (thanks to Christian Eichelmann for giving us the
  permission to integrate a part of his check-ceph-dash implementation)
* Backend: Added a basic infrastructure to create Nagios service definitions
  for known Ceph clusters (OP-1235)
* Backend: Added CephFS REST Collection (OP-1245)
* Backend: Add functionality to remove existing Ceph cluster Nagios
* configuration files (OP-1276)
* WebUI/QA: Test the local storage capabilities of data tables (OP-1202)
* WebUI/QA: Test suite for the new ceph rbd module (OP-1230)
* WebUI/QA: Added WWN validation tests (OP-1278)
* Packaging: Adapted the build scripts to be able to create tarballs from
  different sources and revisions (OP-1118)

Changed
~~~~~~~
* Backend: Cleaned up ``NAGIOS_SERVICES_CFG_PATH`` backend setting. This
  setting will now be defined in the correct config files (openattic,
  openattic.RedHat, openattic.SUSE) only - no other duplicates or default
  values (OP-1247)
* Backend: Nagios services for Ceph clusters could now be created by
  ``oaconfig install`` (OP-1261)
* Backend: Restarting the Nagios service is separated from the configuration
  creation now (OP-1280)
* WebUI: Amend host views to better fit in in openATTIC (OP-479)
* WebUI: Renamed wizard "Raw Block Storage" to "iSCSI/FC target" (OP-1151)
* WebUI: Datatable shows a message if it is empty (OP-1193)
* WebUI: The Ceph Pool list is sortable now. Furthermore the columns cluster and
  size have been removed (OP-1237)
* WebUI/QA: adapted helper function to new wizard title (OP-1151, OP-1197)
* WebUI/QA: adapted wizard test cases to new wizard title (OP-1151, OP-1197)
* WebUI/QA: Amend host tests for OP-479 (OP-1232)
* Packaging: Amended the create arguments of ``make_dist.py`` from ``stable``
  and ``unstable`` to ``release`` and ``snapshot`` (OP-1233)
* Packaging: Amended the build scripts to not require existing mercurial tags
  anymore (OP-1234)
* Packaging: Changed dependency of the ``openattic-gui`` package from
  ``openattic-base`` to ``openattic`` (OP-1137)
* Packaging: Updated the dependencies on ``ceph-common`` to be of version
  10.0.0 (aka "Jewel") or higher (OP-1268)

Fixed
~~~~~
* Backend: Fixed listing of OSDs. Thanks to Luke Jing Yuan (OP-1266)
* Backend: Fixed internal server error in ``/api/volumes``, if an LVM snapshot
  doesn't have a usage in percent (OP-1111)


[2.0.11] - 2016-05-20
---------------------

Added
~~~~~
* WebUI: Add Ceph OSD data table (OP-1144)
* WebUI/QA: added test cases for datatable (OP-818)
* WebUI/QA: Added test case for hostname in pool dropdown (OP-973)
* WebUI/QA: Test for the hostnames of the pools in the volume form (OP-1059)
* WebUI/QA: Added tests which check the correct description for each volume
  type (OP-1159)
* WebUI/QA: Test to verify that snapshot size is hidden while creating a
  snapshot on a zfs or btrfs (OP-1162)
* WebUI/QA: Added E2E test cases for Ceph OSDs Panel (OP-1176)
* Backend: Exported Ceph osd details in the REST API as
  ``/api/ceph/<fsid>/osds`` (OP-1035)
* Backend: Added BTRFS grow functionality (OP-1093)
* Backend: Added two missing parameters ``delete`` and ``id``, added in OP-736,
  to dbus-send Samba writeconf calls (OP-1113)
* Backend: Switched to Django logging functionality for enhanced logging
  quality (OP-1126)
* Backend: Added searching, filtering and ordering to nested viewsets (OP-1090,
  OP-1129, OP-1142)
* Backend: Provided a detail page for Ceph pools via the REST API (OP-1071)
* Backend: Added Ceph status values to Ceph cluster REST API resource (OP-1146)
* Backend: Added Ceph Placement Groups to the REST API (OP-1148)
* Installation: Enabled logrotate configuration for ``openattic.log`` (OP-1124)
* Installation: Added instructions to create ``openattic.log`` with correct
  permissions when installing packages (OP-1132)
* Documentation: Added styleguide for E2E tests (OP-1015)
* Documentation: Added note about extra package which needs to be installed
  when using Ubuntu 14.04 LTS in order to get lio-utils working (OP-1105)
* Documentation: Created dedicated document "Post Installation" that explains
  common tasks to be performed after installing oA, e.g. changing the openattic
  user's default password (OP-1038).
* Documentation: Added chapter on how to configure a ZFS zpool to the
  "Basic Storage Configuration" chapter (OP-711).
* Documentation: Added basic instructions on how to install oA on SUSE Linux to
  the Installation chapter (OP-986)
* Documentation: Added documentation on how to enable alternative authentication
  methods and how to perform a domain join to a new chapter "Configuring
  Authentication and Single Sign-On" (OP-1044)
* Documentation: Added chapter about how to work on the documentation to the
  Developer Docs.

Changed
~~~~~~~
* WebUI: Extended the pool selection box by the hostname of the pool (OP-973)
* WebUI: Extend the volume creation form by all supported filesystems
  with description (OP-988)
* WebUI: Add dropdown menu to the ceph pool list to select a cluster (OP-1104)
* WebUI: Snapshot size isn't asked for if creating a snapshot
  on a zfs or btrfs (OP-1088)
* WebUI: Save selected cluster between page changes (OP-1131)
* WebUI: Link the type description with an wikipedia article (OP-1189)
* WebUI/QA: Adapted datatable tests due to OP-597 (OP-1186)
* WebUI/QA: Speed up multiple volume deletion test (OP-1187)
* WebUI/QA: Refactors the multiple sequential volume creation and deletion
  test (OP-1190)
* Backend: Revised the Ceph pool listing (OP-1135)
* Backend: Enable logging for the Nagios and Ceph module by default (thanks to
  Eric Jackson)
* Backend: Let the Ceph module check for keyring permissions and log permission
  problems (thanks to Eric Jackson)
* Documentation: Moved Ceph configuration and how to install additional oA
  modules from the Admin Guide into the post-installation document. Moved
  "Getting started" into a separate document. Moved "Hardware Recommendations"
  and "Storage Recommendations" into a separate document.

Fixed
~~~~~
* WebUI: Hide snapshot columns with wrong data on a zfs or btrfs (OP-1162)
* Backend: Disks (falsely displayed) are removed from the volume management
  (OP-597)
* Backend: Fixed "close_connection is superseded by close_old_connections.
  close_connection()" RemovedInDjango18Warning (OP-809)
* Backend: Fixed compatibility issue with Ceph Jewel when running ``oaconfig
  install`` (OP-1079) (thanks to Abhishek Lekshmanan for the patch)
* Backend: Fixed warnings from the Ceph module when calling ``oaconfig install``
  (OP-1121)
* Backend: Added licence headers for nodb files (OP-1125)
* Backend: Fixed crash caused by unexpected output of ``ceph osd dump`` in the
  ``hit_set_params`` field (OP-1130)
* Backend/Installation: Fixed ``update_disks()`` method that is called during
  ``oaconfig install``, so that all hard disks attached to a system are being
  found, and not just the first 16 disks (thanks to IRC user "SNMPGuy" for
  reporting this) (OP-1136)

Removed
~~~~~~~
* WebUI/QA: Removed obsolete E2E tests due to OP-597 (OP-1185)
* Backend: Removed simplejson dependency (OP-783)


[2.0.10] - 2016-04-20
---------------------

Added
~~~~~
* WebUI: Show an error message if javascript is disabled (OP-580)
* WebUI: Add d3, nvd3 and angular-nvd3 (OP-1074)
* WebUI: Ceph pool data table (OP-867)
* WebUI/QA: Added afterAll function to all tests (OP-980)
* WebUI/QA: Added e2e tests to test the pagination (OP-1010)
* WebUI/QA: Ceph menu related e2e tests (OP-945)
* WebUI/QA: Added very basic test case for ceph pool overview (OP-1102)
* Backend: Added basic infrastructure to directly gather information from Ceph
  clusters (OP-1014)
* Backend: List all existing Pools and their characteristics (OP-751)
* Backend: Implement the pagination for Ceph pools (OP-1026)
* Backend: Added additional information to be retrieved about Ceph pools using
  the RESTful API (OP-1053)
* Installation: ``oaconfig install`` now skips all LVM volume groups tagged with
  ``sys``, so they won't be added to the oA database (OP-564).
* Documentation: Added Gatling document to openATTIC documentation (OP-894)

Changed
~~~~~~~
* WebUI: replaced all SmallBox notifications by toasty notifications (OP-720)
* WebUI: New pagination template/layout (OP-1003)
* WebUI: Accordion header is now clickable (OP-1064)
* WebUI/QA: Refactor and add tests to ``volume_resize.e2e.js`` (OP-912)
* Backend/Gatling: Cleaned up Gatling (OP-1025)
* Fixed ``oaconfig add-vg <volume group>`` so that it aborts if the VG does
  not exist or is tagged as ``sys``. Updated the installation documentation
  and replaced ``@sys`` with ``sys`` (LVM strips the @-sign from the tag)
* Installation: marked openattic.repo in the RPM subpackage openattic-release
  as a configuration file, to protect it from getting mangled by RPM updates
  (OP-987)
* Installation: Updated RPM and DEB packaging to include the new "nodb" Python
  modules, added dependency on the ``python-rados`` package (OP-1021)

Fixed
~~~~~
* WebUI: Disable resize for btrfs volumes (OP-911)
* Backend: Fixed a bug with the CRUSH map which caused the server to loop
  endlessly (OP-865)
* Backend: Let the ceph module fail graciously (OP-1022)
* Backend: The name of a netdevice allows a length of up to 15 characters now
  (OP-960) (thanks to Willi Fehler for reporting the issue)
* Backend: Fixed bug - add local volumes to local fstab only (OP-1058)
* Backend: Fixed bug - removing an Ext3/Ext4/XFS filesystem volume that exports
  an NFS share didn't work properly (OP-736)
* Installation: Fixed deprecation warning when importing rtslib on systems that
  ship rtslib-fb (e.g. EL7) (OP-953)

Removed
~~~~~~~
* WebUI: Remove Smartadmin and added a new openATTIC theme (OP-585)


[2.0.9] - 2016-03-16
--------------------

Added
~~~~~
* Installation: The Nagios plugins now read
  ``/etc/(default|sysconfig)/openattic``to obtain distribution-specific
  configuration options (esp. path names). This makes them more portable across
  distributions and resolves most the issues observed on EL7 and SLES12 (except
  for the pnp4nagios configuration, which still requires manual intervention on
  EL7). (OP-820)
* Installation: added ``tmpfiles.d/openattic.conf`` to the RPM package to
  re-create ``/var/lock/openattic`` after a reboot (OP-738)
* Installation: Added missing pnp4nagios config files to
  ``openattic-module-nagios`` RPM (OP-983)
* Installation: Added ``/etc/openattic`` to the ``openattic-base`` RPM (OP-982)
* Documentation: Improved the EL7 installation instructions, added note
  about pnp4nagios configuration (OP-981)
* Documentation: Added trade mark notice

Changed
~~~~~~~
* WebUI: Review licenses of bower packages and NPM modules (OP-857)
* WebUI: Update versions of bower dependencies (OP-904)
* WebUI: Update versions of npm packages (OP-906)
* WebUI/QA: Refactored ``volumes add`` E2E tests (OP-921)
* Monitoring: Removed hard-code path names in the openATTIC Nagios plugins,
  created distribution-specific configuration files and added configuration
  options for Nagios-specific settings (OP-842) (thanks to Eric Jackson for
  the patch)
* Installation: The Nagios plugins now use the distribution's default
  directory ``/var/lib/nagios`` on EL7 to store runtime information (as
  configured via the setting ``NAGIOS_STATE_DIR`` in
  ``/etc/(default|sysconfig)/openattic``) instead of ``/var/lib/nagios3``
  (which is the default in Debian). Removed directory ``/var/lib/nagios3``
  from the ``openattic-module-nagios`` RPM package.
* Documentation: Restructured and refined the installation instructions

Fixed
~~~~~
* Installation: Fixed error in ``oaconfig install`` that resulted in an
  incomplete installation ("This command requires oacli to be
  configured") (OP-950)
* Installation: Added missing package dependencies (bc, nagios-plugins-tcp)
  to the ``openattic-plugin-monitoring`` RPM so that the ``check_openattic_*``
  Nagios plugins actually work on EL7 (OP-976, OP-977)

Removed
~~~~~~~
* Installation: Removed ``oaconfig install <package>`` functionality, as it
  wasn't portable and package installation should rather be performed by
  the dedicated OS tools (e.g. ``apt-get`` or ``yum``) (OP-659)


[2.0.8] - 2016-03-01
--------------------

Added
~~~~~
* WebUI: Allow deletion of multiple volumes (OP-339)
* WebUI: added copyright/license header (OP-837)
* WebUI: Don't allow the user to deactivate himself (OP-851)
* WebUI/QA: E2E test for OP-851, to verify that you can't deactivate your
  profile (OP-852)
* WebUI/QA: E2E test for deletion of multiple volumes (OP-853)
* WebUI/QA: E2E test for OP-792, to verify the displayed name (OP-868)
* WebUI/QA: More tests for multiple selections (OP-875)
* Installation: Adding distro specific settings for monitoring (OP-842)
  (thanks to Eric Jackson for the contribution)
* Packaging: Included the build scripts into the official repository. They can
  be used to create a tar archive and with that, the corresponding Debian or
  RPM packages. (OP-892)
* Packaging: Introduced a new command line switch for ``build_deb_packages.py``
  to update a local repository with the newly built packages (OP-948)

Changed
~~~~~~~
* WebUI: Display first and last name instead of username (OP-792)
* WebUI: Redirect a logged in user to from login to dashboard (OP-799)
* WebUI: Updated favicon to newer version (OP-859)
* WebUI/QA: readded protractor zfs e2e test suits
* WebUI/QA: Adjusted E2E tests with volume protection for OP-869 (OP-870)
* WebUI/QA: Adapted E2E tests related to OP-339 - Allow deletion of multiple
  volumes (OP-871)
* WebUI/QA: re-added commandlog check (``lvcreate``) for specific volume
  (OP-873)
* WebUI/QA: extended all storage tab tests by checking the URL OP-891 - related
  to OP-817 (OP-891)
* WebUI/QA: extended general e2e tests by checking the url when menu entry has
  been clicked (OP-897)
* WebUI: Show a delete button if multiple volumes are selected (OP-884)
* Backend: added copyright/license header to gatling files (OP-844)
* WebUI/QA: Adapt OP-884-related e2e tests (OP-916)
* Documentation: updated documentation (section e2e, OP-910)
* Installation: Updated and improved the installation and content of the
  default configuration file ``/etc/default/openattic`` (OP-920)
* Installation: Trimmed down the list of required Nagios plugins in the RPM
  package (OP-942)

Fixed
~~~~~
* WebUI: Refresh snapshot panel instead of volume panel (OP-817)
* WebUI: Fixed all jshint and jscs errors (OP-826)
* WebUI: Adjust the volume protection dialog box to be intuitive (OP-869)
* WebUI: Visibility of volume tab menu (OP-876)
* WebUI/QA: fixed snapshot test related to OP-817 (OP-881)
* WebUI/QA: Fix selection problem in multiple_volume_deletion (OP-908)
* Installation: Fixed installation errors on EL7 that were caused be the update
  of Nagios to version 4 in the EPEL package repository. Currently, pnp4nagios
  needs to be configured manually for the performance graphs to be displayed.
  (OP-820)

Removed
~~~~~~~
* Backend/Gatling: Removed ``colorizer.py`` from the Gatling API test framework
  due to licensing concerns (OP-924)


[2.0.7] - 2016-01-19
--------------------

Added
~~~~~
* Backend: Added possibility to see the own authentication token via
  http://<openattic-host>/openattic/api/users or
  http://<openattic-host>/openattic/api/users/<user-id> views
  (if one is set) (OP-833)
* Backend: Added a detail route to create a new authentication token
  for an existing user (OP-834)
* Documentation: added sections about authentication in general and how you
  can get the authentication token of your own openattic user (OP-860).

Changed
~~~~~~~
* WebUI/QA: extended host e2e test in order to check the correct title (OP-855)
* Documentation: updated developer documentation by adding missing git install

Fixed
~~~~~
* WebUI: Fixed jshint and jscs errors (OP-826)


[2.0.6] - 2016-01-19
--------------------

Added
~~~~~
* WebUI: Added grunt-jscs v2.5.0 (OP-832)
* WebUI/QA: added wizard e2e test based on zfs/iscsi (OP-628)
* Backend: The authentication token of a user is now obtainable by correct
  username and password if the user is not logged in (OP-841)

Changed
~~~~~~~
* WebUI: Updated grunt-contrib-jshint from 0.6.4 to 0.11.3 (OP-825)
* WebUI/QA: check fullscreen mode (OP-700 / OP-811)
* WebUI/QA: updated VM Storage wizard e2e (OP-843)
* Installation: Added cron to the requirements of the
  ``openattic-module-twraid`` RPM subpackage (OP-845)
* Code cleanup: Updated date in copyright headers (OP-836)
* Documentation: fixed package name and added protractor version
  (section E2E). (OP-847)

Fixed
~~~~~
* WebUI: Fixed jshint and jscs errors (OP-826)
* WebUI: fixed wrong title header in host edit action, see OP-854
* WebUI/QA: updated e2e wizard test by using the updated
  check_wizard titles helper function (OP-828)


[2.0.5] - 2015-12-15
--------------------
Added
~~~~~
* Backend: Added RESTful API functionality to grow unformatted DRBD
  connections and related Gatling API tests (OP-667 / OP-707)
* Web UI/QA: added e2e test for bugfix OP-748 (Clicking the openATTIC icon
  on the login page bypasses the login prompt)
* Web UI/QA: added e2e test for OP-542 (relates to bug OP-597 -> Raw hard Disks
  appear in the "Volumes" overview and can be shared via iSCSI);
  since the iscsi/fc storage tab is no longer visible when
  clicking a disk in volumes panel, the respective test should check this
* WebUI/QA: added E2E test for scenario described in OP-588
  ("When creating a new user, app should warn about existing user names.")
* Web UI / QA: Test to verify unique names in user and host editing mode.

Changed
~~~~~~~
* Installation: Added call to start and enable the rpcbind service before
  starting the NFS server in the ``openattic-module-nfs`` RPM package (OP-786)
* Installation: Make sure to start and enable Samba when installing the
  ``openattic-module-samba`` RPM on RHEL7 and derivatives (OP-788)
* Installation: Updated the RPM package installation to no longer install all
  files as owned by the openattic user (OP-819)
* Packaging: added ``openattic-module-lio`` to the openattic meta RPM package
  dependencies, moved dependency on ``python-rtslib`` from the
  ``openattic-base`` package to the ``openattic-module-lio`` RPM, as it's the
  only one that requires it (and to be in line with dependencies defined by the
  DEB packages).
* Backend: added loading of kernel modules ``target_core_iblock`` and
  ``target_core_pscsi`` to the LIO backend, to fix a ``fabric iscsi not
  loaded`` error observed on CentOS 7 (OP-722).
* Web UI: Snapshots are sortable by "create date" now (OP-814)
* Web UI: Changed Dashboard, Disks, Pools, Volumes, System and API-Recorder
  icons
* Web UI: Deactivated menu entry "iSCSI/FC" for physical disks listed in
  volumes. (OP-542)

Fixed
~~~~~
* Web UI: Fixed full screen mode. (OP-700)
* Web UI: Fixed checking for a name that has been already taken
  while editing users or hosts. (OP-796)
* Web UI: Checking for an unique name for a new user now. (OP-588)
* Web UI: Restrict unauthorized access to the UI. (OP-748)
* WebUI/QA: fixed user e2e test which did not work properly in chromium anymore
  (see OP-821)

Removed
~~~~~~~
* Installation: Removed dependency on the djextdirect Python module from the
  RPM and DEB packages, removed obsolete file ``backend/rpcd/extdirect.py``
  (OP-784)
  * Installation: Removed obsolete dependency on the Oxygen icon set from the
  RPM package dependencies (OP-787)


[2.0.4] - 2015-11-17
--------------------

Added
~~~~~
* Web UI: Created E2E tests for enabled/disabled storage tabs depending on the
  clicked volume type (OP-690)
* Web UI: Added example configuration template for the E2E tests
* Backend: Added functionality and RESTful API test cases (Gatling) to create a
  filesystem on top of a DRBD connection (OP-681, OP-707)
* Documentation: Added note on basic Ceph configuration to the installation
  chapter (OP-697)
* Documentation: Added chapter about contributing and working with Mercurial,
  updated E2E test documentation

Changed
~~~~~~~
* Web UI: Updated end to end tests in order to run with Firefox (in addition to
  Chromium) (OP-729)
* Web UI: Updated Logo. Clicking the logo now opens the Dashboard
* Backend: Updated the DRBD module to use the RESTful API instead of the
  peerhost module (which uses the XML-RPC API) (OP-586)
* Installation: Removed executable bits from files that don't need it (OP-696)
* Installation: Updated openattic.conf httpd configuration file to support both
  the Apache 2.2 and 2.4 access control directives (OP-709)
* Documentation: Improved the readability of the openATTIC documentation

Fixed
~~~~~
* Web UI: Fixed scripts created by the API Recorder (OP-608, OP-657, OP-712)
* Web UI: Fixed visibility of storage tabs based on the volume type (OP-692)
* Web UI: Fixed look of dropdown list/menus, added autosizing support (OP-656)
* Installation: Fixed wrong end-of-line encodings in many files (CR+LF instead
  of LF) (OP-695)


[2.0.3] - 2015-10-16
--------------------

Added
~~~~~
* API/Backend: Created DRBD REST-API that supports creating and deleting
  mirrored volumes (OP-216).
* Web UI: Merged the Ceph Enterprise UI components (CRUSH map editing) into the
  main repo (OP-675).
* Web UI: Created E2E tests for login with new created user account (OP-629),
  extended and added numerous additional E2E tests.

Changed
~~~~~~~
* Web UI: The openATTIC login screen now automatically places the input focus
  on the username input field, adjusted the login icon width (OP-688, OP-689)
* Web UI: Clicking the Delete button with no host selected no longer triggers a
  delete action (OP-683)
* Installation: Moved log files into ``/var/log/openattic`` and created a
  ``logrotate.conf`` file (OP-660, OP-661)
* Installation: Fixed RPM dependencies: all modules depend on ``openattic-base``
  now, removed openattic-base dependency from the ``openattic`` meta package.
* Documentation: Updated the installation and development system setup
  chapters.

Fixed
~~~~~
* Installation: Fixed lots of "user/group does not exist" warnings that ocurred
  when installing the EL7 RPMs (OP-536)

Removed
~~~~~~~
* Installation: Removed ``/var/log/openattic_vgmanager`` from the Debian
  packages (OP-663)


[2.0.2] - 2015-09-09
--------------------

Added
~~~~~
* API: Merged the formerly separate REST API test suite into the
  openATTIC code base (subdirectory ``gatling``).
* Web UI: Merged the formerly separate Web UI into the openATTIC code base
  (subdirectory ``webui``).
* Documentation: Created an initial version of the 2.0 documentation (derived
  from the 1.2 docs) and added it to the openATTIC code base (subdirectory
  ``documentation``) (OP-502).
* Added Ceph module and created ``openattic-module-ceph`` installation package
  (OP-623, OP-624).
* Installation: created ``openattic-release`` RPM package, to simplify the
  installation process (OP-537).
* WebUI: Heavily extended the UI test suite.
* WebUI: Added missing Volume Resize option (OP-425).
* WebUI: Added performance graph to the Dashboard.

Changed
~~~~~~~
* WebUI: Unified the types of the checkboxes of the cluster status widget
  (OP-566).
* Installation: Overhauled the EL7 RPM packages. RPM packages are now signed
  with GPG.
* Adding iSCSI LUNs now only works for hosts that have iqn/wwn attributes
  (OP-469).
* Installation: Added ``--allow-broken-hostname`` option to allow ``oaconfig
  install`` to proceed without a correctly-configured FQDN (OP-501).

Fixed
~~~~~
* Installation: Fixed RPM installation error ("semanage: command not found)
  (OP-571).
* Web UI: Fixed some UI usability issues, e.g. "When deleting a volume,
  pressing "Enter" after confirming the volume name cancels the delete action"
  (OP-565), "Pressing "Enter" in the volume resize dialogue cancels the
  intended action" (OP-601).
* WebUI: Fixed broken Disk Details URL on the Disk Management page (OP-540).
* Installation: Fixed "/var/lib/openattic/ftp does not exist" warning during
  the installation (OP-508).
* Web UI: Fixed iSCSI LUNs not deletable (OP-618, thanks to Felix Netzel for
  reporting).
* Web UI: Fixed a login problem with a newly created user (OP-615, thanks to
  Felix Netzel for reporting).
* Installation: Fixed an issue with ``oaconfig restart/reload`` on RHEL 7 and
  derivatives (OP-572).
* Installation: Fixed "semanage: command not found" error during RPM upgrade
  (OP-571).
* Installation: Fixed a missing ``python-djangorestframework`` dependency for
  Ubuntu 14.04 (OP-510).
* Installation: Fixed oaconfig failure when ``/etc/aliases`` is missing (thanks
  to Thomas Schweikle for reporting).


[2.0.1] - 2015-07-10
--------------------

Added
~~~~~
* Added support for the "Restore previous versions" Windows Explorer feature.
* Added physical block device abstraction.
* Added basic volume pool creation.
* Added serverstats URL that returns an eventstream of live statistics.

Changed
~~~~~~~
* Improved robustness of the LIO module.
* Improved iSCSI performance.
* Improved robustness of share creation and deletion.

Removed
~~~~~~~
* Removed support for FTP and TFTP.


[1.2.1] - 2014-11-24
--------------------

Fixed
~~~~~
* Fixed mapping a LUN to multiple initiators.


[1.2.0] - 2014-08-12
--------------------

Added
~~~~~
* Added ZFS snapshots.
* Added BTRFS snapshots.
* Added mounting of OtherFS snapshots in a .snapshots directory under the
  file system.
* Added automatic creation of Nagios services for existing volumes during
  oaconfig install.
* Added volume clone API.
* Added ZVol API.
* Added basic quota support for ZFS volumes.
* Added functionality to format existing block devices.
* Added resize functionality for DRBD connections.

Changed
~~~~~~~
* Changed primary IP address detection to judge candidates by the default gw.
* Changed IP address detection to format netmasks using CIDR notation.

Fixed
~~~~~
* Fixed LVM snapshots being zeroed after creation.
* Fixed mountpoints not being deleted when volumes are unmounted.
* Fixed RPCd causing mayhem by not properly closing database connections.
* Fixed FileSystemVolume Nagios checks being initialized incorrectly during
  oaconfig install.
* Fixed XFS resize.
* Fixed date conversion in the Nagios module.
* Fixed incorrect service arguments for check_disk check command.
* Fixed various bugs in the DRBD resource creation and deletion process.
* Fixed the paginator in the command log panel.
* Changed DRBD Device Minor allocation to use the lowest available ID, which
  fixed the bug that openATTIC ran out of usable IDs.
* Fixed error when deleting a volume that has snapshots.

Removed
~~~~~~~
* Removed support for OCFS2.


[1.1.1] - 2014-04-01
--------------------

Fixed
~~~~~
* Fixed Volume Management refresh to also refresh the root objects.
* Fixed exception caused by querying an LV that has not yet been fully created.
* Fixed LVM VG detection (detected VGs did not show up in the GUI).
* Fixed DRBD mirror plugin for the Volume Options GUI.


[1.1.0] - 2014-03-09
--------------------

Added
~~~~~
* Added support for scheduled snapshots.
* Added Host and HostGroup management.
* Added support for querying file systems mounted on remote hosts.
* Added support for LIO (linux-iscsi.org).
* Added multithreading support to the RPCd.
* Added fancy Nagios service notifications.
* Added Host Attributes mechanism.
* Added volume abstraction layer.
* Added support for SINGLE RAID units.
* Added app for MD-RAID.
* Added support for deferred function execution to the systemd.
* Added DRBD module.
* Added function to automatically wipe old metadata from newly created volumes.
* Added auto-create function for PeerHost and APIKey entries.

Changed
~~~~~~~
* Improved Nagios disk load graphs.
* Updated ExtJS to version 4, yielding various GUI improvements.
* Refactored file system handlers.

Removed
~~~~~~~
* Removed support for IETD.


[1.0.7] - 2013-05-22
--------------------

* Added double-click edit feature to most grid panels.
* Added Cron module.
* Added LV resize feature.
* Added check_diskstats Nagios plugin that measures disk performance.
* Added IPMI sensors module.
* Added oavgmanager CLI tool.
* Added Cluster support.
* Added ^f search feature to the GUI.
* Added F5 refresh feature to the GUI.
* Added API Recorder to the GUI.
* Added TWRaid module.
* Added LV UUIDs to the database.
* Added file system layout optimization feature.
* Added support for volume initialization scripts.
* Added support for Kerberos authentication.
* Added SnapApp basics.
* Added support for Deduplication and Compression for file systems that
  support them (currently, only zfsonlinux does).
* Added support for Univention Corporate Server (UCS) 3.1.
* Added support for Virtual File System Modules.
* Added LV creation date to the database.
* Added basic BTRFS support.

Changed
~~~~~~~
* Replaced SSMTP module with mailaliases module.
* Improved internationalization support.
* Improved File System abstraction API.
* Replaced ZFS-FUSE with zfsonlinux.
* Modified hosts table to store FQDNs instead of plain hostnames.
* Refactored Nagios hosts/services templates to not rely on generics.
* Changed "oaconfig install" to be completely non-interactive.

Fixed
~~~~~
* Fixed a bug in RPCd which would require authentication, but fail to
  ask for it.
* Fix dates not being displayed correctly for some locales.

Removed
~~~~~~~
* Dropped support for Samba in a non-Domain context.
* Removed NTP and Proxy modules.


[0.7.4] - 2012-03-07
--------------------

Fixed
~~~~~
* Fixed the Nagios syncdb hook which caused the initial syncdb to fail.


[0.7.3] - 2012-03-05
--------------------

Added
~~~~~
* First release.
