/[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 1885 by torben, Fri Nov 30 17:56:07 2012 UTC revision 2019 by torben, Thu Jul 18 13:11:54 2013 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    //Opbyg cache arrays
32    $consolemap = array();
33    $consoles = $xenserver->console__get_all_records();
34    foreach($consoles as $key => $val) {
35        $consolemap[$key] = $val;
36    }
37    
38    $guestmetricmap = array();
39    $guestmetrics = $xenserver->VM_guest_metrics__get_all_records();
40    foreach($guestmetrics as $key => $val) {
41            $guestmetricmap[$key] = $val;
42    }
43    
44    //find data
45    
46    $hosts_array = $xenserver->host__get_all();
47    $host = $xenserver->host__get_record($hosts_array[0]);
48    $host_metrics = $xenserver->host_metrics__get_record($host["metrics"]);
49    
50    $mem_total = $host_metrics["memory_total"];
51    $mem_free = $host_metrics["memory_free"];
52    
53    $cpus = $host["cpu_info"]["cpu_count"];
54    $cpusum = 0.0;
55    for ($i=0; $i<$cpus; $i++) {
56            $cpusum += $xenserver->host__query_data_source($hosts_array[0], "cpu" . $i);
57    }
58    $cpuavg = round (  ($cpusum/$cpus) * 100);
59    
60  header("Content-Type: text/xml");  header("Content-Type: text/xml");
61  echo "<xen>";  echo "<xen>";
62    echo "<host>";
63    echo "<memtotal>{$mem_total}</memtotal>";
64    echo "<memfree>{$mem_free}</memfree>";
65    echo "<cpuavg>{$cpuavg}</cpuavg>";
66    echo "</host>";
67    
68    
69    
70    $vms_array = $xenserver->VM__get_all_records();
71  // List all machines  // List all machines
72  foreach($vms_array as $vm) {  foreach($vms_array as $vmref => $vm) {
73          if ($vm["is_a_template"] != 0 || $vm["is_control_domain"] != 0) {          if ($vm["is_a_template"] != 0 || $vm["is_control_domain"] != 0) {
74                  continue;                  continue;
75          }          }
# Line 43  foreach($vms_array as $vm) { Line 78  foreach($vms_array as $vm) {
78          $name = $vm["name_label"];          $name = $vm["name_label"];
79          $uuid = $vm["uuid"];          $uuid = $vm["uuid"];
80          $state = $vm["power_state"] ;          $state = $vm["power_state"] ;
81            $cpus = $vm["VCPUs_max"];
82    
83    
84          $network = "";          $network = "";
85          $url = "";          $url = "";
86          $session = "";          $session = "";
87            $os = "";
88            $cpuavg = 0.0;
89            $curmem = 0;
90            $maxmem = 0;
91            $guestversion = "";
92    
93          if ( $vm["power_state"] == "Running" ) {          if ( $vm["power_state"] == "Running" ) {
94                  if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed                  if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed
95                          $guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );                          //$guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
96                            $guest_metrics = $guestmetricmap[  $vm["guest_metrics"] ];
97                          $network = implode( ",",  $guest_metrics["networks"])  ;                          $network = implode( ",",  $guest_metrics["networks"])  ;
98                            $tmpos =  explode('|', $guest_metrics["os_version"]["name"]);
99                            $os = $tmpos[0];
100                            $guestversion = $guest_metrics["PV_drivers_version"]["major"] . "." . $guest_metrics["PV_drivers_version"]["minor"] . "." .  $guest_metrics["PV_drivers_version"]["micro"];
101    
102                            $maxmem = round($xenserver->VM__query_data_source($vmref, "memory") / (1024*1024) );
103                            $free = round( $xenserver->VM__query_data_source($vmref, "memory_internal_free") / 1024 );      
104                            $curmem = $maxmem - $free;
105                  }                  }
106                    $cpusum = 0.0;
107                    for ($i=0; $i<$cpus; $i++) {
108                            $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);
109                    }      
110                    $cpuavg = round (  ($cpusum/$cpus) * 100);
111    
112                  foreach($vm["consoles"] as $conref) {                  foreach($vm["consoles"] as $conref) {
113                          $con = $xenserver->console__get_record( $conref );                          //$con = $xenserver->console__get_record( $conref );
114                                            $con = $consolemap[$conref];
115    
116                          if ($con["protocol"] == "rfb") {                          if ($con["protocol"] == "rfb") {
117                                  $url = urlencode( $con["location"] );                                  $url = urlencode( $con["location"] );
# Line 63  foreach($vms_array as $vm) { Line 119  foreach($vms_array as $vm) {
119                          }                          }
120                  }                  }
121    
122          }          } else {
123                    $maxmem = $vm["memory_static_max"] / (1024*1024);
124            }
125    
126    
127    
# Line 73  foreach($vms_array as $vm) { Line 131  foreach($vms_array as $vm) {
131          echo "<network>{$network}</network>";          echo "<network>{$network}</network>";
132          echo "<conurl>{$url}</conurl>";          echo "<conurl>{$url}</conurl>";
133          echo "<session>{$session}</session>";          echo "<session>{$session}</session>";
134            echo "<os>{$os}</os>";
135            echo "<guestversion>{$guestversion}</guestversion>";
136            echo "<cpuavg>{$cpuavg}</cpuavg>";
137            echo "<curmem>{$curmem}</curmem>";
138            echo "<maxmem>{$maxmem}</maxmem>";
139            echo "<cpus>{$cpus}</cpus>";
140                    
141          echo "</vm>";            echo "</vm>";  
142  }  }

Legend:
Removed from v.1885  
changed lines
  Added in v.2019

  ViewVC Help
Powered by ViewVC 1.1.20