/[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 2101 by torben, Thu Jan 30 10:16:09 2014 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 64  foreach($vms_array as $vmref => $vm) { Line 97  foreach($vms_array as $vmref => $vm) {
97          $uuid = $vm["uuid"];          $uuid = $vm["uuid"];
98          $state = $vm["power_state"] ;          $state = $vm["power_state"] ;
99          $cpus = $vm["VCPUs_max"];          $cpus = $vm["VCPUs_max"];
100            
101            $operations = $vm["current_operations"];
102            if (sizeof($operations) > 0) {
103                    $state = reset($operations);
104            }
105    
106    
107          $network = "";          $network = "";
# Line 75  foreach($vms_array as $vmref => $vm) { Line 113  foreach($vms_array as $vmref => $vm) {
113          $maxmem = 0;          $maxmem = 0;
114          $guestversion = "";          $guestversion = "";
115    
116          if ( $vm["power_state"] == "Running" ) {  
117            if ( $vm["power_state"] == "Running" ) {
118                  if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed                  if ($vm["guest_metrics"] != "OpaqueRef:NULL") {//guest tools installed
119                          $guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );                          //$guest_metrics = $xenserver->VM_guest_metrics__get_record( $vm["guest_metrics"] );
120                          $network = implode( ",",  $guest_metrics["networks"])  ;                          $guest_metrics = $guestmetricmap[  $vm["guest_metrics"] ];
121                            $network = get_network_string($guest_metrics["networks"])  ;
122                          $tmpos =  explode('|', $guest_metrics["os_version"]["name"]);                          $tmpos =  explode('|', $guest_metrics["os_version"]["name"]);
123                          $os = $tmpos[0];                          $os = $tmpos[0];
124                          $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"];
125    
126                            $maxmem = round($xenserver->VM__query_data_source($vmref, "memory") / (1024*1024) );
127                            $free = round( $xenserver->VM__query_data_source($vmref, "memory_internal_free") / 1024 );      
128                            $curmem = $maxmem - $free;
129                    } else {                        
130                            $maxmem = $vm["memory_static_max"] / (1024*1024);
131                  }                  }
132    
133                  $cpusum = 0.0;                  $cpusum = 0.0;
134                  for ($i=0; $i<$cpus; $i++) {                  for ($i=0; $i<$cpus; $i++) {
135                          $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);                          $cpusum += $xenserver->VM__query_data_source($vmref, "cpu" . $i);
136                  }                        }      
137                  $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;  
138    
139                  foreach($vm["consoles"] as $conref) {                  foreach($vm["consoles"] as $conref) {
140                          $con = $xenserver->console__get_record( $conref );                          //$con = $xenserver->console__get_record( $conref );
141                                            $con = $consolemap[$conref];
142    
143                          if ($con["protocol"] == "rfb") {                          if ($con["protocol"] == "rfb") {
144                                                            $session = $xenserver->get_id();
145                                  $url = urlencode( $con["location"] );                                  $url = urlencode( $con["location"] );
                                 $session = $xenserver->get_id();  
146                          }                          }
147                  }                  }
148    
149          }      } else {
150                    $maxmem = $vm["memory_static_max"] / (1024*1024);
151            }
152    
153    
154    
# Line 116  foreach($vms_array as $vmref => $vm) { Line 163  foreach($vms_array as $vmref => $vm) {
163          echo "<cpuavg>{$cpuavg}</cpuavg>";          echo "<cpuavg>{$cpuavg}</cpuavg>";
164          echo "<curmem>{$curmem}</curmem>";          echo "<curmem>{$curmem}</curmem>";
165          echo "<maxmem>{$maxmem}</maxmem>";          echo "<maxmem>{$maxmem}</maxmem>";
166            echo "<cpus>{$cpus}</cpus>";
167                    
168          echo "</vm>";            echo "</vm>";  
169  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20