]> git.uio.no Git - virt-orchestrator.git/blobdiff - vFLOWER/content/Workflows/uio/lib/vm/Clone, Linux with single NIC.workflow.xml
første xml update
[virt-orchestrator.git] / vFLOWER / content / Workflows / uio / lib / vm / Clone, Linux with single NIC.workflow.xml
diff --git a/vFLOWER/content/Workflows/uio/lib/vm/Clone, Linux with single NIC.workflow.xml b/vFLOWER/content/Workflows/uio/lib/vm/Clone, Linux with single NIC.workflow.xml
new file mode 100644 (file)
index 0000000..5c5feb4
--- /dev/null
@@ -0,0 +1,935 @@
+<?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="item11" object-name="Workflow:name=generic" id="569edb26-b0dc-4ae0-802e-f90394e2084b" version="1.0.0" api-version="3.1.0" allowed-operations="fve" restartMode="1" resumeFromFailedMode="0">
+    <display-name>Clone, Linux with single NIC</display-name>
+
+    <description>Clones a Linux virtual machine, performs the guest operating system customization, and configures one virtual network card.</description>
+
+    <position x="60.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="powerOn" type="boolean">
+            <description>Specifies whether or not the new virtual machine should be powered on after creation</description>
+        </param>
+        <param name="template" type="boolean">
+            <description>Specifies whether or not to mark the new virtual machine as a template</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="doSysprep" type="boolean">
+            <description>Run the Sysprep operations and wait for the task to complete. Not used if the virtual machine is marked as template</description>
+        </param>
+        <param name="clientName" type="string">
+            <description>Name or prefix name of the Linux 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="dhcp" type="boolean">
+            <description>Use a DHCP server to configure the virtual network adapter</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="macAddress" type="string">
+            <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>
+        </param>
+        <param name="subnetMask" type="string">
+            <description>[Optional] Subnet mask for this virtual network adapter</description>
+        </param>
+    </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">false</value>
+        <description>Log progress while waiting for the task to complete</description>
+    </attrib>
+    <attrib name="pollRate" type="number" read-only="false">
+        <value encoded="n">30.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="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">false</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">5.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>
+    <workflow-note x="870.0" y="400.0" w="210.0" h="130.0" color="d7a1d7ff">
+        <description>Clone VM and wait</description>
+    </workflow-note>
+    <workflow-note x="70.0" y="480.0" w="210.0" h="50.0">
+        <description>Relocate Spec</description>
+    </workflow-note>
+    <workflow-note x="70.0" y="190.0" w="210.0" h="240.0">
+        <description>Customization Spec</description>
+    </workflow-note>
+    <workflow-note x="590.0" y="480.0" w="190.0" h="50.0" color="bfdfffff">
+        <description>Compile specs to Clone Spec</description>
+    </workflow-note>
+    <workflow-note x="660.0" y="200.0" w="240.0" h="50.0" color="bfffbfff">
+        <description>Wait for the sysprep operation to be terminated</description>
+    </workflow-note>
+    <workflow-note x="310.0" y="210.0" w="240.0" h="320.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="140.0" y="80.0"/>
+    </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="Any" export-name="tempNewVm"/>
+        </out-binding>
+
+        <description>
+Wait a VIM 3 Task to end.
+When task ended, return the
+        </description>
+
+        <position x="940.0" y="440.0"/>
+    </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="940.0" y="500.0"/>
+    </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="640.0" y="500.0"/>
+    </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" export-name="NULL">
+                <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" export-name="NULL">
+                <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="140.0" y="500.0"/>
+    </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="140.0" y="400.0"/>
+    </workflow-item>
+
+    <workflow-item name="item8" out-name="item5" type="task" script-module="com.vmware.library.vc.vm.spec/getCustomizationGlobalIPSettings">
+        <display-name>getCustomizationGlobalIPSettings</display-name>
+
+        <script encoded="false">
+//Auto generated script, cannot be modified !
+actionResult = System.getModule("com.vmware.library.vc.vm.spec").getCustomizationGlobalIPSettings(dnsServerList,dnsSuffixList) ;
+        </script>
+
+        <in-binding>
+            <bind name="dnsServerList" type="Array/string" explicitly-not-bound="true" export-name="NULL">
+                <description>[Optional] List of DNS servers, for a virtual network adapter with a static IP address</description>
+            </bind>
+            <bind name="dnsSuffixList" type="Array/string" explicitly-not-bound="true" export-name="NULL">
+                <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>
+
+        <position x="140.0" y="220.0"/>
+    </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" explicitly-not-bound="true" export-name="NULL">
+                <description>[Optional] NetBIOS setting for Windows.</description>
+            </bind>
+            <bind name="primaryWINS" type="string" explicitly-not-bound="true" export-name="NULL">
+                <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" explicitly-not-bound="true" export-name="NULL">
+                <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="140.0" y="320.0"/>
+    </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="140.0" y="360.0"/>
+    </workflow-item>
+
+    <workflow-item name="item1" out-name="item8" 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="doSysprep" type="boolean" export-name="doSysprep"/>
+            <bind name="powerOn" type="boolean" export-name="powerOn"/>
+            <bind name="template" type="boolean" export-name="template"/>
+        </in-binding>
+
+        <out-binding>
+            <bind name="startVm" type="boolean" export-name="startVm"/>
+        </out-binding>
+
+        <position x="140.0" y="140.0"/>
+    </workflow-item>
+
+    <workflow-item name="item12" out-name="item28" 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="940.0" y="290.0"/>
+    </workflow-item>
+
+    <workflow-item name="item13" out-name="item12" 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="940.0" y="360.0"/>
+    </workflow-item>
+
+    <workflow-item name="item14" type="end" end-mode="0">
+        <position x="1220.0" y="290.0"/>
+    </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="940.0" y="210.0"/>
+    </workflow-item>
+
+    <workflow-item name="item16" type="end" end-mode="0">
+        <position x="1120.0" y="210.0"/>
+    </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="760.0" y="150.0"/>
+    </workflow-item>
+
+    <workflow-item name="item19" type="end" end-mode="0">
+        <position x="960.0" y="150.0"/>
+    </workflow-item>
+
+    <workflow-item name="item21" type="end" end-mode="0">
+        <position x="960.0" y="70.0"/>
+    </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="340.0" y="400.0"/>
+    </workflow-item>
+
+    <workflow-item name="item24" out-name="item27" 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">__NULL__</condition>
+
+        <position x="340.0" y="290.0"/>
+    </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="340.0" y="440.0"/>
+    </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="340.0" y="500.0"/>
+    </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="760.0" y="220.0"/>
+    </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="340.0" y="240.0"/>
+    </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="760.0" y="80.0"/>
+    </workflow-item>
+
+    <workflow-item name="item27" 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="340.0" y="350.0"/>
+    </workflow-item>
+
+    <workflow-item name="item5" out-name="item9" type="link" linked-workflow-id="BD80808080808080808080808080808039C280800122528313869552e41805bb1">
+        <display-name>Get Linux Customization</display-name>
+
+        <in-binding>
+            <bind name="domain" type="string" export-name="dnsDomain">
+                <description>The fully qualified domain name.</description>
+            </bind>
+            <bind name="hostname" type="string" export-name="clientName">
+                <description>The network host name of the (Linux) virtual machine.</description>
+            </bind>
+        </in-binding>
+
+        <out-binding>
+            <bind name="customizationLinuxPrep" type="Any" export-name="identity">
+                <description>The CustomizationLinuxPrep corresponding</description>
+            </bind>
+        </out-binding>
+
+        <position x="140.0" y="260.0"/>
+    </workflow-item>
+
+    <workflow-item name="item11" 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="140.0" y="40.0"/>
+    </workflow-item>
+
+    <workflow-item name="item28" 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="1080.0" y="300.0"/>
+    </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-param name="template">
+                    <desc>Mark the new virtual machine as a template</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="powerOn">
+                    <desc>Power on the new virtual machine</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">true</p-qual>
+                </p-param>
+                <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">true</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>Linux Customization Information</title>
+            <p-group>
+                <title>Basic informations</title>
+                <p-param name="doSysprep">
+                    <desc>Run the Sysprep operations and wait for the task to complete. Not used if the virtual machine is marked as template</desc>
+                    <p-qual kind="ognl" name="defaultValue" type="boolean">!#template</p-qual>
+                    <p-qual kind="ognl" name="notVisible" type="boolean">#template</p-qual>
+                </p-param>
+                <p-param name="clientName">
+                    <desc>Name or prefix name of the Linux client</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">true</p-qual>
+                </p-param>
+            </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="macAddress">
+                    <desc>The MAC address of a network adapter being customized</desc>
+                    <p-qual kind="static" name="regexp" type="Regexp">00:50:56:[0-3][0-9A-Fa-f](:[0-9A-Fa-f]{2}){2}</p-qual>
+                </p-param>
+                <p-param name="network">
+                    <desc>Network on which attach the virtual network interface</desc>
+                    <p-qual kind="ognl" name="dataBinding" type="VC:DistributedVirtualPortgroup">GetAction("com.vmware.library.vc.vm.network","getNetworkForGivenNic").call(#vm, 1)</p-qual>
+                    <p-qual kind="static" name="show-select-as" type="string">list</p-qual>
+                    <p-qual kind="ognl" name="linkedEnumeration" type="Array/VC:DistributedVirtualPortgroup">GetAction("com.vmware.library.vc.network","getNetworkForResourcePoolHostVm").call( #pool , #host , #vm )</p-qual>
+                </p-param>
+            </p-group>
+            <p-group>
+                <title>Use DHCP</title>
+                <p-param name="dhcp">
+                    <desc>Use a DHCP server to configure the virtual network adapter</desc>
+                    <p-qual kind="static" name="mandatory" type="boolean">true</p-qual>
+                </p-param>
+            </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>
+    </presentation>
+</workflow>