4.0
Table Of Contents
- vCenter Orchestrator Developer's Guide
- Contents
- Updated Information
- About This Book
- Introduction to VMware vCenter Orchestrator
- Developing Workflows
- Principal Phases in the Workflow Development Process
- Accessing the Orchestrator Client
- Testing Workflows During Development
- Workflow Editor
- Provide General Workflow Information
- Defining Attributes and Parameters
- Workflow Schema
- Obtaining Input Parameters from Users When a Workflow Starts
- Requesting User Interactions While a Workflow Runs
- Add a User Interaction to a Workflow
- Set the User Interaction security.group Attribute
- Set the timeout.date Attribute to an Absolute Date
- Calculate a Relative Timeout for User Interactions
- Set the timeout.date Attribute to a Relative Date
- Define the External Inputs for a User Interaction
- Define User Interaction Exception Behavior
- Create the Input Parameters Dialog Box for the User Interaction
- Respond to a Request for a User Interaction
- Calling Workflows Within Workflows
- Running a Workflow on a Selection of Objects
- Developing Long-Running Workflows
- Configuration Elements
- Workflow User Permissions
- Validating Workflows
- Running Workflows
- Develop a Simple Example Workflow
- Create the Simple Workflow Example
- Define the Simple Workflow Example Parameters
- Create the Simple Workflow Example Schema
- Link the Simple Workflow Example Elements
- Create Workflow Zones
- Define the Simple Workflow Example Decision Bindings
- Bind the Simple Workflow Example Action Elements
- Bind the Simple Workflow Example Scripted Task Elements
- Define the Simple Example Workflow Exception Bindings
- Set the Simple Workflow Example Attribute Read-Write Properties
- Set the Simple Workflow Example Parameter Properties
- Set the Layout of the Simple Workflow Example Input Parameters Dialog Box
- Validate and Run the Simple Workflow Example
- Develop a Complex Workflow
- Create the Complex Workflow
- Define the Complex Workflow Example Input Parameters
- Create a Custom Action For the Complex Workflow Example
- Create the Complex Workflow Example Schema
- Link the Complex Workflow Example Schema Elements
- Create the Complex Workflow Example Zones
- Define the Complex Workflow Example Bindings
- Set the Complex Workflow Example Attribute Properties
- Create the Layout of the Complex Workflow Example Input Parameters
- Validate and Run the Complex Workflow Example
- Developing Actions
- Scripting
- Orchestrator Elements that Require Scripting
- Limitations of the Mozilla Rhino Implementation in Orchestrator
- Using the Orchestrator API
- Access the Scripting Engine from the Workflow Editor
- Access the Scripting Engine from the Action or Policy Editor
- Access the Orchestrator API Explorer
- Use the Orchestrator API Explorer to Find Objects
- Writing Scripts
- Add Parameters to Scripts
- Accessing the Orchestrator Server File System from JavaScript and Workflows
- Accessing Java Classes from JavaScript
- Accessing Operating System Commands from JavaScript
- Exception Handling Guidelines
- Orchestrator JavaScript Examples
- Creating Resource Elements
- Creating Packages
- Developing Plug-Ins
- Overview of Plug-Ins
- Contents and Structure of a Plug-In
- Create an Orchestrator Plug-In
- Accessing the Orchestrator Plug-In API
- Obtain an Application to Plug in to Orchestrator
- Components of the Solar System Application
- Components of the Solar System Plug-In
- Create a Plug-In Factory
- Set Up the Plug-In Factory Implementation
- Set Up Event Listeners and Notification Handlers
- Find Objects By Identifier in the Plugged-In Technology
- Find Objects in the Plugged-In Technology By a Query
- Find Objects By Relation Type in the Plugged-In Technology
- Discover Whether an Object has Children of a Given Relation Type
- Create a Plug-In Event Listener
- Create a Plug-In Event Generator
- Create a Plug-In Workflow Trigger
- Create Plug-In Watchers
- Define Objects and Methods to Map to the Orchestrator JavaScript API
- Create a Plug-In Adapter
- Add a Tab to the Configuration Interface
- Map the Application in the vso.xml File
- Create the Plug-In DAR Archive
- Install a Plug-In in the Orchestrator Server
- Interact with the Solar System Application by Using Orchestrator
- Orchestrator Plug-In API Reference
- IAop Interface
- IConfigurationAdaptor Interface
- IDynamicFinder Interface
- IPluginAdaptor Interface
- IPluginEventPublisher Interface
- IPluginFactory Interface
- IPluginNotificationHandler Interface
- IPluginPublisher Interface
- WebConfigurationAdaptor Interface
- BaseAction Class
- ConfigurationError Class
- Localizator Class
- PluginLicense Class
- PluginTrigger Class
- PluginWatcher Class
- QueryResult Class
- SDKFinderProperty Class
- SDKHelper Class
- PluginExecutionException Class
- PluginLicenseException Class
- PluginOperationException Class
- ConfigurationError.Severity Enumeration
- ErrorLevel Enumeration
- HasChildrenResult Enumeration
- ScriptingAttribute Annotation Type
- ScriptingFunction Annotation Type
- ScriptingParameter Annotation Type
- Elements of the vso.xml Plug-In Definition File
- module Element
- configuration Element
- description Element
- deprecated Element
- url Element
- installation Element
- action Element
- webview-components-library Element
- finder-datasources Element
- finder-datasource Element
- inventory Element
- finders Element
- finder Element
- properties Element
- property Element
- relations Element
- relation Element
- id Element
- inventory-children Element
- relation-link Element
- events Element
- trigger Element
- trigger-properties Element
- trigger-property Element
- gauge Element
- scripting-objects Element
- object Element
- constructors Element
- constructor Element
- Constructor parameters Element
- Constructor parameter Element
- attributes Element
- attribute Element
- methods Element
- method Element
- example Element
- code Element
- Method parameters Element
- Method parameter Element
- singleton Element
- enumerations Element
- enumeration Element
- entries Element
- entry Element
- Developing a Web Services Client
- Writing a Web Service Client Application
- Process for Creating an Orchestrator Web Service Client Application
- Web Service Endpoint
- Generating the Orchestrator Web Service Stubs
- Accessing the Server from Web Service Clients
- Create a Web Service Client
- Connect to the Orchestrator Web Service
- Find Objects in the Orchestrator Server
- Find Objects by Using the find Operation
- Find Objects by Using the findForId Operation
- Find Objects by Using the findRelation Operation
- Find Workflows in the Orchestrator Server
- Find Workflows by Using the getAllWorkflows Operation
- Find Workflows by Using the getWorkflowsWithName Operation
- Find Workflows by Using the getWorkflowForID Operation
- Run Workflows from a Web Service Client
- Interact with a Workflow While it Runs
- Obtain Workflow Results
- Time Zones and Running Workflows Through Web Services
- Web Service Application Examples
- Web Service API Object Reference
- Web Service API Operation Reference
- answerWorkflowInput Operation
- cancelWorkflow Operation
- echo Operation
- echoWorkflow Operation
- executeWorkflow Operation
- find Operation
- findForId Operation
- findRelation Operation
- getAllPlugin Operation
- getAllPlugins Operation
- getAllWorkflows Operation
- getWorkflowForId Operation
- getWorkflowsWithName Operation
- getWorkflowTokenForId Operation
- getWorkflowTokenResult Operation
- getWorkflowTokenStatus Operation
- hasChildrenInRelation Operation
- hasRights Operation
- sendCustomEvent Operation
- simpleExecuteWorkflow Operation
- Writing a Web Service Client Application
- Developing Web Views
- Web View Overview
- Weboperator Web View
- Web View Development Tasks to Perform in Orchestrator
- Create a Web View Skeleton
- Export a Web View as a Template
- Create a Web View from a Template
- Define a Web View Template as a Resource Element
- Create a Web View from a Resource Element Template
- Export Web View Files to a Working Folder
- Configure the Server for Web View Development
- Import Web View Files from a Working Folder
- Create a Web View Attribute
- Add a Resource Element to a Web View
- Disable Web View Development Mode
- Publish a Web View
- File Structure of a Web View
- Web View Home Page
- Web View Components
- Tapestry Web View Components
- Creating Tapestry Web View Components
- Orchestrator Tapestry Component Library
- vmo:DisplayProperty Component
- vmo:IfMemberOf Component
- vmo:IncludeJavascript Component
- vmo:IncludeStylesheet Component
- vmo:IncludeWorkflowHeader Component
- vmo:ListPane Component
- vmo:Login Component
- vmo:PageAccessControl Component
- vmo:TaskAction Component
- vmo:WebformContainer Component
- vmo:WorkflowLink Component
- Accessing Server Objects from URLs
- Create a Simple Web View Using the Default Template
- Import the Default Web View Template
- Export the Virtual Machine Manager Web View to a Working Folder
- Provide Unique Component Names
- Configure the Server for Web View Development
- Edit the Virtual Machine Manager Web View Home Page
- Add a vmo:ListPane Component to the Web View Home Page
- Define the Web View Attributes for the vmo:ListPane Component
- Create a Web View Component to Display Virtual Machine Information
- Create a Web View Tab by Using the Menu Component
- Add Links to Run Workflows from a Web View by Using the vmo:WorkflowLink Component
- Customize the Web View Interface
- Publish the Virtual Machine Manager Web View
- Refactoring Orchestrator Applications After Upgrading vCenter Server
- Workflow Name Changes
- Index
Plug-ins are composed of the following parts.
Plug-In Module
The plug-in itself, as defined by a collection of Java classes, a vso.xml file, and
packages of the workflows and actions that interact with the objects that you
access through the plug-in. The plug-in module is mandatory.
Plug-In Adapter
Defines the interface between the plugged-in technology and the Orchestrator
server. The adapter is the point of entry of the plug-in to the orchestration
platform. The adapter creates the plug-in factory, manages the loading and
unloading of the plug-in, and manages the events that occur on the objects in
the plugged-in technology. The plug-in adapter is mandatory.
Plug-In Factory
Defines how Orchestrator finds objects in the plugged-in technology and
performs operations on them. The adapter creates a factory for the client session
that opens between Orchestrator and a plugged-in technology. The factory
allows you either to share a session between all client connections or to open
one session per client connection. The plug-in factory is mandatory.
Configuration
You can add a tab to the Orchestrator configuration interface in which you can
configure the plug-in after you install it. For example, you can add a tab to the
Orchestrator configuration interface in which users provide information about
the environment in which the plugged-in technology is running. Orchestrator
does not define a standard way for the plug-in to store its configuration. You
can store configuration information by using Windows Registries, static
configuration files, storing information in a database, or in XML files. The plug-
in configuration tab is optional.
Finders
Interaction rules that define how Orchestrator locates and represents the
objects in the plugged-in technology. Finders retrieve objects from the network
of objects that the plugged-in technology exposes to Orchestrator. You define
in the vso.xml file the relations between objects to allow you to navigate
through the network of objects. Orchestrator represents the object model of the
plugged-in technology in the Inventory tab. Finders are mandatory if you want
to expose objects in the plugged-in technology to Orchestrator.
Scripting Objects
JavaScript object types that provide access to the objects, operations, and
attributes in the plugged-in technology. Scripting objects define how
Orchestrator accesses the object model of the plugged-in technology through
JavaScript. You map the classes and methods of the plugged-in technology to
JavaScript objects in the vso.xml file. You can access the JavaScript objects in
the Orchestrator scripting API and integrate them into Orchestrator scripted
tasks, actions, and workflows. Scripting objects are mandatory if you want to
add scripting types, classes, and methods to the Orchestrator JavaScript API.
Inventory
Instances of objects in the plugged-in technology that Orchestrator locates by
using finders appear in the Inventory view in the Orchestrator client. You can
perform operations on the objects in the inventory by running workflows on
them. The inventory is optional. You can create a plug-in that only adds
scripting types and classes to the Orchestrator JavaScript API and does not
expose any instances of objects in the inventory.
Events
Changes in the state of an object in the plugged-in technology. Orchestrator
can listen passively for events that occur in the plugged-in technology.
Orchestrator can also actively trigger events in the plugged-in technology.
Events are optional.
Chapter 7 Developing Plug-Ins
VMware, Inc. 143