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

Version 2.0.18, 09. February 2017:
----------------------------------

* WebUI/QA: Added test that deletes multiple hosts at once (OP-1817)
* WebUI: Enables the RBD form to create RBDs after reloading (OP-1839)
* WebUI: Enabled multiple host deletion (OP-1816)
* WebUI: Improve RBD creation error messages (OP-1527)
* WebUI: Fixes WWN duplication error (OP-1842)
* 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: Fixes loading spinner disappearance problem (OP-1495)
* WebUI: Displays RBD utilization graphs in the RBD details view (OP-1592)
* WebUI: Show the openATTIC version number on each node (OP-1619)
* WebUI: Removed not implemented widgets (OP-1191)
* WebUI: Colorize the disk/pool/volume status icons depending on their
  classification. (OP-1891)
* Backend/QA: Added timestamps to verbose output to map the testcase and to
  the related openattic.log file entry (OP-1841)
* Documentation: Added Ubuntu Xenial to the list of distributions provided by
  our repository (OP-1543)
* Deployment: Improve error messages and handling of errors of make_dist.py
  related to debchange (OP-1804)
* 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)
* Installation: Fixed %post scriplet failure in the openattic-module-ceph RPM
  package (OP-1820)
* 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) 
* 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)
* Packaging: Confusing message about how to delete the openATTIC database is
  no longer shown when updating the openattic-pgsql package (OP-1537)
* 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)
* Documentation: Adapt Vagrant developer documentation.


Version 2.0.17, 20. December 2016:
----------------------------------

* Backend: RPC API dependencies removed in oaconfig (OP-1255)
* 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)
* 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: Fixed Apache redirect from `/` to `/openattic` on Ubuntu
  Xenial (OP-1672)
* Installation: Replaced hard-coded paths in systemd unit files with
  OADIR variable. Thanks to Ricardo Marques. (PR#522)
* WebUI: Display and generate a user's API auth token. (OP-815)
* WebUI: Render the Disks/Pools/Volumes indication of size in the
  frontend (OP-1115)
* WebUI: Display alternative graph image if loading fails (OP-1403)
* WebUI: Make the Disks/Pools/Volumes datatable sortable by additional
  criteria (OP-1427)
* WebUI: Add a button to the API Recorder dialog to copy the Python script
  into clipboard. (OP-1706)
* WebUI: Fixes iSCSI/FC wizard issue (OP-1718)
* WebUI: Modify the API-Recorder Start/Stop buttons (OP-1720)
* WebUI: Display tooltips again (OP-1749)
* WebUI: Remove the OSD selection (OP-1615)
* 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)
* 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)
* Installation: Fix Permission denied: '/usr/bin/pip' for Vagrant development
  environment using SUSE Leap (OP-1715)
* 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: Fix a bug with recreation of the database (OP-1757)
* Installation: Properly restart npcd in `oaconfig install` on distributions using systemd (OP-1688)
* 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)
* Documentation: Added chapter about multinode setup (OP-1045) 


Version 2.0.16, 07. November 2016:
----------------------------------

* 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: Removed ID parameter from volume update view (OP-1473)
* Backend: Salt minions keys can now be accepted via our REST API (OP-1601)
* 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)
* 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)
* 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)
* 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)


Version 2.0.15, 12. October 2016:
---------------------------------

* 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: 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: Added Nagios plugin to collect performance data of RBDs (OP-1444)
* 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: Added support for Ubuntu 16.04 in our Vagrantfile (OP-1492)
* 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: 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 ending 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: Moved general graphbuilder functionalities (get RRD, get Graph,
  get sources list) from the Ceph to the Nagios module (OP-1542)
* Backend: Fixed browsable REST API for Ceph Pools (OP-1549)
* 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: Fixed creation of Ceph erasure code profiles (OP-1574)
* Backend: Use `osd metadata` instead of `osd tree` to get the hostname
  of Ceph OSDs (OP-1573)
* Backend: Added read-only REST API returning 
  `DeepSea <https://github.com/SUSE/DeepSea>`_ minions (OP-1469)
* 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)
* 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: Bugfix - It's no longer possible to remove his own
  privileges (OP-1497)
