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

Annotation of /misc/xenconsole/ajaxdata.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1896 - (hide annotations) (download)
Mon Dec 10 12:20:57 2012 UTC (11 years, 5 months ago) by torben
File size: 3244 byte(s)
add vm memory graph data
1 torben 1884 <?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 torben 1889
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 torben 1892 $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 torben 1884
45     header("Content-Type: text/xml");
46     echo "<xen>";
47 torben 1889 echo "<host>";
48     echo "<memtotal>{$mem_total}</memtotal>";
49     echo "<memfree>{$mem_free}</memfree>";
50 torben 1892 echo "<cpuavg>{$cpuavg}</cpuavg>";
51 torben 1889 echo "</host>";
52 torben 1884
53 torben 1892
54    
55     $vms_array = $xenserver->VM__get_all_records();
56 torben 1884 // List all machines
57 torben 1891 foreach($vms_array as $vmref => $vm) {
58 torben 1884 if ($vm["is_a_template"] != 0 || $vm["is_control_domain"] != 0) {
59     continue;
60     }
61    
62 torben 1885
63 torben 1884 $name = $vm["name_label"];
64     $uuid = $vm["uuid"];
65     $state = $vm["power_state"] ;
66 torben 1891 $cpus = $vm["VCPUs_max"];
67 torben 1884
68 torben 1885
69     $network = "";
70     $url = "";
71     $session = "";
72 torben 1888 $os = "";
73 torben 1891 $cpuavg = 0.0;
74 torben 1896 $curmem = 0;
75     $maxmem = 0;
76    
77 torben 1885 if ( $vm["power_state"] == "Running" ) {
78     if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed
79     $guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
80     $network = implode( ",", $guest_metrics["networks"]) ;
81 torben 1893 $tmpos = explode('|', $guest_metrics["os_version"]["name"]);
82     $os = $tmpos[0];
83 torben 1885 }
84 torben 1891 $cpusum = 0.0;
85     for ($i=0; $i<$cpus; $i++) {
86     $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);
87     }
88     $cpuavg = round ( ($cpusum/$cpus) * 100);
89 torben 1896 $maxmem = round($xenserver->VM__query_data_source($vmref, "memory") / (1024*1024) );
90     $free = round( $xenserver->VM__query_data_source($vmref, "memory_internal_free") / 1024 );
91     $curmem = $maxmem - $free;
92 torben 1885
93     foreach($vm["consoles"] as $conref) {
94     $con = $xenserver->console__get_record( $conref );
95    
96     if ($con["protocol"] == "rfb") {
97     $url = urlencode( $con["location"] );
98     $session = $xenserver->get_id();
99     }
100     }
101    
102     }
103    
104    
105    
106 torben 1884 echo "<vm>";
107     echo "<name>{$name}</name>";
108     echo "<state>{$state}</state>";
109 torben 1885 echo "<network>{$network}</network>";
110     echo "<conurl>{$url}</conurl>";
111     echo "<session>{$session}</session>";
112 torben 1888 echo "<os>{$os}</os>";
113 torben 1891 echo "<cpuavg>{$cpuavg}</cpuavg>";
114 torben 1896 echo "<curmem>{$curmem}</curmem>";
115     echo "<maxmem>{$maxmem}</maxmem>";
116 torben 1885
117 torben 1884 echo "</vm>";
118     }
119     echo "</xen>";
120     ?>

  ViewVC Help
Powered by ViewVC 1.1.20