/[projects]/misc/xenconsole/ajaxdata.php
ViewVC logotype

Diff of /misc/xenconsole/ajaxdata.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1884 by torben, Fri Nov 30 15:54:54 2012 UTC revision 1901 by torben, Mon Dec 10 15:40:55 2012 UTC
# Line 27  include('xenapi.php'); Line 27  include('xenapi.php');
27    
28  /* Establish session with Xenserver */  /* Establish session with Xenserver */
29  $xenserver = new XenApi($url, $login, $password);  $xenserver = new XenApi($url, $login, $password);
 $vms_array = $xenserver->VM__get_all_records();  
30    
31    $hosts_array = $xenserver->host__get_all();
32    $host = $xenserver->host__get_record($hosts_array[0]);
33    $host_metrics = $xenserver->host_metrics__get_record($host["metrics"]);
34    
35    $mem_total = $host_metrics["memory_total"];
36    $mem_free = $host_metrics["memory_free"];
37    
38    $cpus = $host["cpu_info"]["cpu_count"];
39    $cpusum = 0.0;
40    for ($i=0; $i<$cpus; $i++) {
41            $cpusum += $xenserver->host__query_data_source($hosts_array[0], "cpu" . $i);
42    }
43    $cpuavg = round (  ($cpusum/$cpus) * 100);
44    
45  header("Content-Type: text/xml");  header("Content-Type: text/xml");
46  echo "<xen>";  echo "<xen>";
47    echo "<host>";
48    echo "<memtotal>{$mem_total}</memtotal>";
49    echo "<memfree>{$mem_free}</memfree>";
50    echo "<cpuavg>{$cpuavg}</cpuavg>";
51    echo "</host>";
52    
53    
54    
55    $vms_array = $xenserver->VM__get_all_records();
56  // List all machines  // List all machines
57  foreach($vms_array as $vm) {  foreach($vms_array as $vmref => $vm) {
58          if ($vm["is_a_template"] != 0 || $vm["is_control_domain"] != 0) {          if ($vm["is_a_template"] != 0 || $vm["is_control_domain"] != 0) {
59                  continue;                  continue;
60          }          }
61    
62    
63          $name = $vm["name_label"];          $name = $vm["name_label"];
64          $uuid = $vm["uuid"];          $uuid = $vm["uuid"];
65          $state = $vm["power_state"] ;          $state = $vm["power_state"] ;
66          $memory = $vm['memory_target'];          $cpus = $vm["VCPUs_max"];
67          $harddrive_size = 0;  
68          $cpu_count = $vm["VCPUs_max"];  
69            $network = "";
70            $url = "";
71            $session = "";
72            $os = "";
73            $cpuavg = 0.0;
74            $curmem = 0;
75            $maxmem = 0;
76            $guestversion = "";
77    
78            if ( $vm["power_state"] == "Running" ) {
79                    if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed
80                            $guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
81                            $network = implode( ",",  $guest_metrics["networks"])  ;
82                            $tmpos =  explode('|', $guest_metrics["os_version"]["name"]);
83                            $os = $tmpos[0];
84                            $guestversion = $guest_metrics["PV_drivers_version"]["major"] . "." . $guest_metrics["PV_drivers_version"]["minor"] . "." .  $guest_metrics["PV_drivers_version"]["micro"];
85    
86                            $maxmem = round($xenserver->VM__query_data_source($vmref, "memory") / (1024*1024) );
87                            $free = round( $xenserver->VM__query_data_source($vmref, "memory_internal_free") / 1024 );      
88                    }
89                    $cpusum = 0.0;
90                    for ($i=0; $i<$cpus; $i++) {
91                            $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);
92                    }      
93                    $cpuavg = round (  ($cpusum/$cpus) * 100);
94                    $curmem = $maxmem - $free;
95    
96                    foreach($vm["consoles"] as $conref) {
97                            $con = $xenserver->console__get_record( $conref );
98    
99                            if ($con["protocol"] == "rfb") {
100                                    $url = urlencode( $con["location"] );
101                                    $session = $xenserver->get_id();
102                            }
103                    }
104    
105            }
106    
107    
108    
109          echo "<vm>";          echo "<vm>";
110          echo "<name>{$name}</name>";          echo "<name>{$name}</name>";
111          echo "<state>{$state}</state>";          echo "<state>{$state}</state>";
112            echo "<network>{$network}</network>";
113            echo "<conurl>{$url}</conurl>";
114            echo "<session>{$session}</session>";
115            echo "<os>{$os}</os>";
116            echo "<guestversion>{$guestversion}</guestversion>";
117            echo "<cpuavg>{$cpuavg}</cpuavg>";
118            echo "<curmem>{$curmem}</curmem>";
119            echo "<maxmem>{$maxmem}</maxmem>";
120            
121          echo "</vm>";            echo "</vm>";  
122  }  }
123  echo "</xen>";  echo "</xen>";

Legend:
Removed from v.1884  
changed lines
  Added in v.1901

  ViewVC Help
Powered by ViewVC 1.1.20