Questions on extending the MIQ Framework (Portal alterations/adding Rails MVCs...)




The I.T. company I work for is interested in acquiring either Manage IQ or the derived platform of CloudForms for its network operations and automation portal.
We’ve found the platforms to be very powerful in managing objects within the object space that it exposes through its object model (such as Virtual Machines) but very difficult to customize otherwise.


We seek additional functionality in extending the platform. Questions are as follows:

  • Is there a guide for making extensions to the portal itself. Outside of internal Ruby Scripts/CFME dialogues?
  • How can we add Ruby on Rails controllers/views/models to subsequent portal tabs?
    We need to do this as we intend to implement our own internal firewall and ticket management systems and fully integrate them with the portal.
  • How do we access and manipulate CloudForm’s $evm object from a ruby web page outside of CFME such as from a .rb file from a separate Ruby on Rails application?

My Research Background so far is as follows:

Thanks in advance for any help on this matter.


Glad you’ve found the book useful. Much of the object information that you have access to using the local $evm object is also available via the REST API ( Can you provide an example of the sort of thing you like to be able to do remotely?



Thankyou Peter,

I found your book very useful.

I was recently updated by my team that having everything in the same application is much more preferable.

We’re hoping to achieve the following locally:

  • Create a custom rails controller and model
  • Link the above to Manage IQ’s Postgres database through the relevant rake commands
  • Create a view for the controller
  • Make a custom tab e.g. “external” that links to the view.

For example:
If I was to follow the steps in making a blog post MVC in a process similar to:
what would I need to do to link that into CloudForms?


Could anyone tell me how to prevent CloudForms or ManageIQ from caching controllers, routes and views?

I noticed that changing the code, will not have its changes reflected in the application until:
systemctl restart evmserverd
is run

I have tried the following in vmdb/app/controllers/ApplicationController.rb

before_filter :set_cache_headers

_ private_

_ def set_cache_headers_
_ response.headers[“Cache-Control”] = “no-cache, no-store”_
_ response.headers[“Pragma”] = “no-cache”_
_ response.headers[“Expires”] = “Fri, 01 Jan 1990 00:00:00 GMT”_
_ end_

however it had no effect.

Thanks in advance