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

Contents of /misc/xenconsole/ajaxdata.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1893 - (show annotations) (download)
Mon Dec 3 11:25:39 2012 UTC (11 years, 5 months ago) by torben
File size: 2940 byte(s)
minor corrections
1 <?php
2 include("config.php");
3
4 function format_memory($size) {
5 if (1024 > $size) {
6 return "$size B";
7 } else if (pow(1024,2) > $size) {
8 return round(($size / 1024),2) . " kB";
9 } else {
10 return round(($size / pow(1024,2)), 2) . " MB";
11 }
12 }
13
14 function format_storage($size) {
15 if (1024 > $size) {
16 return "$size B";
17 } else if (pow(1024,2) > $size) {
18 return round(($size / 1024),2) . " kB";
19 } else if (pow(1024,3) > $size) {
20 return round(($size / pow(1024,2)), 2) . " MB";
21 } else if (pow(1024,4) > $size) {
22 return round(($size / pow(1024,3)), 2). " GB";
23 }
24 }
25
26 include('xenapi.php');
27
28 /* Establish session with Xenserver */
29 $xenserver = new XenApi($url, $login, $password);
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");
46 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
57 foreach($vms_array as $vmref => $vm) {
58 if ($vm["is_a_template"] != 0 || $vm["is_control_domain"] != 0) {
59 continue;
60 }
61
62
63 $name = $vm["name_label"];
64 $uuid = $vm["uuid"];
65 $state = $vm["power_state"] ;
66 $cpus = $vm["VCPUs_max"];
67
68
69 $network = "";
70 $url = "";
71 $session = "";
72 $os = "";
73 $cpuavg = 0.0;
74 if ( $vm["power_state"] == "Running" ) {
75 if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed
76 $guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
77 $network = implode( ",", $guest_metrics["networks"]) ;
78 $tmpos = explode('|', $guest_metrics["os_version"]["name"]);
79 $os = $tmpos[0];
80
81 }
82 $cpusum = 0.0;
83 for ($i=0; $i<$cpus; $i++) {
84 $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);
85 }
86 $cpuavg = round ( ($cpusum/$cpus) * 100);
87
88
89 foreach($vm["consoles"] as $conref) {
90 $con = $xenserver->console__get_record( $conref );
91
92 if ($con["protocol"] == "rfb") {
93 $url = urlencode( $con["location"] );
94 $session = $xenserver->get_id();
95 }
96 }
97
98 }
99
100
101
102 echo "<vm>";
103 echo "<name>{$name}</name>";
104 echo "<state>{$state}</state>";
105 echo "<network>{$network}</network>";
106 echo "<conurl>{$url}</conurl>";
107 echo "<session>{$session}</session>";
108 echo "<os>{$os}</os>";
109 echo "<cpuavg>{$cpuavg}</cpuavg>";
110
111 echo "</vm>";
112 }
113 echo "</xen>";
114 ?>

  ViewVC Help
Powered by ViewVC 1.1.20