Chapter 20. The Options Hash
A user starts the virtual machine provisioning workflow by clicking on the Lifecycle → Provision VMs button in the Virtual Machines toolbar of the WebUI. After selecting a template to provision from, the requesting user completes the provisioning dialog and enters all of the details that are required to create the virtual machine—the number of CPUs, memory, network to connect to, and hard disk format, for example. Somehow this information collected from the WebUI must be added to the Automate provisioning workflow.
Provisioning a virtual machine or instance is a complex operation that, as we have just seen, involves an approval stage. We saw in Chapter 12 that an automation operation involving an approval stage is split into two parts, the request and the task. In the case of a virtual machine provisioning operation, the request is represented by an
miq_provision_request object, and the task is represented by an
The inputs and options selected from the provisioning dialog are added to the
miq_provision_request object as key/value pairs in a data structure known as the options hash. When we write our custom Ruby methods to interact with the provisioning workflow, we frequently read from and write to the options hash.
If the provisioning request is approved, the options hash from the request object is propagated to the task object, but there are slight differences between the two hashes. We’ll examine these next.