openATTIC 3.6.0 has been released

We're happy to announce version 3.6.0 of openATTIC.

Given the fact that openATTIC 3.5.3 was only a bug fix release this 3.6.0 release includes all the improvements and changes since 3.5.2. We cleaned up and removed a lot of unnecessary things and also made some usability improvements to the UI.

The most visible change in openATTIC 3.6.0 is the unification of Grafana and our "old" widgets into one single dashboard page.

We now have one unified dashboard and you don't have to switch between the "old" and the new Grafana dashboard. We included the functionality of the old status widget into our default dashboard. If your cluster is in an error or warning state, this will be shown at the top of your dashboard including the failure message from the 'ceph health' command.

We would like to thank everyone who contributed to this release.

Your feedback, ideas and bug reports are very welcome. If you would like to get in touch with us, consider joining our openATTIC Users Google Group, visit our #openattic channel on or leave comments below this blog post.

See the list below for a more detailed change log and further references. The OP codes in brackets refer to individual Jira issues that provide additional details on each item. You can review these on our public Jira instance.

Changelog for version 3.6.0


  • Backend: The error string of a failed call in an external process does now include the command name (OP-2780)
  • WebUI: Prevent the removal of RGW user that is in use on the settings page. (OP-2737)
  • WebUI: Unit tests for IQN validator (OP-2783)
  • WebUI: Usage of "unsaved changes" dialog on iSCSI form (OP-2254)
  • WebUI: Add HTML linter with a few new rules (OP-2544)
  • WebUI: Add fast-diff help text used in RBD form (OP-2767)
  • Documentation: Added our line length PEP-8 exception to the backend contributing guidelines (OP-823)
  • WebUI: Add no-extra-semi rule to eslint (OP-2844)


  • Backend: Cleaned up pep8 warnings of ceph app (OP-1502)
  • Backend: Cleaned up pep8 warnings of nodb app (OP-1512)
  • Backend: Cleaned up pep8 warnings of rest app (OP-1515)
  • Backend: Cleaned up pep8 warnings of systemd app (OP-1518)
  • Backend: Use health's "status" instead of "overall_status" (OP-2845)
  • WebUI: Display dates in locale date format. All Django DateTimeFields will be returned as ISO 8601 (OP-591)
  • WebUI: Replace babel-preset-es2015 with babel-preset-env (OP-2772)
  • WebUI: Submit buttons should be enabled on invalid forms (OP-2736)
  • WebUI/Backend: Salt-API settings should be optional (OP-2722)
  • WebUI: Prevent modal from closing when clicking on the backdrop (OP-2771)
  • WebUI/QA: Refactored unit test setup (OP-2827)
  • WebUI/QA: Update Karma config with Cobertura report and ChromeHeadless (OP-2725)
  • WebUI: Don't allow performing a delete action on buckets shared via NFS (OP-2768)
  • WebUI: Improve eslint rules (OP-2749)
  • WebUI: Now it is possible to delete a RGW user with buckets (OP-2790)
  • WebUI: Migration of Ceph Pools controllers to components (OP-2399)
  • WebUI: Migration of Ceph OSDs controllers to components (OP-2401)
  • Documentation: Mentioned the AngularJS style guide as the coding style for frontend development (OP-824)
  • WebUI: Migration of Ceph Nodes controllers to components (OP-2398)
  • WebUI: Set the minimum pg size to 1 (OP-2875)
  • WebUI: Convert Shared module to ES6 (OP-2532)
  • WebUI: Unify Grafana and Widgets in a single Dashboard page (2754)
  • WebUI: Select the NFS Host automatically, if only one is available (OP-2711)
  • WebUI/QA: Optimize "ceph_pool_creation" e2e test suite (OP-2812)
  • WebUI: Guide user through RBD creation for iSCSI (OP-2181)
  • WebUI: Migration of Ceph RGW controllers to components (OP-2397)
  • WebUI: Migration of Auth controllers to components (OP-2801)
  • WebUI: Convert Settings components to ES6 (OP-2806)
  • WebUI: Convert Grafana components to ES6 (OP-2805)
  • WebUI: Convert Ceph RBD components to ES6 (OP-2803)
  • WebUI: Convert iSCSI components to ES6 (OP-2802)
  • WebUI: Migration of Api Decorator module into Angular (OP-2850)
  • WebUI: Migration of Grafana module into Angular (OP-2863)
  • WebUI: Migration of Ceph Cluster module into Angular (OP-2852)
  • WebUI: Migration of ApiRecorder module into Angular (OP-2848)
  • WebUI: Migration of Registry module into Angular (OP-2866)


  • Backend: Fixed Settings page doesn't save new keyring information properly (OP-2729)
  • Backend: The currently logged in user can't delete himself anymore (OP-2738)
  • Backend: Fixed CephCluster to return the same keyring_candidates twice (OP-2782)
  • Backend/QA: Added missing license header in userprefs/ (OP-2769)
  • Backend: Fixed "No SystemD in ifconfig.systemapi" Message (OP-2774)
  • Backend: Fixed db corruption when running oaconfig install (OP-2784)
  • Backend: Django SECRET_KEY generated using insufficient entropy (OP-2874)
  • Backend: The Grafana dashboard will now be shown automatically when upgrading from oA 2.x to 3.x (OP-2843)
  • Development: Lint unit test correctly (OP-2828)
  • WebUI: Allow users to type in any size into the RBD form (OP-2730)
  • WebUI/QA: RGW bucket "e2e-rgw-add" is not deleted after RGW suite run (OP-2512)
  • WebUI/QA: Prevent random failure in "2 failed task" test (OP-2735)
  • WebUI/QA: Fix random NFS e2e test failures (OP-2762)
  • WebUI/QA: Fix style issues in protractor.conf.js (OP-2793)
  • WebUI/QA: Prevent random failures in task queue dialog suite (OP-2779)
  • WebUI: Fix the indentation in pool list and form template (OP-2829)
  • WebUI: Fix "use max" links in RBD form (OP-2727)
  • WebUI/QA: Fix random iSCSI e2e test failures (OP-2807, OP-2830)
  • WebUI/QA: Improve e2e testing when running in a slower system (OP-2831)
  • WebUI: Fix RGW name validation (OP-2825)
  • Deployment: Add "PreReq: %fillup_prereq" to SUSE spec file (OP-2808)


  • Backend: Removed utilities.in_unittest (OP-2776)
  • WebUI: Removed the need to type "yes" to delete tasks (OP-2770)


Comments powered by Disqus