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

raeburn raeburn at source.lon-capa.org
Sun Oct 5 09:34:02 EDT 2014


raeburn		Sun Oct  5 13:34:02 2014 EDT

  Modified files:              
    /loncom/interface	domainprefs.pm 
  Log:
  Bug 6675
  - Add domain configuration setting on balancer server for non-SSO users
    with IP mismatch during offload for case where balancer server's default
    domain is not domain being configured.
  - If loadbalancing configuration change affects behavior of servers 
    which host offloaded sessions (e.g., ip change detected in migration)
    expire cached loadbalancing config on load balancer, and servers which
    might be set as "specific" offloaded session recipient.
  
  
Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.252 loncom/interface/domainprefs.pm:1.253
--- loncom/interface/domainprefs.pm:1.252	Sat Oct  4 02:41:44 2014
+++ loncom/interface/domainprefs.pm	Sun Oct  5 13:34:01 2014
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to set domain-wide configuration settings
 #
-# $Id: domainprefs.pm,v 1.252 2014/10/04 02:41:44 raeburn Exp $
+# $Id: domainprefs.pm,v 1.253 2014/10/05 13:34:01 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3661,9 +3661,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)) {
@@ -3753,7 +3754,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 = '';
                 }
@@ -3816,7 +3817,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;
@@ -10680,6 +10681,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;
@@ -10808,6 +10810,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;
@@ -10852,6 +10855,19 @@
                                                         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;
+                                                            }
+                                                        }
+                                                    }
+                                                }
                                             }
                                         } else {
                                             $balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type});




More information about the LON-CAPA-cvs mailing list