You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by jf...@apache.org on 2011/10/03 20:57:11 UTC
svn commit: r1178519 - in /incubator/vcl/trunk/web: .ht-inc/vm.php js/vm.js
Author: jfthomps
Date: Mon Oct 3 18:57:10 2011
New Revision: 1178519
URL: http://svn.apache.org/viewvc?rev=1178519&view=rev
Log:
VCL-400
virtual hosts page shows all unassigned vms instead of checking which ones the user can access
vm.php:
modified editVMInfo - added section (noaccessdiv) to display assigned VMs user does not have access to remove
modified vmhostdata - added $noaccess - contains assigned VMs that user does not have access to remove from host; don't put unassigned VMs user has no access to in $freevms or $allvms
vm.js - modified VMHostDataCB - unhide and populate noaccessdiv if there are assigned VMs that user does not have access to remove; hide it if user has access to all VMs
Modified:
incubator/vcl/trunk/web/.ht-inc/vm.php
incubator/vcl/trunk/web/js/vm.js
Modified: incubator/vcl/trunk/web/.ht-inc/vm.php
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/vm.php?rev=1178519&r1=1178518&r2=1178519&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/vm.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/vm.php Mon Oct 3 18:57:10 2011
@@ -120,6 +120,10 @@ function editVMInfo() {
print "</select><br>\n";
print "State of selected vm:<br>\n";
print "<span id=vmstate></span>\n";
+ print "<div id=\"noaccessdiv\" class=\"hidden\"><hr>VMs assigned to ";
+ print "host that you<br>do not have access to remove:<br><br>\n";
+ print "<div id=\"noaccess\"></div>\n";
+ print "</div>\n";
print "</td>\n";
# transfer buttons
print "<td style=\"vertical-align: middle;\">\n";
@@ -308,6 +312,7 @@ function vmhostdata() {
sendJSON(array('failed' => 'noaccess'));
return;
}
+ $computers = $resources['computer'];
# get vms assigned to vmhost
$query = "SELECT c.id, "
@@ -326,18 +331,24 @@ function vmhostdata() {
$ids = array();
$allvms = array();
$currvms = array();
+ $noaccess = array();
$freevms = array();
while($row = mysql_fetch_assoc($qh)) {
if($row['vmhostid'] == $vmhostid) {
$ids[$row['id']] = $row['hostname'];
- $currvms[$row['id']] = array('id' => $row['id'],
- 'name' => $row['hostname'],
- 'state' => $row['state']);
+ if(array_key_exists($row['id'], $computers))
+ $currvms[$row['id']] = array('id' => $row['id'],
+ 'name' => $row['hostname'],
+ 'state' => $row['state']);
+ else
+ $noaccess[$row['id']] = array('id' => $row['id'],
+ 'name' => $row['hostname'],
+ 'state' => $row['state']);
$allvms[] = array('id' => $row['id'],
'name' => $row['hostname'],
'inout' => 1);
}
- else {
+ elseif(array_key_exists($row['id'], $computers)) {
$freevms[] = array('id' => $row['id'],
'name' => $row['hostname']);
$allvms[] = array('id' => $row['id'],
@@ -347,6 +358,7 @@ function vmhostdata() {
}
uasort($allvms, "sortKeepIndex");
uasort($currvms, "sortKeepIndex");
+ uasort($noaccess, "sortKeepIndex");
uasort($freevms, "sortKeepIndex");
$keys = array_keys($ids);
@@ -376,6 +388,7 @@ function vmhostdata() {
$allvms = array_merge($allvms);
$currvms = array_merge($currvms);
+ $noaccess = array_merge($noaccess);
$freevms = array_merge($freevms);
$cont = addContinuationsEntry('AJchangeVMprofile', array(), 3600, 1, 0);
$arr = array('vmlimit' => $data[$vmhostid]['vmlimit'],
@@ -383,6 +396,7 @@ function vmhostdata() {
'continuation' => $cont,
'allvms' => $allvms,
'currvms' => $currvms,
+ 'noaccess' => $noaccess,
'freevms' => $freevms,
'movevms' => $movevms);
sendJSON($arr);
Modified: incubator/vcl/trunk/web/js/vm.js
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/web/js/vm.js?rev=1178519&r1=1178518&r2=1178519&view=diff
==============================================================================
--- incubator/vcl/trunk/web/js/vm.js (original)
+++ incubator/vcl/trunk/web/js/vm.js Mon Oct 3 18:57:10 2011
@@ -99,6 +99,18 @@ function VMHostDataCB(data, ioArgs) {
for(var i = 0; i < data.items.freevms.length; i++) {
outobj.options[outobj.options.length] = new Option(data.items.freevms[i].name, data.items.freevms[i].id);
}
+ if(data.items.noaccess.length) {
+ dojo.removeClass('noaccessdiv', 'hidden');
+ var tmp = new Array();
+ for(var i = 0; i < data.items.noaccess.length; i++) {
+ tmp.push(data.items.noaccess[i].name);
+ }
+ dojo.byId('noaccess').innerHTML = tmp.join('<br>');
+ }
+ else {
+ dojo.addClass('noaccessdiv', 'hidden');
+ dojo.byId('noaccess').innerHTML = '';
+ }
if(data.items.movevms.length) {
document.getElementById('movevms').className = 'shown';