version 1.1125, 2011/08/05 04:35:50
|
version 1.1126, 2011/08/09 00:28:51
|
Line 1142 sub spare_can_host {
|
Line 1142 sub spare_can_host {
|
|
|
sub this_host_spares { |
sub this_host_spares { |
my ($dom) = @_; |
my ($dom) = @_; |
my $cachetime = 60*60*24; |
my ($dom_in_use,$lonhost_in_use,$result); |
my @hosts = ¤t_machine_ids(); |
my @hosts = ¤t_machine_ids(); |
foreach my $lonhost (@hosts) { |
foreach my $lonhost (@hosts) { |
if (&host_domain($lonhost) eq $dom) { |
if (&host_domain($lonhost) eq $dom) { |
my ($result,$cached)=&is_cached_new('spares',$dom); |
$dom_in_use = $dom; |
if (defined($cached)) { |
$lonhost_in_use = $lonhost; |
return $result; |
|
} else { |
|
my %domconfig = |
|
&Apache::lonnet::get_dom('configuration',['usersessions'],$dom); |
|
if (ref($domconfig{'usersessions'}) eq 'HASH') { |
|
if (ref($domconfig{'usersessions'}{'spares'}) eq 'HASH') { |
|
if (ref($domconfig{'usersessions'}{'spares'}{$lonhost}) eq 'HASH') { |
|
return &do_cache_new('spares',$dom,$domconfig{'usersessions'}{'spares'}{$lonhost},$cachetime); |
|
} |
|
} |
|
} |
|
} |
|
last; |
last; |
} |
} |
} |
} |
my $serverhomedom = &host_domain($perlvar{'lonHostID'}); |
if ($dom_in_use ne '') { |
my ($result,$cached)=&is_cached_new('spares',$serverhomedom); |
$result = &spares_for_offload($dom_in_use,$lonhost_in_use); |
|
} |
|
if (ref($result) ne 'HASH') { |
|
$lonhost_in_use = $perlvar{'lonHostID'}; |
|
$dom_in_use = &host_domain($lonhost_in_use); |
|
$result = &spares_for_offload($dom_in_use,$lonhost_in_use); |
|
if (ref($result) ne 'HASH') { |
|
$result = \%spareid; |
|
} |
|
} |
|
return $result; |
|
} |
|
|
|
sub spares_for_offload { |
|
my ($dom_in_use,$lonhost_in_use) = @_; |
|
my ($result,$cached)=&is_cached_new('spares',$dom_in_use); |
if (defined($cached)) { |
if (defined($cached)) { |
return $result; |
return $result; |
} else { |
} else { |
my %homedomconfig = |
my $cachetime = 60*60*24; |
&Apache::lonnet::get_dom('configuration',['usersessions'],$serverhomedom); |
my %domconfig = |
if (ref($homedomconfig{'usersessions'}) eq 'HASH') { |
&Apache::lonnet::get_dom('configuration',['usersessions'],$dom_in_use); |
if (ref($homedomconfig{'usersessions'}{'spares'}) eq 'HASH') { |
if (ref($domconfig{'usersessions'}) eq 'HASH') { |
if (ref($homedomconfig{'usersessions'}{'spares'}{$perlvar{'lonHostID'}}) eq 'HASH') { |
if (ref($domconfig{'usersessions'}{'spares'}) eq 'HASH') { |
return &do_cache_new('spares',$serverhomedom,$homedomconfig{'usersessions'}{'spares'}{$perlvar{'lonHostID'}},$cachetime); |
if (ref($domconfig{'usersessions'}{'spares'}{$lonhost_in_use}) eq 'HASH') { |
|
return &do_cache_new('spares',$dom_in_use,$domconfig{'usersessions'}{'spares'}{$lonhost_in_use},$cachetime); |
} |
} |
} |
} |
} |
} |
} |
} |
return \%spareid; |
return; |
} |
} |
|
|
# ---------------------- Find the homebase for a user from domain's lib servers |
# ---------------------- Find the homebase for a user from domain's lib servers |