I have been working on some API development in the Morpheus CMP tool.
The first thing I do when I need to use an API, is to see if there is a good API wrapper. I found this one API wrapper out on Github, called pyMorpheus.
With this wrapper, I was up and running in absolutely no time, making calls to the API, parsing JSON responses, etc.
The Use Case I am working on, is a "re-conciliator" that will do two things:
- Remove Orphaned VMs
- Convert Certain Discovered VMs to Morpheus
This part sorta kinda worked. The call to https://<applianceurl>/servers/id/make-managed did take a Discovered VM and converted it to an instance, with a "VMWare" logo on it.
But I was unable to set advanced attributes of the VMs - Instance Type, Layout, Plan, etc. and this made it only a partial success.
Maybe if we can get the API fixed up a bit, we can get this to work.
One issue, is the "Cloud Sync". When we call the API, we do a cloud sync, to find Discovered VMs. We do the same cloud sync, to determine whether any of the VM's fields in Morpheus change their state, if someone deletes a VM in vCenter (such a state change gives us the indicator that the VM is, in fact, now an orphan). The Cloud Sync is an asynchronous call. You have to wait for an indefinite amount of time, to ensure that the results you are looking for in vCenter, are reflected in Morpheus. It's basically polling, which is not an exact art. For this reason, the reconciliator tool needs to be run as an operations tool, manually, as opposed to some kind of batch scheduled job.
No comments:
Post a Comment