$size) { return "$size B"; } else if (pow(1024,2) > $size) { return round(($size / 1024),2) . " kB"; } else { return round(($size / pow(1024,2)), 2) . " MB"; } } function format_storage($size) { if (1024 > $size) { return "$size B"; } else if (pow(1024,2) > $size) { return round(($size / 1024),2) . " kB"; } else if (pow(1024,3) > $size) { return round(($size / pow(1024,2)), 2) . " MB"; } else if (pow(1024,4) > $size) { return round(($size / pow(1024,3)), 2). " GB"; } } include('xenapi.php'); /* Establish session with Xenserver */ $xenserver = new XenApi($url, $login, $password); $vms_array = $xenserver->VM__get_all_records(); header("Content-Type: text/xml"); echo ""; // List all machines foreach($vms_array as $vm) { if ($vm["is_a_template"] != 0 || $vm["is_control_domain"] != 0) { continue; } $name = $vm["name_label"]; $uuid = $vm["uuid"]; $state = $vm["power_state"] ; $network = ""; $url = ""; $session = ""; $os = ""; 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"] ); $network = implode( ",", $guest_metrics["networks"]) ; $os = $guest_metrics["os_version"]["name"]; } foreach($vm["consoles"] as $conref) { $con = $xenserver->console__get_record( $conref ); if ($con["protocol"] == "rfb") { $url = urlencode( $con["location"] ); $session = $xenserver->get_id(); } } } echo ""; echo "{$name}"; echo "{$state}"; echo "{$network}"; echo "{$url}"; echo "{$session}"; echo "{$os}"; echo ""; } echo ""; ?>