--- loncom/Attic/lonManage 2003/08/18 10:25:46 1.9 +++ loncom/Attic/lonManage 2003/08/18 10:43:31 1.10 @@ -3,9 +3,9 @@ # # lonManage supports remote management of nodes in a LonCAPA cluster. # -# $Id: lonManage,v 1.9 2003/08/18 10:25:46 foxr Exp $ +# $Id: lonManage,v 1.10 2003/08/18 10:43:31 foxr Exp $ # -# $Id: lonManage,v 1.9 2003/08/18 10:25:46 foxr Exp $ +# $Id: lonManage,v 1.10 2003/08/18 10:43:31 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,6 +50,11 @@ # not the IP address of the host. # # $Log: lonManage,v $ +# Revision 1.10 2003/08/18 10:43:31 foxr +# Code/test ValidHost. The hosts.tab and the perl variables are read in as +# global hashes as a side effect. May later want to clean this up by making +# a separate getconfig function and hoisting the config reads into that. +# # Revision 1.9 2003/08/18 10:25:46 foxr # Write ReinitProcess function in terms of ValidHost and Transact. # @@ -80,9 +85,18 @@ # Add usage and skeleton documentation. # # + +# Modules required: + use strict; # Because it's good practice. use English; # Cause I like meaningful names. use Getopt::Long; +use LONCAPA::Configuration; # To handle configuration I/O. + +# File scoped variables: + +my %perlvar; # Perl variable defs from apache config. +my %hostshash; # Host table as a host indexed hash. sub Usage { print "Usage:"; @@ -187,10 +201,31 @@ sub ParseArgs { return @result; } +# +# Determine if the target host is valid. +# This is done by reading the current hosts.tab file. +# For the host to be valid, it must be inthe file. +# +# Parameters: +# host - Name of host to check on. +# Returns: +# true if host is valid. +# false if host is invalid. +# sub ValidHost { - return 1; + my $host = shift; + + my $perlvarref = LONCAPA::Configuration::read_conf('loncapa.conf'); + %perlvar = %{$perlvarref}; + my $hoststab = LONCAPA::Configuration::read_hosts( + "$perlvar{'lonTabDir'}/hosts.tab"); + %hostshash = %{$hoststab}; + + return defined $hostshash{$host}; + } sub Transact { + } # # Called to push a file to the remote system.