--- loncom/interface/domainprefs.pm 2014/07/20 00:11:43 1.160.6.52 +++ loncom/interface/domainprefs.pm 2014/10/04 02:44:18 1.160.6.54 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.160.6.52 2014/07/20 00:11:43 raeburn Exp $ +# $Id: domainprefs.pm,v 1.160.6.54 2014/10/04 02:44:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -6053,7 +6053,7 @@ sub modify_login { if (!$privkey) { $chgtxt .= '
  • '.&mt('Private key deleted').'
  • '; } else { - $chgtxt .= '
  • '.&mt('Private key set to [_1]',$pubkey).'
  • '; + $chgtxt .= '
  • '.&mt('Private key set to [_1]',$privkey).'
  • '; } $chgtxt .= ''; $resulttext .= '
  • '.$chgtxt.'
  • '; @@ -10774,16 +10774,17 @@ sub modify_loadbalancing { \%defaultshash,$dom); if ($putresult eq 'ok') { if (keys(%changes) > 0) { + my %toupdate; if (ref($changes{'delete'}) eq 'ARRAY') { foreach my $balancer (sort(@{$changes{'delete'}})) { $resulttext .= '
  • '.&mt('Load Balancing discontinued for: [_1]',$balancer).'
  • '; - my $cachekey = &escape('loadbalancing').':'.&escape($dom); - &Apache::lonnet::remote_devalidate_cache($balancer,[$cachekey]); + $toupdate{$balancer} = 1; } } if (ref($changes{'add'}) eq 'ARRAY') { foreach my $balancer (sort(@{$changes{'add'}})) { $resulttext .= '
  • '.&mt('Load Balancing enabled for: [_1]',$balancer); + $toupdate{$balancer} = 1; } } if (ref($changes{'curr'}) eq 'HASH') { @@ -10826,6 +10827,13 @@ sub modify_loadbalancing { } elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') || ($rule eq 'balancer') || ($rule eq 'offloadedto')) { $balancetext = $ruletitles{$rule}; + if (($rule eq 'balancer') || ($rule eq 'offloadedto')) { + foreach my $sparetype (@sparestypes) { + if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') { + map { $toupdate{$_} = 1; } (@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}}); + } + } + } } else { $balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type}); } @@ -10834,8 +10842,25 @@ sub modify_loadbalancing { } } } - my $cachekey = &escape('loadbalancing').':'.&escape($dom); - &Apache::lonnet::remote_devalidate_cache($balancer,[$cachekey]); + if (keys(%toupdate)) { + my %thismachine; + my $updatedhere; + my $cachetime = 60*60*24; + map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); + foreach my $lonhost (keys(%toupdate)) { + if ($thismachine{$lonhost}) { + unless ($updatedhere) { + &Apache::lonnet::do_cache_new('loadbalancing',$dom, + $defaultshash{'loadbalancing'}, + $cachetime); + $updatedhere = 1; + } + } else { + my $cachekey = &escape('loadbalancing').':'.&escape($dom); + &Apache::lonnet::remote_devalidate_cache($lonhost,[$cachekey]); + } + } + } } } if ($resulttext ne '') {