* WebUI:  Show Salt Minions plus DeepSea Pillar Data (OP-1571)
* WebUI/QA: Blockstorage wizard host creation tests (OP-1496)
* WebUI/QA: Adds missing condition to filter test categories (OP-1551)
* 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/Installation: Added `openattic-module-ceph-deployment` RPM and
  DEB Packages for the DeepSea integration backend module. (OP-1566)
* Packaging: Fixes a bug with piped tarball paths to
  `build_deb_packages.py` (OP-1536)
* Packaging: Allow to override the default GPG key or disable the signing
  completely using `build_deb_packages.py` (OP-1435)
* Packaging: Separated the Ceph related Nagios commands into their own
  configuration file 'openattic-ceph.cfg' (OP-1548)
* Documentation: Updated Vagrant installation instructions (OP-1467),
  added chapter about customizing the WebUI (OP-1541).
* 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)
  
Version 2.0.14, 12. September 2016:
-----------------------------------

* Backend: Removed unused module 'Clustering' (OP-1251)
* Backend: Fixed rtslib deprecation warning in LIO backend (OP-953)
* Backend: Added a task queue module to track long-running commands (OP-1360)
* 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: 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)
* WebUI: Replaced malhar-angular-dashboard with a gridster based
  implemenation (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: Added screenshot and error log functionality (OP-1375)
* WebUI/QA: Have more precised error messages in volume_add site 
  in case of an error (OP-1376)
* WebUI/QA: Create and delete ceph pool tests (OP-1417)
* 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)
* 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)
* 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: make_dist.py doesn't delete anything in the home directory
  anymore (OP-1371)
* 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)
* 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)


Version 2.0.13, 28. July 2016:
------------------------------

Notice: 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 collected performance data for your Ceph clusters will be lost.

* 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: General Ceph RBD improvements (OP-1309, OP-1302, OP-1305 and OP-1133)
* Backend: Improved compatibility with Ceph Hammer (OP-1303)
* 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)
* 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: 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)
* WebUI/QA: RBD form, table, details, creation and deletion tests (OP-1338)
* 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)
* 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)
* Packaging: Added version.txt to the openattic-base RPM and DEB files
  (OP-1267)
* Packaging: Fixed building tar archives from a local hg repository (OP-1312)
* Packaging: Enabled relative paths for make_dist.py (OP-1324)
* Packaging: Fixed automatic debian changelog adaption (OP-1288)
* Packaging: Fix building debian snapshot packages on Ubuntu 16.04 (OP-1372)


Version 2.0.12, 23. June 2016:
------------------------------

* 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: 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: Fixed listing of OSDs. Thanks to Luke Jing Yuan (OP-1266)
* Backend: Add functionality to remove existing Ceph cluster Nagios
* configuration files (OP-1276)
* Backend: Restarting the Nagios service is separated from the configuration
  creation now (OP-1280)
* Backend: Fixed internal server error in `/api/volumes`, if an `lvm` snapshot
  doesn't have a usage in percent (OP-1111)
* WebUI: Added WWN validation (OP-475)
* WebUI: Amend host views to better fit in in openATTIC (OP-479)
* WebUI: Save personal settings of each data table (OP-1134)
* WebUI: Renamed wizard "Raw Block Storage" to "iSCSI/FC target" (OP-1151)
* WebUI: Datatable shows a message if it is empty (OP-1193)
* WebUI: Create the ceph rbd module (OP-1230)
* 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: Test the local storage capabilities of data tables (OP-1202)
* WebUI/QA: Test suite for the new ceph rbd module (OP-1230)
* WebUI/QA: Amend host tests for OP-479 (OP-1232)
* 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)
* 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)

Version 2.0.11, 20. May 2016:
-----------------------------

* 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: Add Ceph osd data table (OP-1144)
* WebUI: Hide snapshot columns with wrong data on a zfs or btrfs (OP-1162)
* WebUI: Link the type description with an wikipedia article (OP-1189)
* 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)
* WebUI/QA: Removed obsolete E2E tests due to OP-597 (OP-1185)
* 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: Disks (falsely displayed) are removed from the volume
  management (OP-597)
