Hello and welcome to the first Last Week in ManageIQ! This is Tim here ready to take you on a whirlwind tour of some of the many, many (many) updates we had to the ManageIQ codebase over just the last week.

Last week we had an incredible 109 PRs merged into master, with an astonishing 329 commits! Contributions from outside the ManageIQ team are always welcome - feel free to check out the latest issues if you want to get involved.


Speed up MiqReport by using join instead of include

An include was fetching all the MiqReportResult records in order to filter the MiqReport objects on the /report/explorer page. Using a join/distinct instead greatly reduced the number of rows sent back from the database, resulting in faster times and a much better user experience.

Improve performance on NetworkManager list pages

This PR was able to improve the performance of NetworkManager list pages by removing a number of N+1 queries.


Use a mutex to prevent concurrent deliver calls in Automate

With the introduction of Puma as the default web server, concurrent requests were starting to cause issues with starting and stopping services in Automate. To fix this a mutex was used in the the MiqAeEngine deliver code, preventing more than one delivery from running at a time.

Better support for acts_as_ar_query collection methods

This PR, along with the work done in #9896, expands support for acts_as_ar_query objects to respond properly to #empty? and #present?.


Cloud Networks API

This PR added a new /api/cloud_networks endpoint to the API, as well as a new /api/providers/:provider_id/cloud_networks subcollection.

Enhancement to Users API

Where users could previously only update their password through this endpoint, support was added to update their email and settings too. It also updated the /api entrypoint to include all the user’s settings in the response.

Add a language switcher in the SSUI

Building on the Users API enhancement where a user is able to update their language preference, a language switcher was added to the SSUI both in the User’s menu and in the login screen. A user can now select their preferred language in the UI and it will be remembered for next time they log in. This also builds on another to PR to add the list of available languages as a Gulp task here.


Remove MiqERBForYAML

This code was last needed in 2013 and we gave it a fond farewell last week!

Remove unused code for ActiveSupport::Inflector

Since the miq-string extension file was requiring active_support/inflector, a total of 141 lines could be removed which duplicated that work.

Wrapping up

There were way too many PRs to cover in detail, but feel free to check them all out here. Look out for the next installment of Last Week in ManageIQ!