[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /cgi takeoffline.pl

raeburn raeburn at source.lon-capa.org
Tue Mar 10 23:33:22 EDT 2015


raeburn		Wed Mar 11 03:33:22 2015 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/cgi	takeoffline.pl 
  Log:
  - For 2.11
    Backport 1.8
  
  
-------------- next part --------------
Index: loncom/cgi/takeoffline.pl
diff -u loncom/cgi/takeoffline.pl:1.6 loncom/cgi/takeoffline.pl:1.6.12.1
--- loncom/cgi/takeoffline.pl:1.6	Thu Apr 23 17:29:58 2009
+++ loncom/cgi/takeoffline.pl	Wed Mar 11 03:33:22 2015
@@ -2,7 +2,7 @@
 $|=1;
 # Take machine offline, reroute traffic
 #
-# $Id: takeoffline.pl,v 1.6 2009/04/23 17:29:58 bisitz Exp $
+# $Id: takeoffline.pl,v 1.6.12.1 2015/03/11 03:33:22 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -31,6 +31,7 @@
 use lib '/home/httpd/lib/perl/';
 use Apache::lonlocal;
 use Apache::loncommon;
+use Apache::lonnet;
 use LONCAPA::loncgi;
 use LONCAPA::lonauthcgi;
 
@@ -62,6 +63,7 @@
     } else {
         my $js = <<ENDJS;
 <script type="text/javascript">
+// <![CDATA[
 
 function setphase(form) {
     var subaction = '/cgi-bin/takeoffline.pl?phase=two';
@@ -69,6 +71,7 @@
     form.submit();
 }
 
+// ]]>
 </script>
 ENDJS
         print &Apache::loncommon::start_page('Take Offline',$js,
@@ -80,7 +83,6 @@
 }
 
 sub phaseone {
-#    print '<html><body bgcolor="#FFFFFF">
     print '<h2>'.&Apache::lonlocal::mt('Take Offline').'</h2>';
     my ($is_dc, at okmachines,%servers);
     my @poss_domains = &Apache::lonnet::current_machine_domains();
@@ -100,14 +102,14 @@
     }
     my $ip = $ENV{'REMOTE_ADDR'};
     my $lonhost = $Apache::lonnet::perlvar{'lonHostID'};
-    print '<p>'.&mt("When a LON-CAPA server is 'taken offline' using this utility, the standard log-in page will be replaced with one of the following:").
+    print '<p>'.&mt("When a LON-CAPA server is 'taken offline' using this utility, the standard log-in page will be replaced with one of the following:").'</p>'.
           '<ul><li>'.&mt('A page which automatically performs a redirect to another server in your domain - the server must be specified below.').'</li>'.
-              '<li>'.&mt('A page which announces that this LON-CAPA server is offline.').'</li></ul></p>';
+              '<li>'.&mt('A page which announces that this LON-CAPA server is offline.').'</li></ul>';
     print '<p>'.&mt("Once a server is offline, the [_1]'take online'[_2] utility can be used to reverse this, but you should verify that you will still be able to access that script once the server is in an offline state.",'<a href="/cgi-bin/takeonline.pl">','</a>').'</p>';
-    print '<p>'.&mt("In common with other Domain Status pages the 'take online' script is accessible from certain IP addresses:").'<ul>'.
+    print '<p>'.&mt("In common with other Domain Status pages the 'take online' script is accessible from certain IP addresses:").'</p><ul>'.
           '<li>'.&mt('The loopback device - 127.0.0.1 (localhost) - for times when you are web browsing from the server itself.').'</li>'.
-          '<li>'.&mt("Specified IP addresses set via the configuration for [_1]Access to Server Status Pages[_2] for domain(s) hosted on the server.",'<a href="/adm/domainprefs?phase=display&actions=serverstatuses">','</a>').'</li></ul><p>'.
-          &mt("Once the server is offline you will not be able to log-in directly to select a Domain Coordinator role to use the 'Take online' script, unless IP-based controls provide your access.").'<br />'.&mt("However, you will be able to log-in to a different server in the LON-CAPA network, select a Domain Coordinator role in this server's domain, and then use: [_1] to migrate you session to this machine.","<br /><tt>/adm/switchserver?otherserver=$lonhost</tt>").'<br /></p><p><hr /></p>';
+          '<li>'.&mt("Specified IP addresses set via the configuration for [_1]Access to Server Status Pages[_2] for domain(s) hosted on the server.",'<a href="/adm/domainprefs?phase=display&actions=serverstatuses">','</a>').'</li></ul><p>'.
+          &mt("Once the server is offline you will not be able to log-in directly to select a Domain Coordinator role to use the 'Take online' script, unless IP-based controls provide your access.").'<br />'.&mt("However, you will be able to log-in to a different server in the LON-CAPA network, select a Domain Coordinator role in this server's domain, and then use: [_1] to migrate you session to this machine.","<br /><tt>/adm/switchserver?otherserver=$lonhost</tt>").'<br /></p><hr />';
     if ($ip eq '127.0.0.1') {
         print '<div class="LC_info">'.&mt('You are accessing this page from the loopback device.').'</div>';
     } elsif (!@okmachines) {
@@ -121,7 +123,7 @@
     if ($ENV{'QUERY_STRING'}) {
         ($otherserver,$domain)=split(/\&/,$ENV{'QUERY_STRING'});
     }
-    print '<p><hr /></p><p><form method="post" name="takeoffline" onSubmit="javascript:setphase(this);">';
+    print '<hr /><form method="post" name="takeoffline" onsubmit="javascript:setphase(this);" action="">';
 
     my $options;
     if ($domain) {
@@ -131,11 +133,10 @@
                     next if ($hostid eq $lonhost);
                     my $selchk = '';
                     if ($otherserver eq $hostid) {
-                        $selchk = 'selected="selected"';
+                        $selchk = ' selected="selected"';
                     }
                     $options .=
-   "<option value=\"$hostid&$domain\" $selchk>"."\n".
-   "$hostid ".&mt('Domain: [_1], Hostname: [_2]',$domain,$servers{$domain}{$hostid}).'</option>'."\n";
+                        "<option value=\"$hostid&$domain\"$selchk>$servers{$domain}{$hostid}</option>\n";
                 }
             }
         }