* Backend: Removed simplejson dependency (OP-783)
* Backend: Fixed "close_connection is superseded by close_old_connections.
  close_connection()" RemovedInDjango18Warning (OP-809)
* 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: 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: 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: Fixed crash caused by unexpected output of `ceph osd dump` in the
  `hit_set_params` field (OP-1130)
* Backend: Provided a detail page for Ceph pools via the REST API (OP-1071)
* Backend: Revised the Ceph pool listing (OP-1135)
* Backend: Added Ceph status values to Ceph cluster REST API resource (OP-1146)
* Backend: Added Ceph Placement Groups to the REST API (OP-1148)
* 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)
* 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)
* 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: 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.
* 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.

Version 2.0.10, 20. Apr 2016:
-----------------------------

* WebUI: Show an error message if javascript is disabled (OP-580)
* WebUI: Remove Smartadmin and added a new openATTIC theme (OP-585)
* WebUI: replaced all SmallBox notifications by toasty notifications (OP-720)
* WebUI: Disable resize for btrfs volumes (OP-911)
* WebUI: New pagination template/layout (OP-1003)
* WebUI: Accordion header is now clickalbe (OP-1064)
* WebUI: Add d3, nvd3 and angular-nvd3 (OP-1074)
* WebUI: Ceph pool data table (OP-867)
* WebUI/QA: Refactor and add tests to volume_resize.e2e.js (OP-912)
* 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: 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: Implement the pagination for Ceph pools (OP-1026)
* Backend: Added additional information to be retrieved about Ceph pools using
  the RESTful API (OP-1053)
* 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)
* Backend/Gatling: Cleaned up Gatling (OP-1025)
* Installation: "oaconfig install" now skips all LVM volume groups tagged with
  "sys", so they won't be added to the oA database (OP-564). 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: Fixed deprecation warning when importing rtslib on systems that
  ship rtslib-fb (e.g. EL7) (OP-953)
* 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)
* Documentation: Added Gatling document to openATTIC documentation (OP-894)

Version 2.0.9, 16. Mar 2016:
----------------------------

* 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)
* 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)
* Installation: Fixed error in "oaconfig install" that resulted in an
  incomplete installation ("This command requires oacli to be
  configured") (OP-950)
* 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.
* 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)
* 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: Restructured and refined the installation instructions
* Documentation: Added trade mark notice

Version 2.0.8, 1. Mar 2016:
---------------------------

* WebUI: Allow deletion of multiple volumes (OP-339)
* 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: Refresh snapshot panel instead of volume panel (OP-817)
* WebUI: Fixed all jshint and jscs errors (OP-826)
* WebUI: added copyright/license header (OP-837)
* WebUI: Don't allow the user to deactivate himself (OP-851)
* WebUI: Updated favicon to newer version (OP-859)
* WebUI: Adjust the volume protection dialog box to be intuitive (OP-869)
* WebUI: Visibility of volume tab menu (OP-876)
* WebUI/QA: readded protractor zfs e2e test suits
* 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: 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 (see
* OP-873)
* WebUI/QA: fixed snapshot test related to OP-817 (OP-881)
* 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/QA: More tests for multiple selections (OP-875)
* WebUI/QA: Fix selection problem in multiple_volume_deletion (OP-908)
* WebUI: Show a delete button if multiple volumes are selected (OP-884)
* WebUI/QA: Adapt OP-884-related e2e tests (OP-916)
* Backend: added copyright/license header to gatling files (OP-844)
* Backend/Gatling: Removed colorizer.py from the Gatling API test framework due
  to licensing concerns (OP-924)
* Documentation: updated documentation (section e2e, OP-910)
* Installation: Adding distro specific settings for monitoring (OP-842)
  (thanks to Eric Jackson for the contribution)
* 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)
* Installation: Updated and improved the installation and content of the
  default configuration file /etc/default/openattic (OP-920)
* 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)
* Installation: Trimmed down the list of required Nagios plugins in the RPM
  package (OP-942)


Version 2.0.7, 19. Jan 2016:
----------------------------

