Last Week in ManageIQ: Saying Goodbye to rubyrep


Hello! Drew here,

I'm taking a breather from provisioning land to chat briefly with everyone about the community accomplishments during an extremely active Last Week in ManageIQ.

On July 27 2016 we bid adieu to the final vestiges of rubyrep and now rely solely on pglogical to handle all of our replication needs. #9696 closed out a chapter and started a new book. In this story all the people are singing! Happiness and smiles abound, balloons and confetti are … Well, at least a lot less people are losing sleep at night! Making the move from rubyrep to pglogical was a giant undertaking. A very huge thank-you to everyone involved!


Allow for service templates to have multiple VM's

When setting option_1_number_of_vms in a service dialog we would only provision 1 virtual machine regardless of the value passed in. This improvement reads the number_of_vms and exposes that change in the following 4 areas:

Provision Request

Single Service Item Dialog

Service Bundle Dialog

Default: Allowing a single vm under a service

Applying RBAC search to Automate Simulation

The Automate Simulation tool includes two dropdowns Type and Selection in the Object Attribute panel. The populated data used to allow a full object selection regardless of who was logged in. This change locks the list down via RBAC and only shows the user what they are allowed to see.


Moved trees on group summary and editor out of session hash

The existence of trees in the session was causing errors when a user had a large number of tags in their environment. This fix pulls three trees from the Group Summary screen out of session and stores the data in instance variables.

Only migrate rows in the current region

We found an issue with replication when rows which belonged to a region were migrated. The join table received an id in the global region when it should have had a remote region id assigned.

cloud_subnets_network_ports prior to the change:

vmdb_production=# select * from cloud_subnets_network_ports;
       id       | cloud_subnet_id | network_port_id | address 
 99000000000001 |               2 |               1 |        |
 99000000000002 |               3 |               2 |        |
 99000000000003 |               3 |               3 |        |
 99000000000004 |               3 |               4 |        |
 99000000000005 |               3 |               5 |        |

The same table after the change:

vmdb_production=# select * from cloud_subnets_network_ports;
 id | cloud_subnet_id | network_port_id |    address     
  1 |               2 |               1 |     |
  2 |               3 |               2 |     |
  3 |               3 |               3 |     |
  4 |               3 |               4 |     |
  5 |               3 |               5 |     |


Expose generic object and definition to automate

New automate models for GenericObjectDefinition and GenericObject have been added.

Create a bundle service template and attach to blueprint

Part of the Blueprint feature. This PR builds a new method create_bundle in the Blueprint class. It creates a bundle service template and places all copied item templates underneath it. All of these items are part of a single Blueprint.


These files should not be executable

Less about 'deletions' and more about security. This fix turned off the executable 0755 permission for 78 files!

MiqPolicyController - remove dead policy_options and cat_pressed

The method policy_options was only used on vms and not for policies as the name implied. It also called the previously removed build_policy_tree. Due to the above the method was removed. cat_pressed is no longer used anywhere in the codebase and was happily removed!

Wrapping up

Of the 103 PRs merged last week, I obviously only presented a small sampling. Look out for the next installment of Last Week in ManageIQ!

This is a companion discussion topic for the original entry at