Sprint 60 is mostly focused on the stabilization of upcoming Fine release, with close to half of the total 570 pull requests (a new high) going towards bug fixes. This sprint marks the first time that the Classic UI repo has outpaced the core ManageIQ repo in PRs, 158 to 148. From Sprint 52 to 60, the number of ManageIQ repositories went from 103 to 114 (11 new repos over 8 sprints), and more are being planned. We have a new “Repository Health Report” which includes number of files, Code Climate GPA scores and issues, as well as test coverages across different repos.

A major refactoring effort in the Classic UI replaced all the GTL (Grid/Tile/List) Views to be managed by Angular, even nested ones. This brings us one step closer to changing all the views to use the REST API behind Angular support. It also results in improvements to the UI, such as the new pagination not requiring refresh of the whole screen.

Service UI adds a new feature to handle batch notifications better. Previously, if there are multiple notifications coming in, the end-user will be spammed by them. With the change, it will now show a maximum of 6 notices, after which you’ll get a message to check the notification drawer. Upon expanding the drawer you’ll see all the notifications organized by categories. This uses the PatternFly notification drawer component to align closer with Classic UI.

The Amazon provider made several enhancements for this sprint: CloudWatch Events are now visible in VM Timelines, deletion of S3 folders is supported, plus the refreshing of floating IP and port for a load balancer. Remaining work includes the refactoring and cleanup of the refresh parser.

For more highlights from Sprint 60, we have the addition of quota checking for VM Reconfigure; Escalate privilege option to Catalog Item configuration in Ansible Integration; removal of the default certificate from appliance so that a unique one is auto-generated on first launch of the appliance; introduction of Custom Actions for VMs; and plenty of enhancements in documentation such as configuring ManageIQ to work with load balancers, and a procedure outlining how to refresh Ansible repositories.

All these and more in the Sprint 60 highlight reel, with section markings as follows.

  • Sprint Statistics (Oleg Barenboim) - 0:56
  • Community Update (John Prause) - 4:58
  • Classic UI (Dan Clarizio) - 6:08
  • Service UI (Chris Kacerguis) - 10:34
  • Providers (Adam Grare) - 13:20
  • Automate (Greg McCullough) - 16:40
  • Platform (Gregg Tanzillo) - 20:00
  • API (Alberto Bellotti) - 23:00
  • Performance (Dennis Metzger) - 23:45
  • Documentation (Chris Budzilowicz) - 24:18
  • Discussion - 24:58

Accompanying this sprint are the following “Last Week in ManageIQ” posts, for the Fine-hearted, but not the faint-hearted:

Next, Sprint 61 review will be on May 24, 2017 @ 7:30 PST/10:30 EST/14:30 GMT. Join in the ManageIQ Sprint meeting via Bluejeans (note the new link) and import the ManageIQ community calendar to be notified about this and future Sprint reviews!



  • Automate
    • Extract automation engine to separate repository (#13783)
  • Platform
    • Allow reports to be generated based on GuestApplication (#14939)
  • Providers
    • Provider native operations state machine (#14405)
    • Ansible Tower
      • Escalate privilege (#14929)
      • Add status column to Repositories list (#14855)
      • Use $log.log_hashes to filter out sensitive data. (#14878)
    • Physical Infrastructure: Create asset details object (#14749)
    • Add Alert Definition Profiles (MiqAlertSet) REST API support (#14438)
    • API support for adding/removing Policies to/from Policy Profiles (#14575)
    • Enable custom actions for Vms API (#14817)


  • Automate
    • Retirement
      • Add orchestration_stack_retired notification type. (#14957)
      • Revert previous changes adding notification to finish retirement. (#14955)
    • Provisioning
      • Add :sort_by: :none to GCE Boot Disk Size dialog field. (#14981)
      • Filter out the hosts with the selected network. (#14946)
  • Platform
    • RBAC for User model regard to allowed role (#14898)
    • Fallback to ActiveRecord config for DB host lookup (#15018)
    • Use ActiveRecord::Base for connection info (#15019)
    • Miq shortcut seeding (#14915)
    • Fix constant reference in ManagerRefresh::Inventory::AutomationManager (#14984)
    • Set the db application_name after the server row is created (#14904)
  • Providers
    • Microsoft Infrastructure: [SCVMM] Always assume a string for run_powershell_script (#14859)
    • Ansible Tower
      • Sleep some more time in ansible targeted refresh (#14899)
      • Tower CUD to invoke targeted refresh (#14954)
      • Create or delete a catalog item on update (#14830)
      • Prefer :dialog_id to :new_dialog_name in config_info (#14958)
      • Service Playbook updates fqname and configuration_template (#15007)
      • Use human friendly names in task names and notifications for Tower CUD operations (#14977)
      • Tower CUD check and run refresh_in_provider followed by refreshing manager (#15025)
    • Containers: Update miq-shortcuts (#14951)
    • Hawkular: Fix defaults for immutability of MiddlewareServers (#14822)
    • Network
      • Move public/external network method into base class (#14920)
      • Fix network_ports relation of a LB (#14969)
    • Virtual Infrastructure: Add a method to InfraManager to retrieve Hosts without EmsCluster (#14884)
  • SmartState: Fixed bug: one call to Job#set_status from `VmScan#call_snapshot_delete’ has one extra parameter (#14964)

  • User Interface (Classic)
    • Sync up dropdown list in My Settings => Visual Tab => Start Up (#14914)
    • Show Network Port name in Floating IP list (#14970)
    • Add missing units on VMDB Utilization page for disk size (#14921)
    • Add Memory chart for Availability Zones (#14938)
    • Added jobs.target_class and jobs.target_id to returned dataset in MiqTask.yaml view (#14932)