Developing with VMware vCenter Orchestrator vCenter Orchestrator 5.1 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions of this document, see http://www.vmware.com/support/pubs.
Developing with VMware vCenter Orchestrator You can find the most up-to-date technical documentation on the VMware Web site at: http://www.vmware.com/support/ The VMware Web site also provides the latest product updates. If you have comments about this documentation, submit your feedback to: docfeedback@vmware.com Copyright © 2008–2012 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws.
Contents Developing with VMware vCenter Orchestrator 7 1 Developing Workflows 9 Key Concepts of Workflows 11 Workflow Parameters 11 Workflow Attributes 11 Workflow Schema 12 Workflow Presentation 12 Workflow Tokens 12 Phases in the Workflow Development Process 12 Access Rights for the Orchestrator Client 13 Testing Workflows During Development 13 Creating and Editing a Workflow 13 Create a Workflow 13 Edit a Workflow 14 Edit a Workflow from the Standard Library 14 Workflow Editor Tabs 15 Provide General
Developing with VMware vCenter Orchestrator Create the Input Parameters Dialog Box for the User Interaction 52 Respond to a Request for a User Interaction 53 Calling Workflows Within Workflows 53 Workflow Elements that Call Workflows 54 Call a Workflow Synchronously 56 Call a Workflow Asynchronously 57 Schedule a Workflow 57 Prerequisites for Calling a Remote Workflow from Within Another Workflow 58 Call Several Workflows Simultaneously 59 Running a Workflow on a Selection of Objects 60 Implement the Start
Contents Validate and Run the Complex Workflow Example 114 2 Scripting 117 Orchestrator Elements that Require Scripting 117 Limitations of the Mozilla Rhino Implementation in Orchestrator 118 Using the Orchestrator API 118 Access the Scripting Engine from the Workflow Editor 119 Access the Scripting Engine from the Action or Policy Editor 120 Access the Orchestrator API Explorer 120 Use the Orchestrator API Explorer to Find Objects 120 Writing Scripts 121 Add Parameters to Scripts 123 Accessing the Orch
Developing with VMware vCenter Orchestrator Index 147 6 VMware, Inc.
Developing with VMware vCenter Orchestrator Developing with VMware vCenter Orchestrator provides information and instructions for developing custom ® VMware vCenter Orchestrator workflows and actions. In addition, the documentation contains information about the Orchestrator elements that require scripting and provides JavaScript examples. Developing with VMware vCenter Orchestrator also provides instructions about how to create resources and packages.
Developing with VMware vCenter Orchestrator 8 VMware, Inc.
Developing Workflows 1 You develop workflows in the Orchestrator client interface. Workflow development involves using the workflow editor, the built-in Mozilla Rhino JavaScript scripting engine, and the Orchestrator and vCenter Server APIs. n Key Concepts of Workflows on page 11 Workflows consist of a schema, attributes, and parameters. The workflow schema is the main component of a workflow as it defines all the workflow elements and the logical connections between them.
Developing with VMware vCenter Orchestrator n Obtaining Input Parameters from Users When a Workflow Starts on page 40 If a workflow requires input parameters, it opens a dialog box in which users enter the required input parameter values when it runs. You can organize the content and layout, or presentation, of this dialog box in Presentation tab in the workflow editor.
Chapter 1 Developing Workflows n Develop a Complex Workflow on page 96 Developing a complex example workflow demonstrates the most common steps in the workflow development process and more advanced scenarios, such as creating custom decisions and loops. Key Concepts of Workflows Workflows consist of a schema, attributes, and parameters. The workflow schema is the main component of a workflow as it defines all the workflow elements and the logical connections between them.
Developing with VMware vCenter Orchestrator Workflow Schema A workflow schema is a graphical representation that shows the workflow as a flow diagram of interconnected workflow elements. The workflow schema is the most important element of a workflow as it determines its logic. Workflow Presentation When users run a workflow, they provide the values for the input parameters of the workflow in the workflow presentation.
Chapter 1 Developing Workflows Access Rights for the Orchestrator Client By default, all Orchestrator users can access the Orchestrator client. However, for security reasons, the Orchestrator administrator can limit access to the Orchestrator client to members of the Orchestrator administrator LDAP group. If the Orchestrator administrator has limited the access to the client and if you are not a member of the Orchestrator administrator group, you cannot log in to the Orchestrator client.
Developing with VMware vCenter Orchestrator 2 Click the Workflows view. 3 (Optional) Right-click the root of the workflows hierarchical list, or a folder in the list, and select Add folder to create a new workflow folder. 4 (Optional) Type the name of the new folder. 5 Right-click the new folder or an existing folder and select New workflow. 6 Name the new workflow and click OK. A new empty workflow is created in the folder that you chose. What to do next You can edit the workflow.
Chapter 1 Developing Workflows 9 Click Yes or No to copy the workflow version history to the duplicate. Option Description Yes The version history of the original workflow is replicated in the duplicate. No The version of the duplicate reverts to 0.0.0. 10 Click Duplicate to duplicate the workflow. 11 Right-click the duplicate workflow and select Edit. The workflow editor opens. You can edit the duplicate workflow. You duplicated a workflow from the standard library.
Developing with VMware vCenter Orchestrator Table 1-1. Workflow Editor Tabs (Continued) Tab Description Events View information about each individual event that occurs when the workflow runs. This information includes a description of the event, the user who triggered it, the type and origin of the event, and the time and date when it occurred. Permissions Set the permissions to interact with the workflow for users or groups of users.
Chapter 1 Developing Workflows Defining Attributes and Parameters After you create a workflow, you must define the global attributes, input parameters, and output parameters of the workflow. Workflow attributes store data that workflows process internally. Workflow input parameters are data provided by an outside source, such as a user or another workflow. Workflow output parameters are data that the workflow delivers when it finishes its run.
Developing with VMware vCenter Orchestrator Define Workflow Attributes Workflow attributes are the data that workflows process. NOTE You can also define workflow attributes in the workflow schema elements when you create the workflow schema. It is often easier to define an attribute when you create the workflow schema element that processes it. Prerequisites Open a workflow for editing in the workflow editor. Procedure 1 Click the General tab in the workflow editor.
Chapter 1 Developing Workflows You cannot use the following keywords in workflow attribute and parameter names. Table 1-2.
Developing with VMware vCenter Orchestrator n Foreach Elements and Composite Types on page 37 You can insert a Foreach element in the workflow that you develop to run a sub-workflow that iterates over arrays of parameters or attributes. To improve the understanding and readability of the workflow, you can group several workflow parameters of different types that are logically connected in a single type that is called a composite type.
Chapter 1 Developing Workflows 4 (Optional) Right-click an element in the schema and select Copy. 5 (Optional) Right-click at an appropriate position in the schema and select Paste. Copying and pasting existing schema elements is a quick way of adding similar elements to the schema. All of the settings of the copied element appear in the pasted element, except for the business state. Adjust the pasted element settings accordingly.
Developing with VMware vCenter Orchestrator Promote Input and Output Parameters You can promote the input and output parameters of a child element to the parent workflow. You can promote a custom attribute that you have defined on the General tab of the workflow editor. You can promote predefined attributes only by replacing an input parameter with an attribute of matching type.
Chapter 1 Developing Workflows 2 From the Orchestrator client menu, select Tools > User preferences. 3 Click the General tab. 4 Type the number of results for searches to return in the Finder Maximum Size text box. 5 Click Save and Close in the User Preferences dialog box. You modified the number of results that searches return. Schema Elements The workflow editor presents the workflow schema elements in menus in the Schema tab.
Developing with VMware vCenter Orchestrator Table 1-3. Schema Elements and Icons (Continued) Schema Element Name 24 Description Icon Location in Workflow Editor User Interaction Allows users to pass new input parameters into the workflow. You can design how the user interaction element presents the request for input parameters and place constraints on the parameters that users can provide. You can set permissions to determine which users can provide the input parameters.
Chapter 1 Developing Workflows Table 1-3. Schema Elements and Icons (Continued) Schema Element Name Description Icon Location in Workflow Editor Action Element Calls on an action from the Orchestrator libraries of actions. When a workflow reaches an action element, it calls and runs that action. Generic workflow palette Workflow Element Starts another workflow synchronously. As soon as a workflow reaches a workflow element in its schema, it runs that workflow as part of its own process.
Developing with VMware vCenter Orchestrator Schema Element Properties Schema elements have properties that you can define and edit in the Schema tab of the workflow palette. Edit the Global Properties of a Schema Element You define the global properties of a schema element in the element's Info tab. Prerequisites Verify that the Schema tab of the workflow editor contains elements. Procedure 1 Click the Schema tab in the workflow editor. 2 Select an element to edit by clicking the edit icon ( ).
Chapter 1 Developing Workflows Table 1-4. Properties Tabs per Schema Element (Continued) Schema Element Property Tab Description Applies to Schema Element Type End Workflow Stops the workflow, either because the workflow completed successfully, or because it encountered an error and returned an exception. n End n Exception How this schema element behaves in the event of an exception.
Developing with VMware vCenter Orchestrator Table 1-4. Properties Tabs per Schema Element (Continued) Schema Element Property Tab Description Applies to Schema Element Type Scripting Shows the JavaScript function that defines the behavior of this schema element. For Asynchronous Workflow, Schedule Workflow, and Action elements this scripting is readonly. For scriptable task and custom decision elements, you edit the JavaScript in this tab.
Chapter 1 Developing Workflows Figure 1-1. Different Workflow Paths Through the Logical Flow of the Workflow This example workflow can take the following paths through its logical flow. n n n n VMware, Inc. Standard path, true decision result, no exceptions. a The decision element returns true. b The SnapVMsInResourcePool workflow runs successfully. c The sendHtmlEmail action runs successfully. d The workflow ends successfully in the completed state.
Developing with VMware vCenter Orchestrator Element Links Links connect schema elements and define the logical flow of the workflow from one element to the next. Elements can usually set only one outgoing link to another element in the workflow and one exception link to an element that defines its exception behavior. The outgoing link defines the standard path of the workflow. The exception link defines the exception path of the workflow.
Chapter 1 Developing Workflows Data Flow of a Workflow The data flow of a workflow is the manner in which workflow element input and output parameters bind to workflow attributes as each element of the workflow runs. You define the data flow of a workflow by using schema element bindings. When an element in the workflow schema runs, it requires data in the form of input parameters.
Developing with VMware vCenter Orchestrator The data flows through the workflow as follows. 1 The workflow starts with input parameters a and b. 2 The first element processes parameter a and binds the result of the processing to workflow attribute c. 3 The first element processes parameter b and binds the result of the processing to workflow attribute d.
Chapter 1 Developing Workflows Procedure 1 Click the edit icon ( ) of the element on which to set the bindings. A dialog box that lists the properties of the element appears. 2 Click the IN tab. The contents of the IN tab depend on the type of element you selected. 3 n If you selected a predefined task, workflow, or action element, the IN tab lists the possible local input parameters for that type of element, but the binding is not set.
Developing with VMware vCenter Orchestrator Decisions Workflows can implement decision functions that define different courses of action according to a Boolean true or false statement. Decisions are forks in the workflow. Workflow decisions are made according to inputs provided by you, by other workflows, by applications, or by the environment in which the workflow is running. The value of the input parameter that the decision element receives determines which branch of the fork the workflow takes.
Chapter 1 Developing Workflows 5 Release the left mouse button. The dotted red arrow remains between the two elements. You have defined the path the workflow takes when the decision element receives unexpected input. You have defined the possible true or false paths that the workflow takes depending on the input parameter or attribute the decision element receives. What to do next Define the decision statement. See “Create Workflow Branches Using Decisions,” on page 35.
Developing with VMware vCenter Orchestrator 3 Click the Not Set (NULL) link to select the source input parameter for this decision. A dialog box that lists all the attributes and input parameters defined in this workflow appears. 4 Select an input parameter from the list by double-clicking it. 5 If you did not define the source parameter to which to bind, create it by clicking the Create attribute/parameter in workflow link in the parameter selection dialog box.
Chapter 1 Developing Workflows 4 Click the Exceptions tab in the schema element properties tabs at the bottom of the Schema tab. 5 Click the Not set button to set the Output Exception Binding value. n Select a parameter to bind to the exception output parameter from the exception attribute binding dialog box. n Click Create parameter/attribute in workflow to create an exception output parameter. 6 Click the target element that defines the exception handling behavior.
Developing with VMware vCenter Orchestrator Using Composite Types A composite type is a group of more than one input parameter or attribute that are connected logically but are of different types. In a Foreach element, you can bind a composite type as an iterator. In this way, the Foreach element takes the values for the grouped parameters at once in every subsequent run of the workflow. For example, suppose that you are about to rename a virtual machine.
Chapter 1 Developing Workflows d Select Bind as iterator. You can select Bind as iterator to indicate that the subworkflow must iterate over this parameter or attribute. e Click Create parameter/attribute in workflow. The parameter type must be array so that the subworkflow iterates over the values of this array. f 8 Select Create workflow OUTPUT PARAMETER with the same name and click Ok. On the Outputs tab, verify that the subworkflow's parameters are added as elements of type array.
Developing with VMware vCenter Orchestrator Example: Rename Virtual Machines Suppose that you want to rename 10 virtual machines at a time. For this purpose, you insert a Foreach element in a workflow and select the Rename virtual machine workflow in the element. You create a composite type to connect the vm and the name parameters explicitly. You bind the composite type as an iterator, thus creating a single array that contains both the vm and the name parameter.
Chapter 1 Developing Workflows Create the Presentation of the Input Parameters Dialog Box You create the presentation of the dialog box in which users provide input parameters when they run a workflow in the Presentation tab in the workflow editor. Prerequisites n Open a workflow for editing in the workflow editor. n Verify that the workflow has a defined list of input parameters. Procedure 1 In the workflow editor, click the Presentation tab.
Developing with VMware vCenter Orchestrator Setting Parameter Properties Orchestrator allows you to define properties to qualify the input parameter values that users provide when they run workflows. The parameter properties you define impose limits on the types and values of the input parameters the users provide. Every parameter can have several properties. You define an input parameter's properties in the Properties tab for a given parameter in the Presentation tab.
Chapter 1 Developing Workflows 6 Under Value, make the property value either static or dynamic by selecting the corresponding symbol from the drop-down menu. Option Description Static property Dynamic property 7 If you set the property value to static, you select a property value according to the type of parameter for which you are setting the properties. 8 If you set the property value to dynamic, you define the function to obtain the parameter property value by using an OGNL expression.
Developing with VMware vCenter Orchestrator Table 1-5. Workflow Input Parameter Properties (Continued) Parameter Property Parameter Type Description Predefined answers All simple types Pre-defines a list of possible values for the property as an array of simple types. You either define the array manually or the property calls an action that returns an array of objects of the appropriate type.
Chapter 1 Developing Workflows Table 1-6. Predefined OGNL Constant Values Constant Value Description ${#__current} Current value of the custom validation property or matching expression property ${#__username} User name of the user who started the workflow ${#__userdisplayname} Display name of the user who started the workflow ${#__serverurl} URL containing the IP address of the server from which the user starts the workflow.
Developing with VMware vCenter Orchestrator 6 Define the External Inputs for a User Interaction on page 50 You specify the information that users must provide during a workflow run as the input parameters of a user interaction. 7 Define User Interaction Exception Behavior on page 51 If a user does not provide the input parameters within the timeout period, the user interaction returns an exception. You can define the exception behavior in a scripted function.
Chapter 1 Developing Workflows n Identify an LDAP user group to respond to the user interaction request. Procedure 1 Click the User Interaction element in the workflow schema. 2 Click the Attributes tab for the user interaction. 3 Click Not set for the security.group source parameter to set which users can respond to the user interaction. 4 (Optional) Select NULL to allow all users to respond to the request for user interaction.
Developing with VMware vCenter Orchestrator Procedure 1 Click the User Interaction element in the workflow schema. 2 Click the Attributes tab for the user interaction. 3 Click Not set for the timeout.date source parameter to set the timeout parameter value. 4 (Optional) Select NULL to allow the user interaction to set the workflow to wait indefinitely for the user to respond to the user interaction. 5 Click Create parameter/attribute in workflow to set the workflow to fail after a timeout period.
Chapter 1 Developing Workflows 6 Click Create parameter/attribute in workflow to create a workflow attribute. a Name the attribute timerDate. b Select Date from the list of attribute types. c Select Create workflow ATTRIBUTE with the same name. d Leave the attribute value set to Not set, because a scripted function will provide this value. e Click OK. 7 Click the Scripting tab for the scripted workflow element.
Developing with VMware vCenter Orchestrator 3 Click Not set for the timeout.date source parameter to set the timeout parameter value. 4 Select the Date object that encapsulates a relative time and date that you defined in a scripted function and click Select. You set the timeout.date attribute to a relative date and time that a scripted function calculates. What to do next Define the external input parameters that the user interaction requires from the user.
Chapter 1 Developing Workflows Define User Interaction Exception Behavior If a user does not provide the input parameters within the timeout period, the user interaction returns an exception. You can define the exception behavior in a scripted function. If you do not define the action for the workflow to take if the user interaction times out, the workflow ends in the Failed state. Defining the exception behavior is a good workflow development practice.
Developing with VMware vCenter Orchestrator What to do next Create the dialog box in which users provide input parameters. See “Create the Input Parameters Dialog Box for the User Interaction,” on page 52. Create the Input Parameters Dialog Box for the User Interaction Users provide input parameters during a workflow run in an input parameters dialog box, in the same way that they provide input parameters when a workflow first starts.
Chapter 1 Developing Workflows Respond to a Request for a User Interaction Workflows that require interactions from users during their run suspend their run either until the user provides the required information or until the workflow times out. Workflows that require user interactions define which users can provide the required information and direct the requests for interaction. Prerequisites Verify that at least one workflow is in the Waiting for User Interaction state.
Developing with VMware vCenter Orchestrator n Prerequisites for Calling a Remote Workflow from Within Another Workflow on page 58 If the workflow that you develop calls another workflow that resides on a remote Orchestrator server, certain prerequisites must be fulfilled so that the remote workflow can run successfully. n Call Several Workflows Simultaneously on page 59 Calling several workflows simultaneously runs the called workflows synchronously as part of the run of the calling workflow.
Chapter 1 Developing Workflows Scheduled workflows only run once. You can schedule a workflow to run recurrently by calling the Workflow.scheduleRecurrently method in a scriptable task element in a synchronous workflow. Nested Workflows A workflow can start several workflows simultaneously by nesting several workflows in a single schema element. All the workflows listed in the nested workflow element start simultaneously when the calling workflow arrives at the nested workflows element in its schema.
Developing with VMware vCenter Orchestrator Propagate the Input Parameters and Presentation of a Child Workflow to the Parent Workflow If you develop a workflow that calls other workflows, you can propagate the input parameters and the presentation of the child workflows to the parent workflow. Procedure 1 From the drop-down menu in the Orchestrator client, select Run. 2 Right-click the workflow that you want to modify and select Edit. The workflow editor opens. 3 Select the Schema tab.
Chapter 1 Developing Workflows You called a workflow synchronously from another workflow. When the workflow reaches the synchronous workflow during its run, the synchronous workflow starts, and the initial workflow waits for it to complete before continuing its run. What to do next You can call a workflow asynchronously from a workflow. Call a Workflow Asynchronously Calling a workflow asynchronously runs the called workflow independently of the calling workflow.
Developing with VMware vCenter Orchestrator Prerequisites n Open a workflow for editing in the workflow editor. n Add some elements to the workflow schema. Procedure 1 Drag a Schedule Workflow element from the Generic menu to the appropriate position in the workflow schema. 2 Search for the workflow to call by typing part of its name in the text box. 3 Select the workflow from the list and click OK.
Chapter 1 Developing Workflows Orchestrator server. Because the Rename virtual machine workflow runs on the remote Orchestrator server, the same virtual machine must be available in the inventory of that server. Otherwise, the Rename virtual machine workflow cannot resolve its vm input parameter. Therefore, the vCenter Server plug-in on the local and the remote Orchestrator servers must be connected to the same vCenter Server instance.
Developing with VMware vCenter Orchestrator You called several workflows simultaneously from a workflow. What to do next You can define long-running workflows. Running a Workflow on a Selection of Objects You can automate repetitive tasks by running a workflow on a selection of objects. For example, you can create a workflow that takes a snapshot of all the virtual machines in a virtual machine folder, or you can create a workflow that powers off all the virtual machines on a given host.
Chapter 1 Developing Workflows Implement the Start Workflows in a Series and Start Workflows in Parallel Workflows You can use the Start workflows in a series and Start workflows in parallel workflows to run a workflow on a selection of objects. You cannot run the Start workflows in a series and Start workflows in parallel workflows directly. You must include them in another workflow that you create.
Developing with VMware vCenter Orchestrator 7 Bind the wf input of the Start workflows in a series or Start workflows in parallel workflow to the workflow to run on the objects. For example, to remove any snapshots of all the virtual machines returned by the getAllVirtualMachinesByFolder action, select the Remove all snapshots workflow.
Chapter 1 Developing Workflows Procedure 1 Drag a Scriptable Task element from the Generic menu to the schema of a workflow, above the element that requires the relative Date object for its timeout.date attribute. 2 Link the Scriptable Task element to the elements that precede and follow it in the workflow schema. 3 Click the Scriptable Task element to show its properties tabs in the bottom half of the Schema tab.
Developing with VMware vCenter Orchestrator n Open the workflow for editing in the workflow editor. n Add some elements to the workflow schema. Procedure 1 Drag a Waiting Timer element from the Generic menu to the position in the workflow schema at which to suspend the workflow's run. 2 Link the Waiting Timer element to the elements that precede and follow it in the workflow schema.
Chapter 1 Developing Workflows Create a Trigger Object Trigger objects monitor event triggers that plug-ins define. For example, the vCenter Server plug-in defines these events as Task objects. When the task ends, the trigger sends a message to a waiting trigger-based longrunning workflow element, to restart the workflow. The time-consuming event for which a trigger-based long-running workflow waits must return a VC:Task object.
Developing with VMware vCenter Orchestrator c Click Create ATTRIBUTE with same name to create the attribute. d Leave the value as Not set. 12 Define any exception behavior in the Exceptions properties tab. 13 Define a function to generate a Trigger object in the Scripting tab. For example, you could create a Trigger object by implementing the following JavaScript function. trigger = task.
Chapter 1 Developing Workflows 7 Select a predefined Trigger object from the proposed list. This Trigger object represents a trigger event that another workflow or workflow element defines. 8 Define any exception behavior in the Exceptions properties tab. 9 Click Save at the bottom of the workflow editor. You defined a workflow element that suspends a trigger-based long-running workflow, that waits for a specific trigger event before restarting. What to do next You can run a workflow.
Developing with VMware vCenter Orchestrator 8 Provide a description of the configuration element in the Description text box in the General tab. 9 Click the Attributes tab. 10 Right-click in the tab and select Add attribute to create a new attribute. 11 Click the attribute values under Name, Type, Value, and Description to set the attribute name, type, value, and description. 12 Click the Permissions tab.
Chapter 1 Developing Workflows Set User Permissions on a Workflow You set levels of permission on a workflow to limit the access that users or user groups can have to that workflow. You can select the users and user groups for which to set permissions from the Orchestrator LDAP server. Prerequisites n Create a workflow. n Open the workflow for editing in the workflow editor. n Add some elements to the workflow schema. Procedure 1 Click the Permissions tab.
Developing with VMware vCenter Orchestrator Validate a Workflow and Fix Validation Errors You must validate a workflow before you can run it. You can validate workflows in either the Orchestrator client or in the workflow editor. However, you can only fix validation errors if you have opened the workflow for editing in the workflow editor. Prerequisites Verify that you have a complete workflow to validate, with schema elements linked and bindings defined. Procedure 1 Click the Workflows view.
Chapter 1 Developing Workflows 3 The schema element's output parameters are copied to the workflow token attributes and workflow output parameters. 4 The workflow token attributes and output parameters are stored in the database. 5 The next schema element starts running. This sequence repeats for each schema element until the end of the workflow. Workflow Token Check Points When a workflow runs, each schema element is a check point.
Developing with VMware vCenter Orchestrator 6 Option Action Number of virtual CPUs Select an appropriate number of CPUs from the Number of virtual CPUs drop-down menu. Virtual machine guest OS Click the Not Set link and select a guest operating system from the list. Host on which to create the virtual machine Click Not set for the Host on which to create the virtual machine value and navigate through the vCenter Server infrastructure hierarchy to a host machine.
Chapter 1 Developing Workflows 5 Browse to locate the folder in which to save the PDF file, provide a file name, and click Save. The PDF file containing the information about the selected workflow, or the workflows in the folder, is saved on your system. Use Workflow Version History You can use version history to revert a workflow to a previously saved state. You can revert the workflow state to an earlier or a later workflow version.
Developing with VMware vCenter Orchestrator Develop a Simple Example Workflow Developing a simple example workflow demonstrates the most common steps in the workflow development process. The example workflow that you are about to create starts an existing virtual machine in vCenter Server and sends an email to the administrator to confirm that the virtual machine has started. The example workflow performs the following tasks: 1 Prompts the user to select a virtual machine to start.
Chapter 1 Developing Workflows 6 Bind the Action Elements of the Simple Workflow Example on page 81 You can bind a workflow's elements together in the workflow editor. Bindings define how the action elements process input parameters and generate output parameters. 7 Bind the Simple Workflow Example Scripted Task Elements on page 84 You bind a workflow's elements together in the Schema tab of the workflow editor.
Developing with VMware vCenter Orchestrator 6 Name the new workflow Start VM and Send Email and click OK. The workflow editor opens. 7 In the General tab, click the version number digits to increment the version number. Because this is the initial creation of the workflow, set the version to 0.0.1. 8 Click the Server restart behavior value in the General tab to set whether the workflow resumes after a server restart.
Chapter 1 Developing Workflows 6 Drag the following action elements, one after the other, to the blue arrow that links the startVM action element to an End element. vim3WaitTaskEnd Suspends the workflow run and pings an ongoing vCenter Server task at regular intervals, until that task is finished. The startVM action starts a virtual machine and the vim3WaitTaskEnd action makes the workflow wait while the virtual machine starts up.
Developing with VMware vCenter Orchestrator Figure 1-3. Linking the Elements of the Start VM and Send Email Example Workflow What to do next You can highlight different zones in the workflow. Create the Simple Workflow Example Zones You can emphasize different zones in workflow by adding workflow notes of different colors. Creating different workflow zones helps to make complicated workflow schema easier to read and understand. Prerequisites Complete the following tasks.
Chapter 1 Developing Workflows 5 Press Ctrl+E to select the background color. 6 Repeat the preceding steps to highlight other zones in the workflow. n Place a note over the vertical sequence of elements from the VM powered on? decision element to the OK element. Add the description Start VM path. n Place a note over the startVM failed, both Timeout scriptable task elements and the Send Email Failed scriptable task element. Add the description Error handling.
Developing with VMware vCenter Orchestrator Define the Parameters of the Simple Workflow Example In this phase of workflow development, you define the input parameters that the workflow requires to run. For the example workflow, you need an input parameter for the virtual machine to power on, and a parameter for the email address of the person to inform about the result of the operation. When users run the workflow, they will be required to specify the virtual machine to power on and an email address.
Chapter 1 Developing Workflows n Open the workflow for editing in the workflow editor. Procedure 1 On the Schema tab, click the Edit icon ( 2 On the Decision tab, click the Not set (NULL) button and select vm as the decision element's input parameter from the list of proposed parameters. 3 Select the state equals statement from the list of decision statements proposed in the drop-down menu. ) of the VM Powered On? decision element.
Developing with VMware vCenter Orchestrator 4 Set host to NULL. This is an optional parameter, so you can set it to null. However, if you leave it set to Not set, the workflow cannot validate. 5 Click the OUT tab. The default output parameter that all actions generate, actionResult, appears. 6 For the actionResult parameter, click Not set. 7 Click Create parameter/attribute in workflow. The Parameter information dialog box displays the values that you can set for this output parameter.
Chapter 1 Developing Workflows Table 1-7. Binding Values of the vim3WaitTaskEnd Action Parameter Name Binding Type Bind to Existing or Create Parameter? task IN Bind progress IN Create Binding Values n Local Parameter: powerOnTask n Source parameter: task[attribute] n Type: VC:Task n Description: Contains the result of powering on a VM.
Developing with VMware vCenter Orchestrator Table 1-8. Binding Values of the vim3WaitToolsStarted Action Parameter Name Binding Type Bind to Existing or Create Parameter? vm IN Automatic binding pollingRate IN Bind Binding Values n Local Parameter: vm n Source parameter: vm[inparameter] n Type: VC:VirtualMachine n n Value: Not editable, variable is not a workflow attribute. Description: The virtual machine to start.
Chapter 1 Developing Workflows 2 3 Set the following general information in the Info tab. Option Action Interaction Select No External interaction. Business Status Select the check box and add the text VM already powered on. Description Leave the text The VM is already powered on, bypassing startVM and waitTaskEnd, checking if the VM tools are up and running.. Click the IN tab. Because this is a custom scriptable task element, no properties are predefined for you.
Developing with VMware vCenter Orchestrator Table 1-9. Bindings of the Start VM Failed Scriptable Task Element Parameter Name Binding Type Bind to Existing or Create Parameter? vm IN Bind errorCode IN Create Binding Values n Local Parameter: vm n Source parameter: vm[inparameter] n Type: VC:VirtualMachine n Description: The virtual machine to power on.
Chapter 1 Developing Workflows Table 1-10. Bindings of the Timeout 1 Scriptable Task Element Parameter Name Binding Type Bind to Existing or Create Parameter? vm IN Bind errorCode IN Bind Binding Values n Local Parameter: vm n Source parameter: vm[inparameter] n Type: VC:VirtualMachine n Description: The virtual machine to start. n Local Parameter: errorCode n Source parameter: errorCode[attribute] n Type: string Description: Catch any exceptions while powering on a VM.
Developing with VMware vCenter Orchestrator Table 1-11. Bindings of the Timeout 2 Scriptable Task Element Parameter Name Binding Type Bind to Existing or Create Parameter? vm IN Bind errorCode IN Bind Binding Values n Local Parameter: vm n Source parameter: vm[inparameter] n Type: VC:VirtualMachine n Description: The virtual machine to power on.
Chapter 1 Developing Workflows The OK scriptable task element requires the following scripted function. body = "The VM '"+vm.name+"' has started successfully and is ready for use"; //Writes the following event in the vCO database Server.log(body); Send Email Failed Scriptable Task Element The Send Email Failed scriptable task element receives notice that the sending of the email failed, and writes the event in the Orchestrator log.
Developing with VMware vCenter Orchestrator Table 1-14. Bindings of the Send Email Scriptable Task Element Parameter Name Binding Type Bind to Existing or Create Parameter? vm IN Bind toAddress IN Bind Binding Values n Local Parameter: vm n Source parameter: vm[inparameter] n Type: VC:VirtualMachine n Description: The virtual machine to power on.
Chapter 1 Developing Workflows //Apply the method that sends the email message myEmailMessage.sendMessage(); System.log("Sent email to '"+toAddress+"'"); Define the Simple Workflow Example Exception Bindings You define exception bindings in the Schema tab in the workflow editor. Exception bindings define how elements process errors. The following elements in the workflow return exceptions: startVM, vim3WaitTaskEnd, Send Email, and vim3WaitToolsStarted. Prerequisites Complete the following tasks.
Developing with VMware vCenter Orchestrator Set the Read-Write Properties for Attributes of the Simple Workflow Example You can define whether parameters and attributes are read-only constants or writeable variables. You can also set limitations on the values that users can provide for input parameters. Setting certain parameters to read-only allows other developers to adapt the workflow or to modify it without breaking the workflow's core function. Prerequisites Complete the following tasks.
Chapter 1 Developing Workflows n “Define the Parameters of the Simple Workflow Example,” on page 80. n “Define the Simple Workflow Example Decision Bindings,” on page 80. n “Bind the Action Elements of the Simple Workflow Example,” on page 81. n “Bind the Simple Workflow Example Scripted Task Elements,” on page 84. n “Define the Simple Workflow Example Exception Bindings,” on page 91. n Open the workflow for editing in the workflow editor.
Developing with VMware vCenter Orchestrator You have made both parameters mandatory, defined how the user can select the virtual machine to start, and limited the characters that can be input for the recipient's email address. What to do next You must create the layout, or presentation, of the input parameters dialog box in which users specify a workflow's input parameter values when they run it.
Chapter 1 Developing Workflows 6 Drag the (VC:VirtualMachine)vm parameter under the Virtual Machine display group. In the input parameters dialog box, a text box in which the user types the virtual machine name will appear under a Virtual Machine heading. 7 Repeat the preceding steps to create a display group for the toAddress parameter, setting the following properties: a Create a display group and name it Recipient's Email Address.
Developing with VMware vCenter Orchestrator 5 Right-click the Start VM and Send Email workflow and select Start workflow. The input parameters dialog box opens and prompts you for a virtual machine to start and an email address to send notifications to. 6 Select a virtual machine to start from the vCenter Server inventory. 7 Type an email address to which to send email notifications. 8 Click Submit to start the workflow. A workflow token appears under the Start VM and Send Email workflow.
Chapter 1 Developing Workflows 3 Create the Schema of the Complex Workflow Example on page 99 You can create a workflow's schema in the workflow editor. The workflow schema contains the elements that the workflow runs, and determines the logical flow of the workflow. 4 Create the Complex Workflow Example Zones on page 101 Optionally, you can highlight different zones of the workflow by adding workflow notes.
Developing with VMware vCenter Orchestrator 6 Click the Server restart behavior value to set whether the workflow resumes after a server restart. 7 In the Description text box, type a description of what the workflow does. 8 Click Save at the bottom of the General tab. You created the Take a Snapshot of All Virtual Machines in a Resource Pool workflow. What to do next You must create a custom action.
Chapter 1 Developing Workflows 12 Add the following scripting in the bottom of the Scripting tab. The following code returns an array of disk modes for the disks of the virtual machine. var devicesArray = vm.config.hardware.device; var retArray = new Array(); if (devicesArray!=null && devicesArray.length!=0) { for (i in devicesArray) { if (devicesArray[i] instanceof VcVirtualDisk) { retArray.push(devicesArray[i].backing.
Developing with VMware vCenter Orchestrator 3 Element Type Element Name Position in Schema Scriptable task Increment Left of the VM Snapshots scriptable task element, linked with a blue arrow Scriptable task Set Output Right of the Pool Has No VMs scriptable task element, linked with a blue arrow Add a Log Exception scriptable task element. a Create an exception handling link from the Create a snapshot workflow to an End element.
Chapter 1 Developing Workflows Figure 1-5. Linking of the Take a Snapshot of All Virtual Machines in a Resource Pool Example Workflow What to do next You can optionally define workflow zones by using workflow notes. Create the Complex Workflow Example Zones Optionally, you can highlight different zones of the workflow by adding workflow notes. Creating different workflow zones helps to make complicated workflow schema easier to read and understand. Prerequisites Complete the following tasks.
Developing with VMware vCenter Orchestrator Elements in Zone Description VMs remaining? custom decision; getVMDisksModes action, Create Snapshot? decision; Create a snapshot workflow; VM Snapshots scriptable task; Increment scriptable task; Log Exception scriptable task Check whether any virtual machines remain in the resource pool, check that a virtual machine meets the snapshot criteria, take a snapshot, then loop until a snapshot has been taken of all the virtual machines.
Chapter 1 Developing Workflows n “Create the Schema of the Complex Workflow Example,” on page 99. n Open the workflow for editing in the workflow editor. Procedure 1 Click the Inputs tab in the workflow editor. 2 Define the following input parameter. n Name: resourcePool n Type: VC:ResourcePool n Description: The resource pool containing the virtual machines of which to take snapshots. 3 Click the Outputs tab in the workflow editor. 4 Define the following output parameter.
Developing with VMware vCenter Orchestrator Complex Workflow Example Bindings Bindings define how the simple workflow example's action elements process input and output parameters. The Take Snapshots of All Virtual Machines in a Resource Pool workflow requires the following input and output parameter bindings. You also define the JavaScript functions for the scriptable task elements.
Chapter 1 Developing Workflows Table 1-15.
Developing with VMware vCenter Orchestrator Pool Has No VMs Scriptable Task Element The Pool Has No VMs scriptable task element logs the fact that the resource pool contains no eligible virtual machines in the Orchestrator database. The following table shows the bindings that the Pool Has No VMs scriptable task element requires. Table 1-17.
Chapter 1 Developing Workflows getVMDisksModes Action Element The getVMDisksModes action element obtains the modes of the disks running in a virtual machine. The following table shows the bindings that the getVMDisksModes action element requires. Table 1-19.
Developing with VMware vCenter Orchestrator if (vmDisksModes[i].charAt(0)=="i") { containsIndependentDisks = true; } } } else { //if no disk found no need to try to snapshot the VM System.warn("Won't snapshot '"+vm.name+"', no disks found"); return false; } if (containsIndependentDisks) { System.warn("Won't snapshot '"+vm.name+"', independent disk(s) found"); return false; } else { System.log("Snapshoting '"+vm.
Chapter 1 Developing Workflows Table 1-21. Bindings of the Create a snapshot Workflow Element (Continued) Parameter Name Binding Type Bind to Existing or Create Parameter? memory IN Create Binding Values n Local parameter: memory n Source parameter: snapshotMemory[attribute] n Type: Boolean Value: no Description: If TRUE, a dump of the internal state of the virtual machine (a memory dump) is included in the snapshot.
Developing with VMware vCenter Orchestrator Table 1-22. Bindings of the VM Snapshots Scriptable Task Element Parameter Name Binding Type Bind to Existing or Create Parameter? vm IN Bind snapshotVmArray snapshotVmArray IN OUT Bind Bind Binding Values n Local parameter: vm n Source parameter: vm[attribute] n Type: VC:VirtualMachine n Description: An active virtual machine of which to take a snapshot.
Chapter 1 Developing Workflows Table 1-23.
Developing with VMware vCenter Orchestrator Table 1-24.
Chapter 1 Developing Workflows The Set Output scriptable task element performs the following scripted function. //Passes the value of the internal attribute to a workflow output parameter snapshotVmArrayOut = snapshotVmArray; Set the Complex Workflow Example Attribute Properties You set the attribute properties in the General tab in the workflow editor. Prerequisites Complete the following tasks. n “Create the Complex Workflow Example,” on page 97.
Developing with VMware vCenter Orchestrator Procedure 1 Click the Presentation tab in the workflow editor. The Take a Snapshot of All Virtual Machines in a Resource Pool workflow has only one input parameter, so creating the presentation is straightforward. 2 Right-click the Presentation node in the presentation hierarchical list and select Create display group. 3 Delete the New step element that appears above the New group element.
Chapter 1 Developing Workflows Procedure 1 Click Validation in the Schema tab of the workflow editor. The validation tool detects any errors in the definition of the workflow. 2 After you have eliminated any errors, click Save and Close at the bottom of the workflow editor. You return to the Orchestrator client. 3 Click the Workflows view. 4 In the workflow hierarchical list, select Workflow Examples > Take a Snapshot of All Virtual Machines in a Resource Pool.
Developing with VMware vCenter Orchestrator 116 VMware, Inc.
2 Scripting Orchestrator uses JavaScript to create building blocks from which you create actions, workflow elements, and policies that access the APIs of the technologies that you plug into Orchestrator. Orchestrator uses the Mozilla Rhino 1.6 JavaScript engine as its scripting engine. The scripting engine provides variable type checking, name space management, automatic completion, and exception handling.
Developing with VMware vCenter Orchestrator Limitations of the Mozilla Rhino Implementation in Orchestrator Orchestrator implements the Mozilla Rhino 1.6 JavaScripting engine. However, the implementation of Rhino in Orchestrator presents some limitations. When writing scripts for workflows, you must consider the following limitations of the Mozilla Rhino implementation in Orchestrator. n When a workflow runs, the objects that pass from one workflow element to another are not Javascript objects.
Chapter 2 Scripting 5 Writing Scripts on page 121 The Orchestrator scripting engine helps you to write scripts. Automatic insertion of functions and automatic completion of lines of scripting accelerates the scripting process and minimizes the potential for writing errors in scripts. 6 Add Parameters to Scripts on page 123 The Orchestrator scripting engine helps you to import available parameters into scripts.
Developing with VMware vCenter Orchestrator Access the Scripting Engine from the Action or Policy Editor The Orchestrator scripting engine uses the Mozilla Rhino JavaScript engine to help you write scripts for actions or policies. You access the scripting engine for actions and policies from the Scripting tabs in the action and policy editors. Procedure 1 Select an option from the drop-down menu in the Orchestrator client, depending on the type of the element whose scripting you want to edit.
Chapter 2 Scripting Procedure 1 Enter the name or part of a name of an object in the API Explorer Search text box and click Search. To limit your search to a particular object type, uncheck or check the Scripting Class, Attributes & Methods and Types & Enumerations check boxes. 2 Double-click the element in the proposed list. The object is highlighted in the hierarchical list on the left. A documentation pane under the hierarchical list presents information about the object.
Developing with VMware vCenter Orchestrator Procedure 1 Navigate through the hierarchical list of objects on the left of the Scripting tab, or use the API Explorer search function, to select a type, class, or method to add to the script. 2 Right-click the type, class, or method and select Copy. If the scripting engine does not allow you to copy the element you selected, this object is not possible in the context of the script.
Chapter 2 Scripting Table 2-2. Color Coding of Scripting Keywords (Continued) Keyword Type Text Color in Scripting Tab Workflow attributes Pink Workflow inputs Pink Workflow outputs Pink Add Parameters to Scripts The Orchestrator scripting engine helps you to import available parameters into scripts. If you have already defined parameters for the element you are editing, they appear as links in the Scripting tab toolbar.
Developing with VMware vCenter Orchestrator Access the Server File System Using the System.getTempDirectory Method As an alternative to writing to the folders on the Orchestrator server system in which the administrator has set the appropriate permissions, you can write to the default temporary I/O folder. Orchestrator has full read, write, and execute rights in the default temporary I/O folder by default. You obtain the default temporary I/O folder by using the System.
Chapter 2 Scripting ... } catch ( e if e instanceof URIError ) { } n All exceptions that scripts do not catch must be simple string objects of the form :SPACE, as the following example shows. throw "ValidationError: The input parameter 'myParam' of type 'string' is too short." n Write human readable messages as clearly as possible. n Simple string exception type checking must use the following pattern.
Developing with VMware vCenter Orchestrator Basic Scripting Examples Workflow scripted elements, actions, and policies require basic scripting of common tasks. You can cut, paste, and adapt these examples into your scripted elements. Access XML Documents The following JavaScript example allows you to access XML documents from JavaScript by using the ECMAScript for XML (E4X) implementation in the Orchestrator JavaScript API.
Chapter 2 Scripting Setting and Obtaining Properties from a Hashtable The following JavaScript example sets properties in a hashtable and obtains the properties from the hashtable. In the following example, the key is always a String and the value is an object, a number, a Boolean, or a String. var table = new Properties() ; table.put("myKey",new Date()) ; // get the object back var myDate= table.get("myKey") ; System.
Developing with VMware vCenter Orchestrator Add Content to a Simple Text File The following JavaScript example adds content to a text file. var tempDir = System.getTempDirectory() ; var fileWriter = new FileWriter(tempDir + "/readme.txt") ; fileWriter.open() ; fileWriter.writeLine("File written at : "+new Date()) ; fileWriter.writeLine("Another line") ; fileWriter.
Chapter 2 Scripting Networking Scripting Examples Workflow scripted elements, actions, and policies require scripting of common networking tasks. You can cut, paste, and adapt these examples into your scripted elements. Obtain Text from a URL The following JavaScript example accesses a URL, obtains text, and converts it to a string. var url = new URL("http://www.vmware.com") ; var htmlContentAsString = url.
Developing with VMware vCenter Orchestrator Run a Workflow on a Selection of Objects in a Loop The following JavaScript example takes the array of virtual machines and runs a workflow on each one in a For loop. VMs and workflowToRun are workflow inputs. var len=VMs.length; for (var i=0; i < len; i++ ) { var VM = VMs[i]; //var workflowToLaunch = Server.
Developing Actions 3 Orchestrator provides libraries of predefined actions. Actions represent individual functions that you use as building blocks in workflows, Web views, and scripts. Actions are JavaScript functions. They take multiple input parameters and have a single return value. They can call on any object in the Orchestrator API, or on objects in any API that you import into Orchestrator by using a plug-in. When a workflow runs, an action takes its input parameters from the workflow's attributes.
Developing with VMware vCenter Orchestrator Procedure 1 From the drop-down menu in the Orchestrator client, select Design. 2 Click the Actions view. 3 Browse the libraries of actions by expanding the nodes of the actions hierarchical list. You can use the Actions view to view information about the actions in the libraries and create and edit actions.
Chapter 3 Developing Actions 5 Type a name for the action in the text box and click OK. Your custom action is added to the library of actions. 6 Right-click the action and select Edit. 7 Click the Scripting tab. 8 To change the default return type, click the void link. 9 Add the action input parameters by clicking the arrow icon. 10 Write the action script. 11 Set the action permissions. 12 Click Save and close. You created a custom action and added the action input parameters.
Developing with VMware vCenter Orchestrator n Write short, elementary actions and combine them in a workflow. n Avoid writing actions that perform multiple functions, because this limits the potential for reusing the action. n Avoid actions that run for long periods of time. Instead, create a loop in the workflow and include a Waiting Event or Waiting Timer element after the action element. n Do not write check points in actions.
Chapter 3 Developing Actions Use Action Version History You can use version history to revert an action to a previously saved state. You can revert the action state to an earlier or a later action version. You can also compare the differences between the current state of the action and a saved version of the action. Orchestrator creates a new version history item for each action when you increase and save the action version. Subsequent changes to the action do not change the current version item.
Developing with VMware vCenter Orchestrator 136 VMware, Inc.
Creating Resource Elements 4 Workflows and Web views can require as attributes objects that you create independently of Orchestrator. To use external objects as attributes in workflows or Web views, you import them into the Orchestrator server as resource elements. Objects that workflows and Web views can use as resource elements include image files, scripts, XML templates, HTML files, and so on.
Developing with VMware vCenter Orchestrator What to do next Import and edit a resource element. Import an External Object to Use as a Resource Element Workflows and Web views can require as attributes objects that you create independently of Orchestrator. To use external objects as attributes in workflows or Web views, you import them to the Orchestrator server as resource elements. Prerequisites Verify that you have an image file, script, XML template, HTML file, or other type of object to import.
Chapter 4 Creating Resource Elements 9 Check the appropriate check boxes to set the level of permissions for this user group and click OK. Permissions are not cumulative. To allow a user to view the resource element, use it in their workflows or Web views, and change the permissions, you must check all check boxes. 10 Click Save and close to exit the editor. You edited the general information about the resource element and set the user access rights.
Developing with VMware vCenter Orchestrator You updated a resource element that the Orchestrator server contains. Add a Resource Element to a Workflow Resource elements are external objects that you can import to the Orchestrator server for workflows to use as attributes when they run. For example, a workflow can use an imported XML file that defines a map to convert one type of data to another, or a script that defines a function, when it runs.
Chapter 4 Creating Resource Elements n A Web view that requires the resource element as an attribute. Procedure 1 From the drop-down menu in the Orchestrator client, select Administer. 2 Click the Web Views view. 3 If the Web view is running, right-click the Web view to which you want to add the resource element and select Unpublish. 4 Right-click the Web view and select Edit. 5 Click the Attributes tab. 6 Right-click within the Attributes tab and select Add attribute.
Developing with VMware vCenter Orchestrator 142 VMware, Inc.
Creating Packages 5 Packages are used for transporting content from one Orchestrator server to another. Packages can contain workflows, actions, policies, Web views, configurations, or resources. When you add an element to a package, Orchestrator checks for dependencies and adds any dependent elements to the package. For example, if you add a workflow that uses actions or other workflows, Orchestrator adds those actions and workflows to the package.
Developing with VMware vCenter Orchestrator Procedure 1 From the drop-down menu in the Orchestrator client, select Administer. 2 Click the Packages view. 3 Right-click in the left pane and select Add package. 4 Type the name of the new package and click Ok. The syntax for package names is domain.your_company.folder.package_name. For example, com.vmware.myfolder.mypackage. 5 Right-click the package and select Edit. The package editor opens. 6 On the General tab, add a description for the package.
Chapter 5 Creating Packages 2 Click Add access rights to define permissions for a new user or user group. 3 Search for a user or user group. The search results show all of the users and user groups that match the search. 4 Select a user or user group. 5 Check the appropriate check boxes to set the level of permissions for this user and click Select.
Developing with VMware vCenter Orchestrator 146 VMware, Inc.
Index A Action element 23 action elements, binding 81 Action view 131 actions adding 132 attributes 134 basic guidelines 133 binding 82 coding guidelines 133 creating 98, 132 finding elements that implement 133 naming 134 parameters 134 restoring deleted 135 reusing 131 version history 135 Actions 131 Actions view 132 API Explorer, accessing 120 attributes definition 18, 80 read-write properties 92, 113 audience 7 B binding action elements 81 decision elements 80 scriptable tasks 84 bindings action 82 def
Developing with VMware vCenter Orchestrator L R linking decision elements 34 schema elements 30 long-running workflows date object 62 Date object 62 timer-based 63 trigger 65 Trigger object 62 trigger-based 66 relative date object 48, 62 remote workflow calling 58 prerequisites 58 resource elements adding to Web views 140 adding to workflows 140 editing 138 importing 138 save to file 139 updating 139 viewing 137 M Mozilla Rhino JavaScript engine 117 Mozilla Rhino Javascript engine, limitations 118 N n
Index LDAP examples 128 logging examples 128 Mozilla Rhino Javascript engine 118 networking examples 129 scripted elements 117 workflow examples 129 scripting engine 118 search, modifying results 22 search results 20 simple workflow example notes 78 zones 78 Start Workflow element 23 Start workflows in a series workflow 61 Start workflows in parallel workflow 61 system properties 124 T token 11 U User Interaction element 23 user interactions attributes 45, 46 defining external inputs 50 elements 45, 46 r
Developing with VMware vCenter Orchestrator synchronous 54, 56 testing 13 validation 70 version history 73 workflows, reserved OGNL keywords 18 X XML scripting, E4X 126 150 VMware, Inc.