Chapter 35. Service Objects

We saw in Chapter 26 that provisioning operations always include a request object, and a task object that links to source and destination objects.

When we provision a virtual machine from a service there are many more objects involved, because we are creating and referencing more items (creating both a service and potentially several new component VMs). When we provision from a service bundle, there will be several individual items to provision as part of the bundle. Even when we provision from a single service item, however, the objects are structured as if we were provisioning a bundle containing only one item.

In this chapter we will look at some of the objects involved in provisioning a single VM from a service catalog item. The objects are visible to us during the processing of the CatalogItemInitialization state machine.

For this example:

  • We are using CloudForms 3.2.

  • The provider is VMware.

  • The service catalog item name that we’ve ordered from is called “Web Server.”

  • The service catalog item was created to clone from a VMware template called rhel65-template.

  • The new service name is “My New Service.”

  • The resulting service contains a VM called test05.

We can use object_walker with the following @walk_association_whitelist to dump the objects:

{ 'MiqAeServiceServiceTemplateProvisionTask'  => ['source',
                                                 'destination',
                                                 'miq_request',
                                                 'miq_request_tasks',
                                                 'service_resource'],
'MiqAeServiceServiceTemplateProvisionRequest' => ['miq_request' ...

Get Mastering CloudForms Automation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.