]> git.uio.no Git - virt-orchestrator.git/blobdiff - vFLOWER/content/Workflows/uio/lib/vm/clone_vm.workflow.xml
første xml update
[virt-orchestrator.git] / vFLOWER / content / Workflows / uio / lib / vm / clone_vm.workflow.xml
diff --git a/vFLOWER/content/Workflows/uio/lib/vm/clone_vm.workflow.xml b/vFLOWER/content/Workflows/uio/lib/vm/clone_vm.workflow.xml
new file mode 100644 (file)
index 0000000..7b5ff26
--- /dev/null
@@ -0,0 +1,1078 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workflow xmlns="http://vmware.com/vco/workflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://vmware.com/vco/workflow http://vmware.com/vco/workflow/Workflow-v4.xsd" root-name="item8" object-name="Workflow:name=generic" id="e15f70a1-d461-45ab-ad7c-5218bf750fbd" version="1.0.2" api-version="3.1.0" allowed-operations="fve" icon-id="ccc63028-0b79-48ad-bf8d-4078a2d058ce" restartMode="1" resumeFromFailedMode="0">
+    <display-name>clone_vm</display-name>
+
+    <description>
+Clones a Windows virtual machine, performing guest operating system customization. Configures one network card and a local administrator user account.
+       
+Sysprep tools must be available on vCenter Server system.
+    </description>
+
+    <position x="40.0" y="30.0"/>
+
+    <input>
+        <param name="folder" type="VC:VmFolder">
+            <description>Virtual machine folder</description>
+        </param>
+        <param name="name" type="string">
+            <description>New virtual machine name</description>
+        </param>
+        <param name="vm" type="VC:VirtualMachine">
+            <description>Virtual machine to clone</description>
+        </param>
+        <param name="datastore" type="VC:Datastore">
+            <description>Datastore in which to store the virtual machine. If not specified, the current datastore is used</description>
+        </param>
+        <param name="host" type="VC:HostSystem">
+            <description>(Optional) Host on which to create the virtual machine</description>
+        </param>
+        <param name="pool" type="VC:ResourcePool">
+            <description>(Optional) Resource pool in which to create the virtual machine</description>
+        </param>
+        <param name="clientName" type="string">
+            <description>Name or prefix name of the Windows client</description>
+        </param>
+        <param name="network" type="VC:DistributedVirtualPortgroup">
+            <description>Network on which to attach the virtual network interface</description>
+        </param>
+        <param name="dnsServerList" type="Array/string">
+            <description>(Optional) List of DNS servers for a virtual network adapter with a static IP address</description>
+        </param>
+        <param name="dnsDomain" type="string">
+            <description>(Optional) DNS domain suffix such as vmware.com</description>
+        </param>
+        <param name="gateway" type="Array/string">
+            <description>(Optional) List of gateways, in order of preference</description>
+        </param>
+        <param name="ipAddress" type="string">
+            <description>Fixed valid IP address</description>
+        </param>
+        <param name="subnetMask" type="string">
+            <description>(Optional) Subnet mask for this virtual network adapter</description>
+        </param>
+        <param name="fullName" type="string">
+            <description>User's full name</description>
+        </param>
+        <param name="orgName" type="string">
+            <description>Organization name</description>
+        </param>
+        <param name="vmpasswd" type="SecureString"/>
+    </input>
+
+    <output>
+        <param name="newVM" type="VC:VirtualMachine">
+            <description>The newly created virtual machine</description>
+        </param>
+    </output>
+
+    <attrib name="task" type="VC:Task" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Task to await</description>
+    </attrib>
+    <attrib name="progress" type="boolean" read-only="false">
+        <value encoded="n">true</value>
+        <description>Log progress while waiting for the task to complete</description>
+    </attrib>
+    <attrib name="pollRate" type="number" read-only="false">
+        <value encoded="n">15.0</value>
+        <description>Polling rate for the task state, in seconds</description>
+    </attrib>
+    <attrib name="spec" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Specifies how to clone the virtual machine (VimVirtualMachineCloneSpec)</description>
+    </attrib>
+    <attrib name="location" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Specifies the location of resources the cloned virtual machine will be using (VirtualMachineRelocateSpec)</description>
+    </attrib>
+    <attrib name="customization" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Optional guest operating system customization specification (CustomizationSpec)</description>
+    </attrib>
+    <attrib name="globalIPSettings" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Global IP settings constitute the IP settings that are not specific to a particular virtual network adapter (VimCustomizationGlobalIPSettings)</description>
+    </attrib>
+    <attrib name="identity" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Network identity and settings, similar to Microsoft's Sysprep tool. This is a Sysprep, LinuxPrep, or SysprepText object (VimCustomizationIdentitySettings)</description>
+    </attrib>
+    <attrib name="nicSettingMaps" type="Array/Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>(Optional) IP settings that are specific to a particular virtual network adapter (an array of VimCustomizationAdapterMapping)</description>
+    </attrib>
+    <attrib name="options" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Optional operations (VimCustomizationOptions: LinuxOptions or WinOptions)</description>
+    </attrib>
+    <attrib name="autoLogon" type="boolean" read-only="false">
+        <value encoded="n">false</value>
+        <description>Flag to determine whether or not the machine automatically logs on as Administrator</description>
+    </attrib>
+    <attrib name="timeZone" type="number" read-only="false">
+        <value encoded="n">110.0</value>
+        <description>The time zone for the new virtual machine. Numbers correspond to time zones listed in sysprep documentation</description>
+    </attrib>
+    <attrib name="adapterMapping" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Data object type to associate a virtual network adapter with its IP settings</description>
+    </attrib>
+    <attrib name="startVm" type="boolean" read-only="false">
+        <value encoded="n">true</value>
+        <description>Specifies whether to start the cloned virtual machine. Depends on the values set for 'template', 'doSysprep' and 'powerOn' attributes</description>
+    </attrib>
+    <attrib name="tempNewVm" type="VC:VirtualMachine" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>The newly created virtual machine</description>
+    </attrib>
+    <attrib name="pollingRate" type="number" read-only="false">
+        <value encoded="n">15.0</value>
+        <description>Polling rate for the task state, in seconds</description>
+    </attrib>
+    <attrib name="timeout" type="number" read-only="false">
+        <value encoded="n">60.0</value>
+        <description>Timeout period to elapse before throwing a timeout exception, in minutes</description>
+    </attrib>
+    <attrib name="sourceVirtualEthernetCard" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>The VirtualEthernetCard the template defines</description>
+    </attrib>
+    <attrib name="virtualEthernetCard" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>The VirtualEthernetCard instance the virtual machine uses</description>
+    </attrib>
+    <attrib name="config" type="Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>(Optional) Specification of changes to the virtual hardware (VirtualMachineConfigSpec)</description>
+    </attrib>
+    <attrib name="deviceChange" type="Array/Any" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>(Optional) Set of virtual devices being modified by the configuration operation (an array of VirtualDeviceConfigSpec)</description>
+    </attrib>
+    <attrib name="addNumberToName" type="boolean" read-only="true">
+        <value encoded="n">false</value>
+        <description>Append a number to the client name to ensure the name is unique</description>
+    </attrib>
+    <attrib name="nicPosition" type="number" read-only="false">
+        <value encoded="n">1.0</value>
+        <description>Specifies which network card to use. If no valid value, the first network card is used</description>
+    </attrib>
+    <attrib name="targetDatastore" type="VC:Datastore" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>Datastore in which to store the virtual machine</description>
+    </attrib>
+    <attrib name="templateAttr" type="boolean" read-only="false">
+        <value encoded="n">false</value>
+        <description>Specifies whether or not to mark the new virtual machine as a template</description>
+    </attrib>
+    <attrib name="powerOn" type="boolean" read-only="false">
+        <value encoded="n">true</value>
+        <description>Specifies whether or not to power on the new virtual machine</description>
+    </attrib>
+    <attrib name="template" type="boolean" read-only="false">
+        <value encoded="n">false</value>
+        <description>Specifies whether or not to mark the new virtual machine as a template</description>
+    </attrib>
+    <attrib name="doSysprep" type="boolean" read-only="false">
+        <value encoded="n">true</value>
+        <description>Run the Sysprep operations and wait for the task to complete. Not used if the virtual machine is marked as template</description>
+    </attrib>
+    <attrib name="joinDomain" type="string" read-only="false">
+        <value encoded="n"/>
+        <description>(Optional) The domain that the virtual machine should join. If this value is supplied, then domainAdmin and domainAdminPassword must also be supplied, and the workgroup name must be empty</description>
+    </attrib>
+    <attrib name="joinWorkgroup" type="string" read-only="false">
+        <value encoded="n">uio.no</value>
+        <description>(Optional) The workgroup that the virtual machine should join. If this value is supplied, then the domain name and authentication fields must be empty</description>
+    </attrib>
+    <attrib name="domainAdmin" type="Credential" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>(Optional) This is the domain user account used for authentication if the virtual machine is joining a domain. The user does not need to be a domain administrator, but the account must have the privileges required to add computers to the domain</description>
+    </attrib>
+    <attrib name="licenseMode" type="VC:CustomizationLicenseDataMode" read-only="false">
+        <value encoded="n">dunes://service.dunes.ch/CustomSDKObject?id='perSeat'&amp;dunesName='VC:CustomizationLicenseDataMode'</value>
+        <description>Server licensing mode</description>
+    </attrib>
+    <attrib name="licenseUsers" type="number" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>This key is valid only if AutoMode = PerServer</description>
+    </attrib>
+    <attrib name="inTimezone" type="Enums:MSTimeZone" read-only="false">
+        <value encoded="n">dunes://service.dunes.ch/CustomSDKObject?id='110'&amp;dunesName='Enums:MSTimeZone'</value>
+        <description>Timezone for the newly created virtual machine</description>
+    </attrib>
+    <attrib name="dhcp" type="boolean" read-only="false">
+        <value encoded="n">false</value>
+        <description>Use a DHCP server to configure the virtual network adapter</description>
+    </attrib>
+    <attrib name="macAddress" type="string" read-only="false">
+        <value encoded="n"/>
+        <description>(Optional) The MAC address of a network adapter being customized. If it is not included, the customization process maps the settings from the virtual machine's network adapters, in PCI slot order</description>
+    </attrib>
+    <attrib name="netBIOS" type="VC:CustomizationNetBIOSMode" read-only="false">
+        <value encoded="n">__NULL__</value>
+        <description>(Optional) NetBIOS setting for Windows</description>
+    </attrib>
+    <attrib name="primaryWINS" type="string" read-only="false">
+        <value encoded="n"/>
+        <description>(Optional) The IP address of the primary WINS server. This property is ignored for Linux guest operating systems</description>
+    </attrib>
+    <attrib name="secondaryWINS" type="string" read-only="false">
+        <value encoded="n"/>
+        <description>(Optional) The IP address of the secondary WINS server. This property is ignored for Linux guest operating systems</description>
+    </attrib>
+    <attrib name="productId" type="string" read-only="false">
+        <value encoded="n"/>
+        <description>Microsoft Sysprep requires that a valid serial number be included in the answer file when mini-setup runs. This serial number is ignored if the original guest operating system was installed using a volume-licensed CD</description>
+    </attrib>
+    <attrib name="newAdminPassword" type="string" read-only="false">
+        <value encoded="n"/>
+        <description>The password string. It is encrypted if the associated plainText flag is false</description>
+    </attrib>
+    <workflow-note x="1018.0" y="397.99999999999994" w="214.0" h="134.0" color="d7a1d7ff">
+        <description>Clone VM and wait</description>
+    </workflow-note>
+    <workflow-note x="218.0" y="479.81818181818176" w="214.0" h="54.0">
+        <description>Relocate Spec</description>
+    </workflow-note>
+    <workflow-note x="218.0" y="188.90909090909088" w="214.0" h="244.0">
+        <description>Customization Spec</description>
+    </workflow-note>
+    <workflow-note x="738.0" y="479.81818181818176" w="194.0" h="54.0" color="bfdfffff">
+        <description>Compile specs to Clone Spec</description>
+    </workflow-note>
+    <workflow-note x="798.0" y="197.99999999999997" w="244.0" h="54.0" color="bfffbfff">
+        <description>Wait for the sysprep operation to be terminated</description>
+    </workflow-note>
+    <workflow-note x="458.0" y="207.09090909090907" w="244.0" h="324.0">
+        <description>Config Spec</description>
+    </workflow-note>
+
+    <workflow-item name="item0" out-name="item1" business-status="Preparing Clone" type="task" script-module="com.vmware.library.vc.vm.spec/checkVMwareInput">
+        <display-name>checkVMwareInput</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+System.getModule("com.vmware.library.vc.vm.spec").checkVMwareInput(vm,folder,datastore,host,pool) ;
+        </script>
+
+        <in-binding>
+            <bind name="datastore" type="VC:Datastore" export-name="targetDatastore">
+                <description>Target datastore</description>
+            </bind>
+            <bind name="folder" type="VC:VmFolder" export-name="folder">
+                <description>Target folder</description>
+            </bind>
+            <bind name="host" type="VC:HostSystem" export-name="host">
+                <description>Target host</description>
+            </bind>
+            <bind name="pool" type="VC:ResourcePool" export-name="pool">
+                <description>Target pool</description>
+            </bind>
+            <bind name="vm" type="VC:VirtualMachine" export-name="vm">
+                <description>VM to clone</description>
+            </bind>
+        </in-binding>
+
+        <out-binding/>
+
+        <position x="284.5" y="82.68181818181817"/>
+    </workflow-item>
+
+    <workflow-item name="item2" out-name="item13" business-status="Cloning" type="task" script-module="com.vmware.library.vc.basic/vim3WaitTaskEnd">
+        <display-name>vim3WaitTaskEnd</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.basic").vim3WaitTaskEnd(task,progress,pollRate) ;
+        </script>
+
+        <in-binding>
+            <bind name="pollRate" type="number" export-name="pollRate">
+                <description>Polling rate for the task state [seconds]</description>
+            </bind>
+            <bind name="progress" type="boolean" export-name="progress">
+                <description>Log progess while waiting for the task</description>
+            </bind>
+            <bind name="task" type="VC:Task" export-name="task">
+                <description>Task to Wait for</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="VC:VirtualMachine" export-name="tempNewVm"/>
+        </out-binding>
+
+        <description>
+Wait a VIM 3 Task to end.
+When task ended, return the
+        </description>
+
+        <position x="1084.5" y="437.2272727272727"/>
+    </workflow-item>
+
+    <workflow-item name="item3" out-name="item2" business-status="Cloning" type="task" script-module="com.vmware.library.vc.vm/cloneVM">
+        <display-name>cloneVM</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm").cloneVM(vm,folder,name,spec) ;
+        </script>
+
+        <in-binding>
+            <bind name="folder" type="VC:VmFolder" export-name="folder">
+                <description>The location of the new virtual machine.</description>
+            </bind>
+            <bind name="name" type="string" export-name="name">
+                <description>The name of the new virtual machine.</description>
+            </bind>
+            <bind name="spec" type="Any" export-name="spec">
+                <description>VimVirtualMachineCloneSpec: Specifies how to clone the virtual machine.</description>
+            </bind>
+            <bind name="vm" type="VC:VirtualMachine" export-name="vm">
+                <description>VM to clone</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="VC:Task" export-name="task"/>
+        </out-binding>
+
+        <position x="1084.5" y="500.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item4" out-name="item3" type="task" script-module="com.vmware.library.vc.vm.spec/getCloneSpec">
+        <display-name>getCloneSpec</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm.spec").getCloneSpec(config,customization,location,powerOn,template) ;
+        </script>
+
+        <in-binding>
+            <bind name="config" type="Any" export-name="config">
+                <description>[optional] VirtualMachineConfigSpec: An optional specification of changes to the virtual hardware.</description>
+            </bind>
+            <bind name="customization" type="Any" export-name="customization">
+                <description>[optional] CustomizationSpec: An optional guest operating system customization specification.</description>
+            </bind>
+            <bind name="location" type="Any" export-name="location">
+                <description>VirtualMachineRelocateSpec: A type of RelocateSpec that specifies the location of resources the newly cloned virtual machine will use</description>
+            </bind>
+            <bind name="powerOn" type="boolean" export-name="startVm">
+                <description>Specifies whether or not the new VirtualMachine should be powered on after creation</description>
+            </bind>
+            <bind name="template" type="boolean" export-name="templateAttr">
+                <description>Specifies whether or not the new virtual machine should be marked as a template.</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="Any" export-name="spec"/>
+        </out-binding>
+
+        <position x="784.5" y="500.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item5" out-name="item9" type="link" linked-workflow-id="BD808080808080808080808080808080FEC180800122528313869552e41805bb1">
+        <display-name>Get Windows Customization (Sysprep)</display-name>
+
+        <in-binding>
+            <bind name="autoLogon" type="boolean" export-name="autoLogon">
+                <description>Flag to determine whether or not the machine automatically logs on as Administrator</description>
+            </bind>
+            <bind name="autoLogonCount" type="number" explicitly-not-bound="true">
+                <description>If the AutoLogon flag is set, then the AutoLogonCount property specifies the number of times the machine should automatically log on as Administrator</description>
+            </bind>
+            <bind name="commandList" type="Array/string" explicitly-not-bound="true">
+                <description>A list of commands to run at first user logon, after guest customization.</description>
+            </bind>
+            <bind name="domainAdmin" type="Credential" export-name="domainAdmin">
+                <description>[Optional] This is the domain user account used for authentication if the virtual machine is joining a domain. The user does not need to be a domain administrator, but the account must have the privileges required to add computers to the domain.</description>
+            </bind>
+            <bind name="fullName" type="string" export-name="fullName">
+                <description>User's full name.</description>
+            </bind>
+            <bind name="joinDomain" type="string" export-name="joinDomain">
+                <description>[Optional] The domain that the virtual machine should join. If this value is supplied, then domainAdmin and domainAdminPassword must also be supplied, and the workgroup name must be empty.</description>
+            </bind>
+            <bind name="joinWorkgroup" type="string" export-name="joinWorkgroup">
+                <description>[Optional] The workgroup that the virtual machine should join. If this value is supplied, then the domain name and authentication fields must be empty.</description>
+            </bind>
+            <bind name="licenseMode" type="VC:CustomizationLicenseDataMode" export-name="licenseMode">
+                <description>Server licensing mode</description>
+            </bind>
+            <bind name="licenseUsers" type="number" export-name="licenseUsers">
+                <description>This key is valid only if AutoMode = PerServer.</description>
+            </bind>
+            <bind name="newAdminPassword" type="string" export-name="newAdminPassword">
+                <description>The password string. It is encrypted if the associated plainText flag is false.</description>
+            </bind>
+            <bind name="orgName" type="string" export-name="orgName">
+                <description>User's organization.</description>
+            </bind>
+            <bind name="productId" type="string" export-name="productId">
+                <description>Microsoft Sysprep requires that a valid serial number be included in the answer file when mini-setup runs. This serial number is ignored if the original guest operating system was installed using a volume-licensed CD.</description>
+            </bind>
+            <bind name="timeZone" type="number" export-name="timeZone">
+                <description>The time zone for the new virtual machine. Numbers correspond to time zones listed in sysprep documentation</description>
+            </bind>
+            <bind name="clientName" type="string" export-name="clientName"/>
+            <bind name="addNumberToName" type="boolean" export-name="addNumberToName"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="sysprep" type="Any" export-name="identity">
+                <description>An object representation of a Windows sysprep.inf answer file.</description>
+            </bind>
+        </out-binding>
+
+        <position x="284.5" y="255.40909090909088"/>
+    </workflow-item>
+
+    <workflow-item name="item6" out-name="item23" type="task" script-module="com.vmware.library.vc.vm.spec/getRelocateSpec">
+        <display-name>getRelocateSpec</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm.spec").getRelocateSpec(datastore,disk,host,pool,transform) ;
+        </script>
+
+        <in-binding>
+            <bind name="datastore" type="VC:Datastore" export-name="targetDatastore">
+                <description>[optional] The datastore where the virtual machine should be located. If not specified, the current datastore is used</description>
+            </bind>
+            <bind name="disk" type="Array/Any" explicitly-not-bound="true">
+                <description>[optional] Array of VirtualMachineRelocateSpecDiskLocator: An optional list that allows specifying the datastore location for each virtual disk.</description>
+            </bind>
+            <bind name="host" type="VC:HostSystem" export-name="host">
+                <description>[optional] The target host for the virtual machine.</description>
+            </bind>
+            <bind name="pool" type="VC:ResourcePool" export-name="pool">
+                <description>[optional] The resource pool to which this virtual machine should be attached.</description>
+            </bind>
+            <bind name="transform" type="VC:VirtualMachineRelocateTransformation" explicitly-not-bound="true">
+                <description>[optional] Transformation to perform on the disks.</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="Any" export-name="location"/>
+        </out-binding>
+
+        <position x="284.5" y="500.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item7" out-name="item6" type="task" script-module="com.vmware.library.vc.vm.spec/getCustomizationSpec">
+        <display-name>getCustomizationSpec</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm.spec").getCustomizationSpec(globalIPSettings,identity,nicSettingMap,options) ;
+        </script>
+
+        <in-binding>
+            <bind name="globalIPSettings" type="Any" export-name="globalIPSettings">
+                <description>VimCustomizationGlobalIPSettings: Global IP settings constitute the IP settings that are not specific to a particular virtual network adapter.</description>
+            </bind>
+            <bind name="identity" type="Any" export-name="identity">
+                <description>VimCustomizationIdentitySettings: Network identity and settings, similar to Microsoft's Sysprep tool. This is a Sysprep, LinuxPrep, or SysprepText object.</description>
+            </bind>
+            <bind name="nicSettingMap" type="Array/Any" export-name="nicSettingMaps">
+                <description>[Optional] Array of VimCustomizationAdapterMapping: IP settings that are specific to a particular virtual network adapter.</description>
+            </bind>
+            <bind name="options" type="Any" export-name="options">
+                <description>[Optional] VimCustomizationOptions: Optional operations (either LinuxOptions or WinOptions).</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="Any" export-name="customization"/>
+        </out-binding>
+
+        <position x="284.5" y="400.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item9" out-name="item10" type="link" linked-workflow-id="BD80808080808080808080808080808094C280800122528313869552e41805bb1">
+        <display-name>Get 1 Nic Setting Map</display-name>
+
+        <in-binding>
+            <bind name="dhcp" type="boolean" export-name="dhcp">
+                <description>Use a DHCP server to configure the virtual network adapter.</description>
+            </bind>
+            <bind name="dnsDomain" type="string" export-name="dnsDomain">
+                <description>[Optional] A DNS domain suffix such as dunes.ch.</description>
+            </bind>
+            <bind name="dnsServerList" type="Array/string" export-name="dnsServerList">
+                <description>[Optional] A list of server IP addresses to use for DNS lookup in a Windows guest operating system.</description>
+            </bind>
+            <bind name="gateway" type="Array/string" export-name="gateway">
+                <description>[Optional] List of gateways, in order of preference.</description>
+            </bind>
+            <bind name="ipAddress" type="string" export-name="ipAddress">
+                <description>A Fixed valid IP Address</description>
+            </bind>
+            <bind name="macAddress" type="string" export-name="macAddress">
+                <description>[Optional] The MAC address of a network adapter being customized. If it is not included, the customization process maps the settings from the virtual machine's network adapters, in PCI slot order.</description>
+            </bind>
+            <bind name="netBIOS" type="VC:CustomizationNetBIOSMode" export-name="netBIOS">
+                <description>[Optional] NetBIOS setting for Windows.</description>
+            </bind>
+            <bind name="primaryWINS" type="string" export-name="primaryWINS">
+                <description>[Optional] The IP address of the primary WINS server. This property is ignored for Linux guest operating systems.</description>
+            </bind>
+            <bind name="secondaryWINS" type="string" export-name="secondaryWINS">
+                <description>[Optional] The IP address of the secondary WINS server. This property is ignored for Linux guest operating systems.</description>
+            </bind>
+            <bind name="subnetMask" type="string" export-name="subnetMask">
+                <description>[Optional] Subnet mask for this virtual network adapter.</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="adapterMapping" type="Any" export-name="adapterMapping">
+                <description>Data object type to associate a virtual network adapter with its IP settings.</description>
+            </bind>
+        </out-binding>
+
+        <position x="284.5" y="319.0454545454545"/>
+    </workflow-item>
+
+    <workflow-item name="item10" out-name="item7" type="task">
+        <display-name>Nic -&gt; Nic[]</display-name>
+
+        <script encoded="false">
+nicSettingMaps = new Array(adapterMapping);
+        </script>
+
+        <in-binding>
+            <bind name="adapterMapping" type="Any" export-name="adapterMapping"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="nicSettingMaps" type="Array/Any" export-name="nicSettingMaps"/>
+        </out-binding>
+
+        <position x="284.5" y="355.4090909090909"/>
+    </workflow-item>
+
+    <workflow-item name="item11" out-name="item29" type="task">
+        <display-name>Get Timezone in Number</display-name>
+
+        <script encoded="false">
+timeZone = inTimezone.id;
+        </script>
+
+        <in-binding>
+            <bind name="inTimezone" type="Enums:MSTimeZone" export-name="inTimezone"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="timeZone" type="number" export-name="timeZone"/>
+        </out-binding>
+
+        <position x="284.5" y="155.4090909090909"/>
+    </workflow-item>
+
+    <workflow-item name="item1" out-name="item11" type="task">
+        <display-name>Set start vm?</display-name>
+
+        <script encoded="false">
+if (template) {
+       startVm = false;
+}
+else if (doSysprep) {
+       startVm = true;
+}
+else {
+       startVm = powerOn;
+}
+        </script>
+
+        <in-binding>
+            <bind name="template" type="boolean" export-name="template"/>
+            <bind name="powerOn" type="boolean" export-name="powerOn"/>
+            <bind name="doSysprep" type="boolean" export-name="doSysprep"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="startVm" type="boolean" export-name="startVm"/>
+        </out-binding>
+
+        <position x="284.5" y="119.04545454545453"/>
+    </workflow-item>
+
+    <workflow-item name="item12" out-name="item31" type="condition" alt-out-name="item15" comparator="0">
+        <display-name>Template?</display-name>
+
+        <script encoded="false">
+//Generated by the system, cannot be edited
+return (template == true) ;
+        </script>
+
+        <in-binding>
+            <bind name="template" type="boolean" export-name="template"/>
+        </in-binding>
+        <condition name="template" type="boolean" comparator="0" label="null">false</condition>
+
+        <position x="1084.5" y="290.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item13" out-name="item12" business-status="Waiting on customization" type="task">
+        <display-name>Set ouput vm</display-name>
+
+        <script encoded="false">
+newVM = tempNewVm;
+        </script>
+
+        <in-binding>
+            <bind name="tempNewVm" type="VC:VirtualMachine" export-name="tempNewVm"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="newVM" type="VC:VirtualMachine" export-name="newVM"/>
+        </out-binding>
+
+        <position x="1084.5" y="355.4090909090909"/>
+    </workflow-item>
+
+    <workflow-item name="item14" type="end" end-mode="0">
+        <position x="1364.5" y="290.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item15" out-name="item17" type="condition" alt-out-name="item16" comparator="0">
+        <display-name>Do sysprep?</display-name>
+
+        <script encoded="false">
+//Generated by the system, cannot be edited
+return (doSysprep == true) ;
+        </script>
+
+        <in-binding>
+            <bind name="doSysprep" type="boolean" export-name="doSysprep"/>
+        </in-binding>
+        <condition name="doSysprep" type="boolean" comparator="0" label="null">false</condition>
+
+        <position x="1084.5" y="209.04545454545453"/>
+    </workflow-item>
+
+    <workflow-item name="item16" type="end" end-mode="0">
+        <position x="1264.5" y="209.04545454545453"/>
+    </workflow-item>
+
+    <workflow-item name="item18" out-name="item19" type="condition" alt-out-name="item20" comparator="0">
+        <display-name>Power on?</display-name>
+
+        <script encoded="false">
+//Generated by the system, cannot be edited
+return (powerOn == true) ;
+        </script>
+
+        <in-binding>
+            <bind name="powerOn" type="boolean" export-name="powerOn"/>
+        </in-binding>
+        <condition name="powerOn" type="boolean" comparator="0" label="null">false</condition>
+
+        <position x="904.5" y="145.4090909090909"/>
+    </workflow-item>
+
+    <workflow-item name="item19" type="end" end-mode="0">
+        <position x="1104.5" y="145.4090909090909"/>
+    </workflow-item>
+
+    <workflow-item name="item21" type="end" end-mode="0">
+        <position x="1104.5" y="72.68181818181817"/>
+    </workflow-item>
+
+    <workflow-item name="item22" out-name="item25" type="link" linked-workflow-id="BD8080808080808080808080808080808AC280800122528313869552e41805bb1">
+        <display-name>Get a VirtualEthernetCard to change the network</display-name>
+
+        <in-binding>
+            <bind name="sourceVirtualEthernetCard" type="Any" export-name="sourceVirtualEthernetCard"/>
+            <bind name="network" type="VC:DistributedVirtualPortgroup" export-name="network"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="virtualEthernetCard" type="Any" export-name="virtualEthernetCard"/>
+        </out-binding>
+
+        <position x="484.5" y="400.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item24" out-name="item28" type="condition" alt-out-name="item4" comparator="0">
+        <display-name>Nic found?</display-name>
+
+        <script encoded="false">
+//Generated by the system, cannot be edited
+return (sourceVirtualEthernetCard  != null ) ;
+        </script>
+
+        <in-binding>
+            <bind name="sourceVirtualEthernetCard" type="Any" export-name="sourceVirtualEthernetCard"/>
+        </in-binding>
+        <condition name="sourceVirtualEthernetCard" type="Any" comparator="0" label="null">Any#__NULL__</condition>
+
+        <position x="484.5" y="290.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item25" out-name="item26" type="task">
+        <display-name>Get Device[]</display-name>
+
+        <script encoded="false">
+var deviceChange = new Array();
+var change = new VcVirtualDeviceConfigSpec();
+change.device = virtualEthernetCard;
+change.operation = VcVirtualDeviceConfigSpecOperation.edit;
+deviceChange.push(change);
+        </script>
+
+        <in-binding>
+            <bind name="virtualEthernetCard" type="Any" export-name="virtualEthernetCard"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="deviceChange" type="Array/Any" export-name="deviceChange"/>
+        </out-binding>
+
+        <position x="484.5" y="437.2272727272727"/>
+    </workflow-item>
+
+    <workflow-item name="item26" out-name="item4" type="task" script-module="com.vmware.library.vc.vm.spec/getConfigSpecSimple">
+        <display-name>getConfigSpecSimple</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm.spec").getConfigSpecSimple(deviceChange,files,flags,memoryMB,name,numCPUs) ;
+        </script>
+
+        <in-binding>
+            <bind name="deviceChange" type="Array/Any" export-name="deviceChange">
+                <description>[optional] Array of VirtualDeviceConfigSpec: Set of virtual devices being modified by the configuration operation.</description>
+            </bind>
+            <bind name="files" type="Any" explicitly-not-bound="true" export-name="NULL">
+                <description>[optional] VirtualMachineFileInfo: Information about virtual machine files</description>
+            </bind>
+            <bind name="flags" type="Any" explicitly-not-bound="true" export-name="NULL">
+                <description>[optional] VirtualMachineFlagInfo: Additional flags for a virtual machine.</description>
+            </bind>
+            <bind name="memoryMB" type="number" explicitly-not-bound="true" export-name="NULL">
+                <description>[optional] Size of a virtual machine's memory, in MB.</description>
+            </bind>
+            <bind name="name" type="string" explicitly-not-bound="true" export-name="NULL">
+                <description>[optional] Display name of the virtual machine.</description>
+            </bind>
+            <bind name="numCPUs" type="number" explicitly-not-bound="true" export-name="NULL">
+                <description>[optional] Number of virtual processors in a virtual machine.</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="Any" export-name="config"/>
+        </out-binding>
+
+        <description>
+The ConfigSpec data object type encapsulates configuration settings when creating or reconfiguring a virtual machine. To support incremental changes, these properties are all optional. 
+Basic Version
+        </description>
+
+        <position x="484.5" y="500.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item17" out-name="item18" business-status="Customizing" type="task" script-module="com.vmware.library.vc.vm.tools/vim3WaitDnsNameInTools">
+        <display-name>vim3WaitDnsNameInTools</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+System.getModule("com.vmware.library.vc.vm.tools").vim3WaitDnsNameInTools(vm,pollingRate,dnsNameToWait,timeout,addNumberToName) ;
+        </script>
+
+        <in-binding>
+            <bind name="vm" type="VC:VirtualMachine" export-name="tempNewVm">
+                <description>VM in which the action look to get the new DNS Name</description>
+            </bind>
+            <bind name="pollingRate" type="number" export-name="pollingRate">
+                <description>Time between all request information on the tools [seconds]</description>
+            </bind>
+            <bind name="dnsNameToWait" type="string" export-name="clientName">
+                <description>Define a specific DNS name to wait for (either in compute.dunes.ch or compute form)</description>
+            </bind>
+            <bind name="timeout" type="number" export-name="timeout">
+                <description>Timeout before throwing a timeout exception [minutes]</description>
+            </bind>
+            <bind name="addNumberToName" type="boolean" export-name="addNumberToName">
+                <description>Specify if the DNS name has an automatically number added at end (not known at clone time)</description>
+            </bind>
+        </in-binding>
+
+        <out-binding/>
+
+        <description>
+Wait for a given name in the DNS guest informations (VMware tools).
+
+Exception:
+- Timeout: When timeout is reached
+        </description>
+
+        <position x="904.5" y="219.04545454545453"/>
+    </workflow-item>
+
+    <workflow-item name="item23" out-name="item24" type="task" script-module="com.vmware.library.vc.vm.network/getNicByNumber">
+        <display-name>getNicByNumber</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm.network").getNicByNumber(vm,nicPosition) ;
+        </script>
+
+        <in-binding>
+            <bind name="vm" type="VC:VirtualMachine" export-name="vm">
+                <description>VM from which to get the network card</description>
+            </bind>
+            <bind name="nicPosition" type="number" export-name="nicPosition">
+                <description>Let you choose if you want to get the 1st, 2nd... 5th network card. If no valid value, 1st if used.</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="Any" export-name="sourceVirtualEthernetCard"/>
+        </out-binding>
+
+        <description>Return a Network card device (VimVirtualE1000, VimVirtualVmxnet, VimVirtualPCNet32). The network position let you choose if you want to get the 1st, 2nd... 5th network card.</description>
+
+        <position x="484.5" y="237.22727272727272"/>
+    </workflow-item>
+
+    <workflow-item name="item20" out-name="item21" type="link" linked-workflow-id="BD80808080808080808080808080808075C280800122528313869552e41805bb1">
+        <display-name>Shutdown guest OS and wait</display-name>
+
+        <in-binding>
+            <bind name="vm" type="VC:VirtualMachine" export-name="tempNewVm"/>
+        </in-binding>
+
+        <out-binding/>
+
+        <description>Shutdown guest OS and wait.</description>
+
+        <position x="904.5" y="82.68181818181817"/>
+    </workflow-item>
+
+    <workflow-item name="item28" out-name="item22" type="condition" alt-out-name="item4" comparator="0">
+        <display-name>Network defined</display-name>
+
+        <script encoded="false">
+//Generated by the system, cannot be edited
+return (network  != null ) ;
+        </script>
+
+        <in-binding>
+            <bind name="network" type="VC:Network" export-name="network"/>
+        </in-binding>
+        <condition name="network" type="VC:Network" comparator="0" label="null"/>
+
+        <position x="484.5" y="345.4090909090909"/>
+    </workflow-item>
+
+    <workflow-item name="item29" out-name="item5" type="task" script-module="com.vmware.library.vc.vm.spec/getCustomizationGlobalIPSettingsWithDomainAsString">
+        <display-name>getCustomizationGlobalIPSettingsWithDomainAsString</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm.spec").getCustomizationGlobalIPSettingsWithDomainAsString(dnsServerList,dnsDomain) ;
+        </script>
+
+        <in-binding>
+            <bind name="dnsServerList" type="Array/string" export-name="dnsServerList">
+                <description>[Optional] List of DNS servers, for a virtual network adapter with a static IP address</description>
+            </bind>
+            <bind name="dnsDomain" type="string" export-name="dnsDomain">
+                <description>[Optional] List of name resolution suffixes for the virtual network adapter</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="actionResult" type="Any" export-name="globalIPSettings"/>
+        </out-binding>
+
+        <description>A collection of global IP settings for a virtual network adapter. In Linux, DNS server settings are global. The settings can either be statically set or supplied by a DHCP server.</description>
+
+        <position x="284.5" y="219.04545454545453"/>
+    </workflow-item>
+
+    <workflow-item name="item30" out-name="item0" type="task">
+        <display-name>Set datastore if null</display-name>
+
+        <script encoded="false">
+if (datastore != null) {
+       targetDatastore = datastore;
+}
+else {
+       targetDatastore = vm.datastore[0];
+}
+        </script>
+
+        <in-binding>
+            <bind name="vm" type="VC:VirtualMachine" export-name="vm"/>
+            <bind name="datastore" type="VC:Datastore" export-name="datastore"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="targetDatastore" type="VC:Datastore" export-name="targetDatastore"/>
+        </out-binding>
+
+        <position x="284.5" y="37.22727272727273"/>
+    </workflow-item>
+
+    <workflow-item name="item31" out-name="item14" type="link" linked-workflow-id="BD80808080808080808080808080808093C380800122528313869552e41805bb1">
+        <display-name>Mark as Template</display-name>
+
+        <in-binding>
+            <bind name="vm" type="VC:VirtualMachine" export-name="tempNewVm">
+                <description>The VM to mark as template</description>
+            </bind>
+        </in-binding>
+
+        <out-binding/>
+
+        <description>Mark an existing VM as a template, preventing it to start</description>
+
+        <position x="1224.5" y="300.8636363636363"/>
+    </workflow-item>
+
+    <workflow-item name="item8" out-name="item30" type="task">
+        <display-name>Convert password</display-name>
+
+        <script encoded="false">
+newAdminPassword=vmpasswd;
+        </script>
+
+        <in-binding>
+            <bind name="vmpasswd" type="SecureString" export-name="vmpasswd"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="newAdminPassword" type="string" export-name="newAdminPassword">
+                <description>The password string. It is encrypted if the associated plainText flag is false</description>
+            </bind>
+        </out-binding>
+
+        <position x="144.5" y="37.22727272727273"/>
+    </workflow-item>
+
+    <presentation>
+        <p-step>
+            <title>VMware Information</title>
+            <p-group>
+                <title>Basic VM Information</title>
+                <p-param name="vm">
+                    <desc>Virtual machine to clone</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">true</p-qual>
+                    <p-qual kind="static" name="show-select-as" type="string">live-search</p-qual>
+                </p-param>
+                <p-param name="name">
+                    <desc>Name of the new virtual machine</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">true</p-qual>
+                </p-param>
+            </p-group>
+            <p-group>
+                <title>Running informations</title>
+                <p-qual kind="ognl" name="notVisible" type="boolean">#template</p-qual>
+                <p-param name="pool">
+                    <desc>Resource pool</desc>
+                    <p-qual kind="static" name="show-select-as" type="string">tree</p-qual>
+                    <p-qual kind="ognl" name="sdkRootObject" type="any">GetAction("com.vmware.library.vc.basic","getVimHostForVimObject").call( #vm )</p-qual>
+                </p-param>
+                <p-param name="host">
+                    <desc>Host</desc>
+                    <p-qual kind="static" name="show-select-as" type="string">live-search</p-qual>
+                    <p-qual kind="ognl" name="linkedEnumeration" type="Array/VC:HostSystem">GetAction("com.vmware.library.vc.datastore","getAllAvaiblableHostForVM").call( #vm )</p-qual>
+                </p-param>
+            </p-group>
+            <p-group>
+                <title>Location informations</title>
+                <p-param name="folder">
+                    <desc>Virtual machine folder</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">true</p-qual>
+                    <p-qual kind="static" name="show-select-as" type="string">tree</p-qual>
+                    <p-qual kind="ognl" name="sdkRootObject" type="any">GetAction("com.vmware.library.vc.basic","getVimHostForVimObject").call( #vm )</p-qual>
+                </p-param>
+                <p-param name="datastore">
+                    <desc>Datastore in which to store the virtual machine. If not specified, the current datastore is used</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">false</p-qual>
+                    <p-qual kind="static" name="show-select-as" type="string">list</p-qual>
+                    <p-qual kind="ognl" name="linkedEnumeration" type="Array/VC:Datastore">GetAction("com.vmware.library.vc.datastore","getDatastoreForHostAndResourcePool").call( #host , #pool, #vm )</p-qual>
+                </p-param>
+            </p-group>
+        </p-step>
+        <p-step>
+            <title>Microsoft Customization Information</title>
+            <p-group>
+                <title>User information</title>
+                <p-param name="fullName">
+                    <desc>User's full name</desc>
+                </p-param>
+                <p-param name="orgName">
+                    <desc>Organization name</desc>
+                </p-param>
+            </p-group>
+            <p-group>
+                <title>Basic information</title>
+                <desc>Sysprep information is put in the virtual hard disk, even if you choose to not execute sysprep operations. Activating this options will only change the this workflow is responsible of the sysprep operations.</desc>
+                <p-param name="clientName">
+                    <desc>Name or prefix name of the Windows client</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">true</p-qual>
+                </p-param>
+            </p-group>
+            <p-group>
+                <title>License information</title>
+            </p-group>
+            <p-group>
+                <title>Domain or Workgroup</title>
+                <desc>Only Domain OR Workgroup name can be set at same time. If none is defined, the Workgroup is set to "WORKGROUP".</desc>
+            </p-group>
+            <p-group>
+                <title>Domain Login information</title>
+                <p-qual kind="ognl" name="visible" type="boolean">#joinDomain != null</p-qual>
+            </p-group>
+        </p-step>
+        <p-step>
+            <title>Network information</title>
+            <p-group>
+                <title>Network interface</title>
+                <desc>If the mac address is not included, the customization process maps the settings from the virtual machine's network adapters, in PCI slot order.</desc>
+                <p-param name="network">
+                    <desc>Network on which to attach the virtual network interface</desc>
+                </p-param>
+            </p-group>
+            <p-group>
+                <title>Use DHCP</title>
+            </p-group>
+            <p-group>
+                <title>Fixed IP</title>
+                <p-qual kind="ognl" name="notVisible" type="boolean">#dhcp</p-qual>
+                <p-param name="ipAddress">
+                    <desc>Fixed valid IP address</desc>
+                    <p-qual kind="static" name="regexp" type="Regexp">\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b</p-qual>
+                </p-param>
+                <p-param name="subnetMask">
+                    <desc>Subnet mask for this virtual network adapter</desc>
+                    <p-qual kind="static" name="regexp" type="Regexp">\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b</p-qual>
+                </p-param>
+                <p-param name="gateway">
+                    <desc>List of gateways, in order of preference</desc>
+                </p-param>
+            </p-group>
+            <p-group>
+                <title>Information Settable with or without DHCP</title>
+                <p-param name="dnsDomain">
+                    <desc>DNS domain suffix such as vmware.com</desc>
+                </p-param>
+                <p-param name="dnsServerList">
+                    <desc>List of DNS servers for a virtual network adapter with a static IP address</desc>
+                </p-param>
+            </p-group>
+        </p-step>
+        <p-param name="vmpasswd">
+            <desc>vmpasswd</desc>
+        </p-param>
+    </presentation>
+</workflow>