Workflows that manage VM provisioning

You can use extension points to customize the workflows that manage VM provisioning.

Virtual Machine Request workflow

The Virtual Machine Request workflow defines the flow to request a VMware machine.

Table 1. Virtual Machine Request workflow
Extension Point Description
VMReserveSpace
An extension point to reserve the space for the requested VM. It should set the workflow.scratchpad.reserveSpaceResult variable, which is a JavaScript object with following properties:
  • error: (Boolean) Indicator for whether an error has occurred.
  • message: (String) Description of the reserved space result.
VMWPlacement An extension point to change the workflow to select placement for provisioning details. The default is VMWPlacement for VMware and EC2Placement for Amazon EC2.
before_schedule_ext_key An extension point to allow the user do some work before scheduling VM provisioning. For example, the user can modify VM parameters that are passed to the VM Creation workflow by changing workflow.scratchpad.wf_variables.
after_schedule_ext_key An extension point to do post work after a scheduled job is created. It is fired for each job.

VM Creation workflow

The VM Creation workflow defines the flow to create a VMware instance, and picks up the provision workflow from the virtualization_provider table and invokes it.

Table 2. VM Creation workflow
Extension Point Description
SetupPostProvisionWorkflow
An extension point to configure the subflow to run after a VM is provisioned. It should push one JavaScript object to the workflow.scratchpad.subflows array. The object should have the following properties:
  • name: (String) The name of the subflow to run.
  • inputs: (JavaScript object) The inputs to the subflow.
The default extension point checks if there is Puppet or Chef configuration template to be attached. If yes, it runs the configure Puppet or Chef workflow. The following parameters should be set:
  • u_req_item_id: The request item ID.
  • u_request_user_id: The request user ID.
  • u_virtualization_provider: The sys_id reference to a record on the Virtualization Provider table [virtualization_provider].
  • u_vm_parameters: (String in JSON format) The parameters passed to the workflow configured in the provision_wf field of the virtualization_provider table.

VMware Provision workflow

The VMware Provision workflow defines the flow to provision a VMware instance.

Table 3. VMware Provision workflow
Extension Point Description
VMWareNetworkSelectionSetup An extension point to set the workflow for VMware network selection. The default is the VMware Network Selection workflow, which uses the VMWSelectIP extension point to select the network.
VMWSelectIP
An extension point to change the logic to select the IP for the VM with different source. The workflow.scratchpad.selections variable should be filled with following properties:
  • ip: (String) The IP address for the VM.
  • pool_id: The sys_id for the network configuration.
  • netmask: (String) The net mask.
  • dns: (String) The primary DNS server.
  • dns2: (String) The secondary DNS server.
  • gateway: (String) The gateway.