første xml update
[virt-orchestrator.git] / vFLOWER / content / Actions / com.vmware.library.vc.vm.tools / vim3WaitToolsStarted.action.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <dunes-script-module name="vim3WaitToolsStarted" result-type="void" api-version="3.1.0" id="498e2443-f2a4-416c-b3ff-066e793f1b4e" version="0.2.0" allowed-operations="fv">
3     <description>
4 Wait for the VMware tools to be up and the guest running
5
6 Exception:
7 - Timeout: When timeout is reached
8 - ReferenceError: When vm is not set correctly
9     </description>
10
11     <param n="vm" t="VC:VirtualMachine">VM in which the action look to get the new DNS Name</param>
12
13     <param n="pollingRate" t="number">Time between all request information on the tools [seconds]</param>
14
15     <param n="timeout" t="number">Timeout before throwing a timeout exception [minutes]</param>
16
17     <script encoded="false">
18 if (vm == null) throw "ReferenceError: vm is not defined for waiting for the DNS name";
19 if (vm.name == null) throw "ReferenceError: vm is not initialized for waiting for the DNS name";
20
21 timeout = timeout * 60;
22
23 while (true) {
24         if (vm.guest != null) {
25                 if (vm.guest.toolsStatus != null &amp;&amp; vm.guest.toolsStatus == VcVirtualMachineToolsStatus.toolsOk) {
26                         System.log("toolsOK");
27                 }
28                 if (vm.guest.toolsStatus != null &amp;&amp; vm.guest.toolsStatus == VcVirtualMachineToolsStatus.toolsOld) {
29                         System.log("toolsOld");
30                 }
31                 if (vm.guest.toolsStatus != null &amp;&amp; (vm.guest.toolsStatus == VcVirtualMachineToolsStatus.toolsOk || vm.guest.toolsStatus == VcVirtualMachineToolsStatus.toolsOld)) {
32                         if (vm.guest.guestState == "running") {
33                                 break;
34                         }
35                 }
36         }
37         else {
38                 System.log("vm.guest is null");
39         }       
40
41         // wait the poolingRate
42         System.sleep(pollingRate*1000);
43         // test timeout
44         timeout -= pollingRate;
45         if (timeout &lt;= 0) {
46                 throw "Timeout: Timout waiting for tools to be started on a running OS";
47         }
48 }
49
50 System.log("VMware tools on VM " + vm.name + " are in state: " + vm.guest.toolsStatus.value + " and guest is " + vm.guest.guestState);
51     </script>
52 </dunes-script-module>