@@ -149,11 +150,10 @@
                 $allhosts{$hostid} = 1;
                 my $selchk = '';
                 if ($otherserver eq $hostid) {
-                    $selchk = 'selected="selected"';
+                    $selchk = ' selected="selected"';
                 }
-                $options .=  
-               "<option value=\"$hostid&$dom\" $selchk>".
-               $hostid.'</option>';
+                $options .=
+                    "<option value=\"$hostid&$dom\"$selchk>$servers{$dom}{$hostid}</option>\n";
             }
         }
     }
@@ -173,10 +173,11 @@
     my ($reroute) = @_;
     print '<h2>'.&Apache::lonlocal::mt('Take Offline').'</h2>';
     my $statusmsg;
-    if ($reroute) {
+    if ($reroute ne '') {
         my ($otherserver,$domain)=split(/\&/,$reroute);
-        if (&reroute($otherserver,$domain)) {
-            print &Apache::lonlocal::mt('Rerouting to [_1]',$otherserver);
+        my $otherhostname = &reroute($otherserver,$domain);
+        if ($otherhostname ne '') {
+            print &Apache::lonlocal::mt('Rerouting to [_1]',$otherhostname);
             $statusmsg = "status=rerouting&server=$otherserver&domain=$domain&time=".time.
                          "by=$Apache::lonnet::env{'user.name'}:$Apache::lonnet::env{'user.domain'}";
         }
@@ -207,22 +208,30 @@
 
 sub reroute {
     my ($otherserver,$domain) = @_;
-    if (open (OUT,'>/home/httpd/html/index.html')) {
-        print OUT (<<ENDNEWINDEX);
-<html>
+    my $otherhostname = &Apache::lonnet::hostname($otherserver);
+    my $protocol = $Apache::lonnet::protocol{$otherserver};
+    $protocol = 'http' if ($protocol ne 'https');
+    if ($otherhostname ne '') {
+        if (open (OUT,'>/home/httpd/html/index.html')) {
+            print OUT (<<ENDNEWINDEX);
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
   <title>Welcome to the LearningOnline Network with CAPA</title>
-  <meta HTTP-EQUIV="Refresh" CONTENT="0.5; url=http://$otherserver/adm/login?domain=$domain">
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+  <meta http-equiv="refresh" content="0.5; url=$protocol://$otherhostname/adm/login?domain=$domain">
+  <meta http-equiv="pragma" content="no-cache" />
  </head>
- <body style="background-color:"#004400"; margin: 0px;">
-  <img src="/adm/lonIcons/header.gif" />
-<p><font color="#FFFFFF">Connecting to
-<a href="http://$otherserver/adm/login?domain=$domain"><font color="#FFFFFF">http://$otherserver/</font></a></font></p>
+ <body style="background-color:#004400; margin: 0px;">
+  <img src="/adm/lonIcons/header.gif" alt="loncapa banner" />
+<p style="color:#ffffff">Connecting to 
+<a href="$protocol://$otherhostname/adm/login?domain=$domain" style="color:#ffffff">$protocol://$otherhostname/</a></p>
 </body>
 </html>
 ENDNEWINDEX
-       close(OUT);
-       return 'ok';
+            close(OUT);
+            return $otherhostname;
+        }
     }
     return;
 }


More information about the LON-CAPA-cvs mailing list