* WebUI: Fixed jshint and jscs errors (OP-826)
* WebUI/QA: extended host e2e test in order to check the correct title (see OP-855)
* 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: updated developer documentation by adding missing git install
* Documentation: added sections about authentication in general and how you
  can get the authentication token of your own openattic user (OP-860).

Version 2.0.6, 19. Jan 2016:
----------------------------

* WebUI: Added grunt-jscs v2.5.0 (OP-832)
* WebUI: Updated grunt-contrib-jshint from 0.6.4 to 0.11.3 (OP-825)
* 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)
* WebUI/QA: check fullscreen mode (see OP-700 / OP-811)
* WebUI/QA: updated VM Storage wizard e2e (see OP-843)
* WebUI/QA: added wizard e2e test based on zfs/iscsi (see OP-628)
* Installation: Added cron to the requirements of the openattic-module-twraid
  RPM subpackage (OP-845)
* Backend: The authentication token of a user is now obtainable by correct
  username and password if the user is not logged in (OP-841)
* Code cleanup: Updated date in copyright headers (OP-836)
* Documentation: fixed package name and added protractor version
  (section E2E), see OP-847

Version 2.0.5, 15. Dec 2015:
----------------------------

* Installation: Removed dependency on the djextdirect Python module from the
  RPM and DEB packages, removed obsolete file backend/rpcd/extdirect.py
  (OP-784)
* 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: Removed obsolete dependency on the Oxygen icon set from the
  RPM package dependencies (OP-787)
* 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).
* Backend: Added RESTful API functionality to grow unformatted DRBD
  connections and related Gatling API tests (OP-667 / OP-707)
* Web UI: Fixed full screen mode. (OP-700)
* Web UI: Snapshots are sortable by 'create date' now (OP-814)
* 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: Fixed checking for a name that has been already taken
  while editing users or hosts. (OP-796)
* Web UI / QA: Test to verify unique names in user and host editing mode.
* Web UI: Checking for an unique name for a new user now. (OP-588)
* Web UI: Restrict unauthorized access to the UI. (OP-748)
* Web UI: Deactivated menu entry "iSCSI/FC" for physical disks listed in
  volumes. (OP-542)
* Web UI: Changed Dashboard, Disks, Pools, Volumes, System and API-Recorder
  icons
* WebUI/QA: fixed user e2e test which did not work properly in chromium anymore
  (see OP-821)

Version 2.0.4, 17. Nov 2015:
----------------------------

* Web UI: Fixed scripts created by the API Recorder (OP-608, OP-657, OP-712)
* Web UI: Created E2E tests for enabled/disabled storage tabs depending on the
  clicked volume type (OP-690)
* Web UI: Fixed visibility of storage tabs based on the volume type (OP-692)
* Web UI: Updated end to end tests in order to run with Firefox (in addition to
  Chromium) (OP-729)
* Web UI: Fixed look of dropdown list/menus, added autosizing support (OP-656)
* Web UI: Updated Logo. Clicking the logo now opens the Dashboard
* Web UI: Added example configuration template for the E2E tests
* Backend: Updated the DRBD module to use the RESTful API instead of the
  peerhost module (which uses the XML-RPC API) (OP-586)
* Backend: Added functionality and RESTful API test cases (Gatling) to create a
  filesystem on top of a DRBD connection (OP-681, OP-707)
* Installation: Removed executable bits from files that don't need it (OP-696)
* Installation: Fixed wrong end-of-line encodings in many files (CR+LF instead
  of LF) (OP-695)
* Installation: Updated openattic.conf httpd configuration file to support both
  the Apache 2.2 and 2.4 access control directives (OP-709)
* 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
* Documentation: Improved the readability of the openATTIC documentation

Version 2.0.3, 16. Oct 2015:
----------------------------

* 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: 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: Created E2E tests for login with new created user account (OP-629),
  extended and added numerous additional E2E tests.
* Web UI: Clicking the Delete button with no host selected no longer triggers a
  delete action (OP-683)
* Installation: Fixed lots of "user/group does not exist" warnings that ocurred
  when installing the EL7 RPMs (OP-536)
* Installation: Moved log files into /var/log/openattic and created a
  logrotate.conf file (OP-660, OP-661)
* Installation: Removed /var/log/openattic_vgmanager from the Debian packages
  (OP-663)
