While checking out the exhibitions at CloudExpo weeks ago, I learned about the Red Hat Enterprise Virtualization (RHEV) 3.0. Due to my interest in virtualization APIs, I started to look into its management APIs. With no surprise these days, it’s a REST API.
As my typical flow learning new APIs, I started with the product itself. I find, with no exception so far, that an APIs is much easier to understand if the product is understood first. After all, the APIs just exposes the features and capabilities of a product. To illustrate these features and capabilities, the GUI is always better than API docs. I found the Quick Start Guide very helpful.
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
After that, I started to read the REST API Guide. It’s just a typical REST documentation with many URLs and XMLs. I am sure you’ve read some similiar docs before and know what to expect in such a document.
Because I am an OO bigot, I always look for an object model behind an APIs. With REST APIs, it’s normally missing even though you can easily map resources to objects. While browsing the API doc, I find the section 4.2 Link elements has something close to what I wanted.
The following is Table 4.1. Available Relationship Types from that section. Although it’s about the relationships, you can tell the available types in the APIs. Contents are the same, but you can read them from different perspectives.
|Capabilities||Supported capabilities of the Red Hat Enterprise Virtualization Manager.|
|Vmpools||Virtual machine pools.|
|Domains||Identity service domains.|
|Groups||Imported identity service groups.|
Although it’s still not as rich or sophisticated as VMware vSphere APIs, the RHEV management APIs offers all the basic features for RHEV to be a good solution for low cost virtualization management. Currently the product is in its external beta according to the website. It definitely worths trying out once it GAs.