--- misc/xenconsole/ajaxdata.php 2012/12/10 15:40:55 1901
+++ misc/xenconsole/ajaxdata.php 2013/07/18 13:11:54 2019
@@ -28,6 +28,21 @@
/* Establish session with Xenserver */
$xenserver = new XenApi($url, $login, $password);
+//Opbyg cache arrays
+$consolemap = array();
+$consoles = $xenserver->console__get_all_records();
+foreach($consoles as $key => $val) {
+ $consolemap[$key] = $val;
+}
+
+$guestmetricmap = array();
+$guestmetrics = $xenserver->VM_guest_metrics__get_all_records();
+foreach($guestmetrics as $key => $val) {
+ $guestmetricmap[$key] = $val;
+}
+
+//find data
+
$hosts_array = $xenserver->host__get_all();
$host = $xenserver->host__get_record($hosts_array[0]);
$host_metrics = $xenserver->host_metrics__get_record($host["metrics"]);
@@ -77,7 +92,8 @@
if ( $vm["power_state"] == "Running" ) {
if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed
- $guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
+ //$guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
+ $guest_metrics = $guestmetricmap[ $vm["guest_metrics"] ];
$network = implode( ",", $guest_metrics["networks"]) ;
$tmpos = explode('|', $guest_metrics["os_version"]["name"]);
$os = $tmpos[0];
@@ -85,16 +101,17 @@
$maxmem = round($xenserver->VM__query_data_source($vmref, "memory") / (1024*1024) );
$free = round( $xenserver->VM__query_data_source($vmref, "memory_internal_free") / 1024 );
+ $curmem = $maxmem - $free;
}
$cpusum = 0.0;
for ($i=0; $i<$cpus; $i++) {
$cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);
}
$cpuavg = round ( ($cpusum/$cpus) * 100);
- $curmem = $maxmem - $free;
foreach($vm["consoles"] as $conref) {
- $con = $xenserver->console__get_record( $conref );
+ //$con = $xenserver->console__get_record( $conref );
+ $con = $consolemap[$conref];
if ($con["protocol"] == "rfb") {
$url = urlencode( $con["location"] );
@@ -102,7 +119,9 @@
}
}
- }
+ } else {
+ $maxmem = $vm["memory_static_max"] / (1024*1024);
+ }
@@ -117,6 +136,7 @@
echo "{$cpuavg}";
echo "{$curmem}";
echo "{$maxmem}";
+ echo "{$cpus}";
echo "";
}