Author: jfthomps
Date: Thu Apr  8 14:02:29 2010
New Revision: 931949

URL: http://svn.apache.org/viewvc?rev=931949&view=rev
Log:
VCL-233

computers.php: modified submitCompStateChange - added $fails array to track any 
computers for which simpleAddRequest returned 0 which are then reported by the 
page output

vm.php:
-modified AJvmFromHost - if simpleAddRequest returns 0, add computer to $fails 
array with a reason of 'nomgtnode'
-modified AJvmFromHostDelayed - added $fails array to track computers for which 
simpleAddRequest returns 0 and return with JSON data

vm.js: modified vmFromHostCB and reloadVMhostCB - changed section dealing with 
fails to print two different messages based on the failed reason

Modified:
    incubator/vcl/trunk/web/.ht-inc/computers.php
    incubator/vcl/trunk/web/.ht-inc/vm.php
    incubator/vcl/trunk/web/js/vm.js

Modified: incubator/vcl/trunk/web/.ht-inc/computers.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/computers.php?rev=931949&r1=931948&r2=931949&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/computers.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/computers.php Thu Apr  8 14:02:29 2010
@@ -2453,9 +2453,6 @@ function submitCompStateChange() {
                $data["notes"] = $user["unityid"] . " " . 
unixToDatetime(time()) . "@"
                               . $data["notes"];
                $vclreloadid = getUserlistID('vclrel...@local');
-               // get semaphore lock
-               if(! semLock())
-                       abort(3);
                $noaction = array();
                $changenow = array();
                $changeasap = array();
@@ -2468,6 +2465,9 @@ function submitCompStateChange() {
                }
                $passes = array();
                $fails = array();
+               // get semaphore lock
+               if(! semLock())
+                       abort(3);
                foreach($changeasap as $compid) {
                        # TODO what about blockComputers?
                        # try to move future reservations off of computer
@@ -2550,7 +2550,7 @@ function submitCompStateChange() {
                }
                if(count($fails)) {
                        print "The following computers currently have 
reservations on them ";
-                       print "but no functional management node was found for 
them. Nothing ";
+                       print "but no functional management node was found for 
them. Nothing will ";
                        print "be done with them at this time:\n";
                        print "<TABLE>\n";
                        print "  <TR>\n";
@@ -2585,16 +2585,20 @@ function submitCompStateChange() {
                        $keys = array_keys($data['profiles']);
                        $profileid = $keys[0];
                }
+               $vclreloadid = getUserlistID('vclrel...@local');
+               $imagerevisionid = 
getProductionRevisionid($data['profiles'][$profileid]['imageid']);
                $noaction = array();
                $changenow = array();
                $changeasap = array();
                $changetimes = array();
+               $fails = array();
                foreach($data['computerids'] as $compid) {
                        if($computers[$compid]['state'] == 'vmhostinuse')
                                array_push($noaction, $compid);
                        else
                                array_push($changeasap, $compid);
                }
+               // get semaphore lock
                if(! semLock())
                        abort(3);
                foreach($changeasap as $compid) {
@@ -2625,12 +2629,13 @@ function submitCompStateChange() {
                                $end = $start + SECINYEAR; # don't want anyone 
making a future reservation for this machine
                                $start = unixToDatetime($start);
                                $end = unixToDatetime($end);
-                               $imagerevisionid = 
getProductionRevisionid($data['profiles'][$profileid]['imageid']);
-                               $vclreloadid = getUserlistID('vclrel...@local');
-                               simpleAddRequest($compid, 
$data['profiles'][$profileid]['imageid'],
-                                                $imagerevisionid, $start, 
$end, 21, $vclreloadid);
+                               if(simpleAddRequest($compid, 
$data['profiles'][$profileid]['imageid'],
+                                                   $imagerevisionid, $start, 
$end, 21, $vclreloadid)) {
+                                       $changenow[] = $compid;
+                               }
+                               else
+                                       $fails[] = $compid;
                                unset_by_val($compid, $changeasap);
-                               array_push($changenow, $compid);
 
                                # check for existing vmhost entry
                                $query = "SELECT id, "
@@ -2674,6 +2679,19 @@ function submitCompStateChange() {
                        print "</TABLE>\n";
                        print "<br>\n";
                }
+               if(count($fails)) {
+                       print "The following computers had no reservations on 
them but no ";
+                       print "functional management node was found to reload 
them with the ";
+                       print "VM host image. Nothing will be done with them at 
this time:\n";
+                       print "<TABLE>\n";
+                       foreach($passes as $compid) {
+                               print "  <TR>\n";
+                               print "    <TD align=center><font 
color=\"ff0000\">{$computers[$compid]['hostname']}</font></TD>\n";
+                               print "  </TR>\n";
+                       }
+                       print "</TABLE>\n";
+                       print "<br>\n";
+               }
                if(count($changeasap)) {
                        print "The following computers currently have 
reservations on them ";
                        print "and cannot be placed in the vmhostinuse state at 
this time:\n";

Modified: incubator/vcl/trunk/web/.ht-inc/vm.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/vm.php?rev=931949&r1=931948&r2=931949&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/vm.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/vm.php Thu Apr  8 14:02:29 2010
@@ -580,10 +580,17 @@ function AJvmFromHost() {
                        // if no reservations on computer, submit reload 
                        #    reservation so vm gets stopped on host
                        $reqid = simpleAddRequest($compid, 4, 3, $start, $end, 
18, $vclreloadid);
-                       $rems[] = array('id' => $compid,
-                                       'hostname' => 
$compdata[$compid]['hostname'],
-                                       'reqid' => $reqid,
-                                       'time' => 'immediately');
+                       if($reqid == 0) {
+                               $fails[] = array('id' => $compid,
+                                                'name' => 
$compdata[$compid]['hostname'],
+                                                'reason' => 'nomgtnode');
+                       }
+                       else {
+                               $rems[] = array('id' => $compid,
+                                               'hostname' => 
$compdata[$compid]['hostname'],
+                                               'reqid' => $reqid,
+                                               'time' => 'immediately');
+                       }
                }
                else {
                        # existing reservation on computer, find end time and 
prompt user
@@ -632,14 +639,17 @@ function AJvmFromHost() {
 function AJvmFromHostDelayed() {
        $data = getContinuationVar();
        $vclreloadid = getUserlistID('vclrel...@local');
+       $fails = array();
        foreach($data as $comp) {
                $end = datetimeToUnix($comp['end2']) + SECINMONTH;
                $end = unixToDatetime($end);
-               simpleAddRequest($comp['id'], 4, 3, $comp['end2'], $end, 18, 
$vclreloadid);
+               if(! simpleAddRequest($comp['id'], 4, 3, $comp['end2'], $end, 
18, $vclreloadid))
+                       $fails[] = array('name' => $comp['hostname'],
+                                        'reason' => 'nomgtnode');
        }
        header('Content-Type: text/json-comment-filtered; charset=utf-8');
        $cont = addContinuationsEntry('vmhostdata');
-       $arr = array('msg' => 'SUCCESS', 'cont' => $cont);
+       $arr = array('msg' => 'SUCCESS', 'cont' => $cont, 'fails' => $fails);
        print '/*{"items":' . json_encode($arr) . '}*/';
 }
 

Modified: incubator/vcl/trunk/web/js/vm.js
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/js/vm.js?rev=931949&r1=931948&r2=931949&view=diff
==============================================================================
--- incubator/vcl/trunk/web/js/vm.js (original)
+++ incubator/vcl/trunk/web/js/vm.js Thu Apr  8 14:02:29 2010
@@ -431,11 +431,18 @@ function vmFromHostCB(data, ioArgs) {
        }
 
        if(fails.length) {
-               var msg = 'You do not have access to remove the following 
vm(s):\n\n';
+               var msg1 = '';
+               var msg2 = '';
                for(var i = 0; i < fails.length; i++) {
-                       msg += fails[i].name + '\n';
+                       if(fails[i].reason == 'noaccess')
+                               msg1 += fails[i].name + '\n';
+                       else if(fails[i].reason == 'nomgtnode')
+                               msg2 += fails[i].name + '\n';
                }
-               alert(msg);
+               if(msg1.length)
+                       alert('You do not have access to remove the following 
vm(s):\n\n' + msg1);
+               if(msg2.length)
+                       alert('The following vms could not be removed because 
no management node was available for them:\n\n' + msg2);
        }
 
        var checks = data.items.checks;
@@ -471,12 +478,19 @@ function reloadVMhostCB(data, ioArgs) {
                document.body.style.cursor = 'default';
                return;
        }
-       if(data.items.failed && data.items.fails.length) {
-               var msg = 'You do not have access to remove the following 
vm(s):\n\n';
+       if(data.items.fails.length) {
+               var msg1 = '';
+               var msg2 = '';
                for(var i = 0; i < data.items.fails.length; i++) {
-                       msg += data.items.fails[i].name + '\n';
+                       if(data.items.fails[i].reason == 'noaccess')
+                               msg1 += data.items.fails[i].name + '\n';
+                       else if(data.items.fails[i].reason == 'nomgtnode')
+                               msg2 += data.items.fails[i].name + '\n';
                }
-               alert(msg);
+               if(msg1.length)
+                       alert('You do not have access to remove the following 
vm(s):\n\n' + msg1);
+               if(msg2.length)
+                       alert('No management node was available to move the 
following VMs off of this host; therefore, nothing will be done at this 
time:\n\n' + msg2);
        }
        if(data.items.msg == 'SUCCESS')
                getVMHostData(data.items.cont);


Reply via email to