--- misc/xenconsole/ajaxdata.php 2013/03/26 13:43:07 1958 +++ 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]; @@ -94,7 +110,8 @@ $cpuavg = round ( ($cpusum/$cpus) * 100); 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"] );