[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm /lonnet/perl lonnet.pm
raeburn
raeburn at source.lon-capa.org
Thu Jan 28 17:12:54 EST 2021
raeburn Thu Jan 28 22:12:54 2021 EDT
Modified files:
/loncom/interface loncommon.pm
/loncom/lonnet/perl lonnet.pm
Log:
- Switching user sessions for users from other institutions on next access
- Check if domain config for offload of users from other institutions
is in effect when finding a server to which to offload a user session.
- If current server's offload targets all set to switch on next access
set the offload target to the least loaded server in the user's domain.
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1351 loncom/interface/loncommon.pm:1.1352
--- loncom/interface/loncommon.pm:1.1351 Sat Jan 2 21:07:36 2021
+++ loncom/interface/loncommon.pm Thu Jan 28 22:12:53 2021
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.1351 2021/01/02 21:07:36 raeburn Exp $
+# $Id: loncommon.pm,v 1.1352 2021/01/28 22:12:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -8599,7 +8599,7 @@
unless (&Apache::lonnet::allowed('mau',$dom_in_use)) {
my %domdefs = &Apache::lonnet::get_domain_defaults($dom_in_use);
my $lonhost = $Apache::lonnet::perlvar{'lonHostID'};
- my $offload;
+ my ($offload,$offloadoth);
if (ref($domdefs{'offloadnow'}) eq 'HASH') {
if ($domdefs{'offloadnow'}{$lonhost}) {
$offload = 1;
@@ -8612,6 +8612,7 @@
(!(($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')))) {
unless (&Apache::lonnet::shared_institution($env{'user.domain'})) {
$offload = 1;
+ $offloadoth = 1;
$dom_in_use = $env{'user.domain'};
}
}
@@ -8620,6 +8621,12 @@
}
if ($offload) {
my $newserver = &Apache::lonnet::spareserver(30000,undef,1,$dom_in_use);
+ if (($newserver eq '') && ($offloadoth)) {
+ my @domains = &Apache::lonnet::current_machine_domains();
+ if (($dom_in_use ne '') && (!grep(/^\Q$dom_in_use\E$/, at domains))) {
+ ($newserver) = &Apache::lonnet::choose_server($dom_in_use);
+ }
+ }
if (($newserver) && ($newserver ne $lonhost)) {
my $numsec = 5;
my $timeout = $numsec * 1000;
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.1438 loncom/lonnet/perl/lonnet.pm:1.1439
--- loncom/lonnet/perl/lonnet.pm:1.1438 Sun Jan 17 01:58:56 2021
+++ loncom/lonnet/perl/lonnet.pm Thu Jan 28 22:12:54 2021
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.1438 2021/01/17 01:58:56 raeburn Exp $
+# $Id: lonnet.pm,v 1.1439 2021/01/28 22:12:54 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1445,6 +1445,15 @@
$canhost = 0;
}
}
+ if ($canhost) {
+ if (ref($defdomdefaults{'offloadoth'}) eq 'HASH') {
+ if ($defdomdefaults{'offloadoth'}{$try_server}) {
+ unless (&shared_institution($udom,$try_server)) {
+ $canhost = 0;
+ }
+ }
+ }
+ }
if (($canhost) && ($uint_dom)) {
my @intdoms;
my $internet_names = &get_internet_names($try_server);
@@ -2689,6 +2698,9 @@
if (ref($domconfig{'usersessions'}{'offloadnow'}) eq 'HASH') {
$domdefaults{'offloadnow'} = $domconfig{'usersessions'}{'offloadnow'};
}
+ if (ref($domconfig{'usersessions'}{offloadoth'} eq 'HASH') {
+ $domdefaults{'offloadoth'} = $domconfig{'usersessions'}{'offloadoth'};
+ }
}
if (ref($domconfig{'selfenrollment'}) eq 'HASH') {
if (ref($domconfig{'selfenrollment'}{'admin'}) eq 'HASH') {
@@ -14217,9 +14229,12 @@
}
sub shared_institution {
- my ($dom) = @_;
+ my ($dom,$lonhost) = @_;
+ if ($lonhost eq '') {
+ $lonhost = $perlvar{'lonHostID'};
+ }
my $same_intdom;
- my $hostintdom = &internet_dom($perlvar{'lonHostID'});
+ my $hostintdom = &internet_dom($lonhost);
if ($hostintdom ne '') {
my %iphost = &get_iphost();
my $primary_id = &domain($dom,'primary');
More information about the LON-CAPA-cvs
mailing list