--- loncom/Lond.pm 2012/04/26 19:51:40 1.2 +++ loncom/Lond.pm 2012/04/26 20:00:57 1.3 @@ -1,6 +1,6 @@ # The LearningOnline Network # -# $Id: Lond.pm,v 1.2 2012/04/26 19:51:40 droeschl Exp $ +# $Id: Lond.pm,v 1.3 2012/04/26 20:00:57 droeschl Exp $ # # Copyright Michigan State University Board of Trustees # @@ -300,6 +300,30 @@ sub useable_role { } +sub get_courseinfo_hash { + my ($cnum,$cdom,$home) = @_; + my %info; + eval { + local($SIG{ALRM}) = sub { die "timeout\n"; }; + local($SIG{__DIE__})='DEFAULT'; + alarm(3); + %info = &Apache::lonnet::courseiddump($cdom,'.',1,'.','.',$cnum,1,[$home],'.'); + alarm(0); + }; + if ($@) { + if ($@ eq "timeout\n") { + &logthis("WARNING courseiddump for $cnum:$cdom from $home timedout"); + } else { + &logthis("WARNING unexpected error during eval of call for courseiddump from $home"); + } + } else { + if (ref($info{$cdom.'_'.$cnum}) eq 'HASH') { + my $hashid = $cdom.':'.$cnum; + return &Apache::lonnet::do_cache_new('courseinfo',$hashid,$info{$cdom.'_'.$cnum},600); + } + } + return; +} @@ -408,6 +432,19 @@ the version available on the client serv is compatible, 1 will be returned. +=item get_courseinfo_hash( $cnum, $cdom, $home ) + +get_courseinfo_hash() is used to retrieve course information from the db +file: nohist_courseids.db for a course for which the current server is *not* +the home server. + +A hash of a hash will be retrieved. The outer hash contains a single key -- +courseID -- for the course for which the data are being requested. +The contents of the inner hash, for that single item in the outer hash +are returned (and cached in memcache for 10 minutes). + + + =back =head1 BUGS