[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /interface domainprefs.pm

raeburn raeburn at source.lon-capa.org
Mon Oct 6 23:16:07 EDT 2014


raeburn		Tue Oct  7 03:16:07 2014 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/interface	domainprefs.pm 
  Log:
  - For 2.11
    - Backport 1.253, 1.254, 1.255.
  
  
-------------- next part --------------
Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.160.6.54 loncom/interface/domainprefs.pm:1.160.6.55
--- loncom/interface/domainprefs.pm:1.160.6.54	Sat Oct  4 02:44:18 2014
+++ loncom/interface/domainprefs.pm	Tue Oct  7 03:16:05 2014
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to set domain-wide configuration settings
 #
-# $Id: domainprefs.pm,v 1.160.6.54 2014/10/04 02:44:18 raeburn Exp $
+# $Id: domainprefs.pm,v 1.160.6.55 2014/10/07 03:16:05 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3642,9 +3642,10 @@
                     $disabled = ' disabled="disabled"';
                 }
                 $targettable .=
-                    '<td><label><input type="checkbox" name="loadbalancing_target_'.$balnum.'_'.$sparetype.'"'.
+                    '<td><span class="LC_nobreak"><label>'.
+                    '<input type="checkbox" name="loadbalancing_target_'.$balnum.'_'.$sparetype.'"'.
                     $checked.$disabled.' value="'.$chkboxval.'" id="loadbalancing_target_'.$balnum.'_'.$sparetype.'_'.$i.'" onclick="checkOffloads('."this,'$balnum','$sparetype'".');" /><span id="loadbalancing_targettxt_'.$balnum.'_'.$sparetype.'_'.$i.'"> '.$chkboxval.
-                    '</span></label></td>';
+                    '</span></label></span></td>';
                 my $rem = $i%($numinrow);
                 if ($rem == 0) {
                     if (($i > 0) && ($i < $numspares-1)) {
@@ -3734,7 +3735,7 @@
             if (ref($currrules) eq 'HASH') {
                 $current = $currrules->{$type};
             }
-            if (($type eq '_LC_external') || ($type eq '_LC_internetdom') || ($type eq '_LC_ipchange')) {
+            if (($type eq '_LC_external') || ($type eq '_LC_internetdom')) {
                 if ($dom ne &Apache::lonnet::host_domain($lonhost)) {
                     $current = '';
                 }
@@ -3786,7 +3787,7 @@
     my @rulenames;
     my %ruletitles = &offloadtype_text();
     if (($type eq '_LC_ipchangesso') || ($type eq '_LC_ipchange')) {
-        @rulenames = ('balancer','offloadedto');
+        @rulenames = ('balancer','offloadedto','specific');
     } else {
         @rulenames = ('default','homeserver');
         if ($type eq '_LC_external') {
@@ -3797,7 +3798,7 @@
         push(@rulenames,'none');
     }
     my $style = $targets_div_style;
-    if (($type eq '_LC_external') || ($type eq '_LC_internetdom') || ($type eq '_LC_ipchange')) {
+    if (($type eq '_LC_external') || ($type eq '_LC_internetdom')) {
         $style = $homedom_div_style;
     }
     my $space;
@@ -3848,8 +3849,13 @@
                    '<input type="radio" name="loadbalancing_rules_'.$balnum.'_'.$type.
                    '" id="loadbalancing_rules_'.$balnum.'_'.$type.'_'.$i.'" value="'.
                    $rule.'" onclick="balanceruleChange('."this.form,'$balnum','$type'".
-                   ')"'.$checked.' /> '.$ruletitles{$rulenames[$i]}.
-                   '</label>'.$extra.'</span><br />'."\n";
+                   ')"'.$checked.' /> ';
+        if (($rulenames[$i] eq 'specific') && ($type =~ /_LC_ipchange/)) {
+            $output .= $ruletitles{'particular'};
+        } else {
+            $output .= $ruletitles{$rulenames[$i]};
+        }
+        $output .= '</label>'.$extra.'</span><br />'."\n";
     }
     $output .= '</div></td></tr>'."\n";
     return $output;
@@ -3864,6 +3870,7 @@
            'none'             => 'No offload',
            'balancer'         => 'Session hosted on Load Balancer, after re-authentication',
            'offloadedto'      => 'Session hosted on offload server, after re-authentication',
+           'particular'       => 'Session hosted (after re-auth) on server:',
     );
     return %ruletitles;
 }
@@ -10661,6 +10668,7 @@
     my ($othertitle,$usertypes,$types) =
         &Apache::loncommon::sorted_inst_types($dom);
     my %servers = &Apache::lonnet::internet_dom_servers($dom);
+    my %libraryservers = &Apache::lonnet::get_servers($dom,'library');
     my @sparestypes = ('primary','default');
     my %typetitles = &sparestype_titles();
     my $resulttext;
@@ -10752,7 +10760,10 @@
                     $rule = $env{'form.loadbalancing_rules_'.$i.'_'.$type};
                 }
                 if ($rule eq 'specific') {
-                    $rule = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type};
+                    my $specifiedhost = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type};
+                    if (exists($servers{$specifiedhost})) {
+                        $rule = $specifiedhost;
+                    }
                 }
                 $defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type} = $rule;
                 if (ref($currrules{$balancer}) eq 'HASH') {
@@ -10789,6 +10800,7 @@
                 }
                 if (ref($changes{'curr'}) eq 'HASH') {
                     foreach my $balancer (sort(keys(%{$changes{'curr'}}))) {
+                        $toupdate{$balancer} = 1;
                         if (ref($changes{'curr'}{$balancer}) eq 'HASH') {
                             if ($changes{'curr'}{$balancer}{'targets'}) {
                                 my %offloadstr;
@@ -10825,14 +10837,37 @@
                                         if ($rule eq '') {
                                             $balancetext =  $ruletitles{'default'};
                                         } elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') ||
-                                                 ($rule eq 'balancer') || ($rule eq 'offloadedto')) {
-                                            $balancetext =  $ruletitles{$rule};
-                                            if (($rule eq 'balancer') || ($rule eq 'offloadedto')) {
+                                                 ($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) {
+                                            if (($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) {
                                                 foreach my $sparetype (@sparestypes) {
                                                     if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') {
                                                         map { $toupdate{$_} = 1; } (@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}});
                                                     }
                                                 }
+                                                foreach my $item (@{$alltypes}) {
+                                                    next if ($item =~  /^_LC_ipchange/);
+                                                    my $hasrule = $defaultshash{'loadbalancing'}{$balancer}{'rules'}{$item};
+                                                    if ($hasrule eq 'homeserver') {
+                                                        map { $toupdate{$_} = 1; } (keys(%libraryservers));
+                                                    } else {
+                                                        unless (($hasrule eq 'default') || ($hasrule eq 'none') || ($hasrule eq 'externalbalancer')) {
+                                                            if ($servers{$hasrule}) {
+                                                                $toupdate{$hasrule} = 1;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                                if (($rule eq 'balancer') || ($rule eq 'offloadedto')) {
+                                                    $balancetext =  $ruletitles{$rule};
+                                                } else {
+                                                    my $receiver = $defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type};
+                                                    $balancetext = $ruletitles{'particular'}.' '.$receiver;
+                                                    if ($receiver) {
+                                                        $toupdate{$receiver};
+                                                    }
+                                                }
+                                            } else {
+                                                $balancetext =  $ruletitles{$rule};
                                             }
                                         } else {
                                             $balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type});


More information about the LON-CAPA-cvs mailing list