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

Diff of /misc/xenconsole/ajaxdata.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1897 by torben, Mon Dec 10 12:32:50 2012 UTC revision 2029 by torben, Tue Jul 23 19:00:14 2013 UTC
# Line 23  function format_storage($size) { Line 23  function format_storage($size) {
23    }    }
24  }  }
25    
26    function get_network_string($networks) {
27            global $hideipv6;
28    
29            $ret = "";
30            foreach($networks as $net) {
31                    if ($hideipv6 == true) {
32                            if ( strpos($net, ":") !== false)
33                                    continue;
34                    }
35    
36                    if ($ret != "")
37                            $ret .= ",";
38    
39                    $ret .= $net;
40            }
41            return $ret;
42    }
43    
44  include('xenapi.php');  include('xenapi.php');
45    
46  /* Establish session with Xenserver */  /* Establish session with Xenserver */
47  $xenserver = new XenApi($url, $login, $password);  $xenserver = new XenApi($url, $login, $password);
48    
49    //Opbyg cache arrays
50    $consolemap = array();
51    $consoles = $xenserver->console__get_all_records();
52    foreach($consoles as $key => $val) {
53        $consolemap[$key] = $val;
54    }
55    
56    $guestmetricmap = array();
57    $guestmetrics = $xenserver->VM_guest_metrics__get_all_records();
58    foreach($guestmetrics as $key => $val) {
59            $guestmetricmap[$key] = $val;
60    }
61    
62    //find data
63    
64  $hosts_array = $xenserver->host__get_all();  $hosts_array = $xenserver->host__get_all();
65  $host = $xenserver->host__get_record($hosts_array[0]);  $host = $xenserver->host__get_record($hosts_array[0]);
66  $host_metrics = $xenserver->host_metrics__get_record($host["metrics"]);  $host_metrics = $xenserver->host_metrics__get_record($host["metrics"]);
# Line 75  foreach($vms_array as $vmref => $vm) { Line 108  foreach($vms_array as $vmref => $vm) {
108          $maxmem = 0;          $maxmem = 0;
109          $guestversion = "";          $guestversion = "";
110    
111          if ( $vm["power_state"] == "Running" ) {          if ( $vm["power_state"] == "Running" ) {
112                  if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed                  if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed
113                          $guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );                          //$guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
114                          $network = implode( ",",  $guest_metrics["networks"])  ;                          $guest_metrics = $guestmetricmap[  $vm["guest_metrics"] ];
115                            $network = get_network_string($guest_metrics["networks"])  ;
116                          $tmpos =  explode('|', $guest_metrics["os_version"]["name"]);                          $tmpos =  explode('|', $guest_metrics["os_version"]["name"]);
117                          $os = $tmpos[0];                          $os = $tmpos[0];
118                          $guestversion = $guest_metrics["PV_drivers_version"]["major"] . "." . $guest_metrics["PV_drivers_version"]["minor"] . "." .  $guest_metrics["PV_drivers_version"]["micro"];                          $guestversion = $guest_metrics["PV_drivers_version"]["major"] . "." . $guest_metrics["PV_drivers_version"]["minor"] . "." .  $guest_metrics["PV_drivers_version"]["micro"];
119    
120                            $maxmem = round($xenserver->VM__query_data_source($vmref, "memory") / (1024*1024) );
121                            $free = round( $xenserver->VM__query_data_source($vmref, "memory_internal_free") / 1024 );      
122                            $curmem = $maxmem - $free;
123                    } else {                        
124                            $maxmem = $vm["memory_static_max"] / (1024*1024);
125                  }                  }
126    
127                  $cpusum = 0.0;                  $cpusum = 0.0;
128                  for ($i=0; $i<$cpus; $i++) {                  for ($i=0; $i<$cpus; $i++) {
129                          $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);                          $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);
130                  }                        }      
131                  $cpuavg = round (  ($cpusum/$cpus) * 100);                  $cpuavg = round (  ($cpusum/$cpus) * 100);
                 $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;  
132    
133                  foreach($vm["consoles"] as $conref) {                  foreach($vm["consoles"] as $conref) {
134                          $con = $xenserver->console__get_record( $conref );                          //$con = $xenserver->console__get_record( $conref );
135                                            $con = $consolemap[$conref];
136    
137                          if ($con["protocol"] == "rfb") {                          if ($con["protocol"] == "rfb") {
138                                  $url = urlencode( $con["location"] );                                  $url = urlencode( $con["location"] );
# Line 101  foreach($vms_array as $vmref => $vm) { Line 140  foreach($vms_array as $vmref => $vm) {
140                          }                          }
141                  }                  }
142    
143          }      } else {
144                    $maxmem = $vm["memory_static_max"] / (1024*1024);
145            }
146    
147    
148    
# Line 116  foreach($vms_array as $vmref => $vm) { Line 157  foreach($vms_array as $vmref => $vm) {
157          echo "<cpuavg>{$cpuavg}</cpuavg>";          echo "<cpuavg>{$cpuavg}</cpuavg>";
158          echo "<curmem>{$curmem}</curmem>";          echo "<curmem>{$curmem}</curmem>";
159          echo "<maxmem>{$maxmem}</maxmem>";          echo "<maxmem>{$maxmem}</maxmem>";
160            echo "<cpus>{$cpus}</cpus>";
161                    
162          echo "</vm>";            echo "</vm>";  
163  }  }

Legend:
Removed from v.1897  
changed lines
  Added in v.2029

  ViewVC Help
Powered by ViewVC 1.1.20