* 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.

Version 2.0.2, 09 Sep 2015:
---------------------------

* 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: Fixed RPM installation error ("semanage: command not found)
  (OP-571).
* Installation: created "openattic-release" RPM package, to simplify the
  installation process (OP-537).
* 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 dialoge cancels the
  intended action" (OP-601).
* WebUI: Heavily extended the UI test suite.
* WebUI: Added missing Volume Resize option (OP-425).
* 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).
* WebUI: Unified the types of the checkboxes of the cluster status widget
  (OP-566).
* Installation: Fixed a missing "python-djangorestframework" dependency for
  Ubuntu 14.04 (OP-510).
* 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).
* WebUI: Added performance graph to the Dashboard.
* Installation: Fixed oaconfig failure when /etc/aliases is missing (thanks
  to Thomas Schweikle for reporting).
* Installation: Added --allow-broken-hostname option to allow "oaconfig
  install" to proceed without a correctly-configured FQDN (OP-501).

Version 2.0.1, 10 July 2015:
----------------------------

* Added support for the "Restore previous versions" Windows Explorer feature.
* Improved robustness of the LIO module.
* Added physical block device abstraction.
* Added basic volume pool creation.
* Improved iSCSI performance.
* Added serverstats URL that returns an eventstream of live statistics.
* Improved robustness of share creation and deletion.
* Removed support for FTP and TFTP.

Version 1.2.1, 24 November 2014:
--------------------------------

* Fixed mapping a LUN to multiple initiators.

Version 1.2.0, 12 August 2014:
------------------------------

* Fixed LVM snapshots being zeroed after creation.
* 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.
* Fixed mountpoints not being deleted when volumes are unmounted.
* Added volume clone API.
* Added ZVol API.
* Fixed RPCd causing mayhem by not properly closing database connections.
* Fixed FileSystemVolume Nagios checks being initialized incorrectly during
  oaconfig install.
* Added basic quota support for ZFS volumes.
* Fixed XFS resize.
* Fixed date conversion in the Nagios module.
* Fixed incorrect service arguments for check_disk check command.
* Removed support for OCFS2.
* Changed primary IP address detection to judge candidates by the default gw.
* Changed IP address detection to format netmasks using CIDR notation.
* Fixed various bugs in the DRBD resource creation and deletion process.
* Added functionality to format existing block devices.
* 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.
* Added resize functionality for DRBD connections.
* Fixed error when deleting a volume that has snapshots.

Version 1.1.1, 01 April 2014:
---------------------------------

* 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.

Version 1.1.0, 09 March 2014:
---------------------------------
* Improved Nagios disk load graphs.
* Added support for scheduled snapshots.
* Added Host and HostGroup management.
* Added support for querying file systems mounted on remote hosts.
* Removed support for IETD.
* 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.
* Updated ExtJS to version 4, yielding various GUI improvements.
* Added support for SINGLE RAID units.
* Added app for MD-RAID.
* Refactored file system handlers.
* 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.


Version 1.0.7, 22 May 2013:
---------------------------------

* Replaced SSMTP module with mailaliases module.
* Added double-click edit feature to most grid panels.
* Added Cron module.
* Added LV resize feature.
* Improved internationalization support.
* Added check_diskstats Nagios plugin that measures disk performance.
* Improved File System abstraction API.
* Added IPMI sensors module.
* Added oavgmanager CLI tool.
* Added Cluster support.
* Dropped support for Samba in a non-Domain context.
* Added ^f search feature to the GUI.
* Fixed a bug in RPCd which would require authentication, but fail to
  ask for it.
* 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.
* Replaced ZFS-FUSE with zfsonlinux.
* 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.
* Modified hosts table to store FQDNs instead of plain hostnames.
* Refactored Nagios hosts/services templates to not rely on generics.
* Added basic BTRFS support.
* Fix dates not being displayed correctly for some locales.
* Added LV creation date to the database.
* Removed NTP and Proxy modules.
* Changed "oaconfig install" to be completely non-interactive.


Version 0.7.4, 07 March 2012:
-----------------------------

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


Version 0.7.3, 05 March 2012:
-----------------------------

* First release.
