--- loncom/Attic/lonManage 2003/08/18 09:56:01 1.7 +++ loncom/Attic/lonManage 2003/08/18 10:18:21 1.8 @@ -3,9 +3,9 @@ # # lonManage supports remote management of nodes in a LonCAPA cluster. # -# $Id: lonManage,v 1.7 2003/08/18 09:56:01 foxr Exp $ +# $Id: lonManage,v 1.8 2003/08/18 10:18:21 foxr Exp $ # -# $Id: lonManage,v 1.7 2003/08/18 09:56:01 foxr Exp $ +# $Id: lonManage,v 1.8 2003/08/18 10:18:21 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,6 +50,12 @@ # not the IP address of the host. # # $Log: lonManage,v $ +# Revision 1.8 2003/08/18 10:18:21 foxr +# Completed PushFile function in terms of +# - ValidHost - Determines if target host is valid. +# - Transact - Performs one of the valid transactions with the +# appropriate lonc<-->lond client/server pairs. +# # Revision 1.7 2003/08/18 09:56:01 foxr # 1. Require to be run as root. # 2. Catch case where no operation switch is supplied and put out usage. @@ -178,6 +184,11 @@ sub ParseArgs { return @result; } +sub ValidHost { + return 1; +} +sub Transact { +} # # Called to push a file to the remote system. # The only legal files to push are hosts.tab and domain.tab. @@ -199,6 +210,28 @@ sub PushFile { my $tablefile = shift; my $host = shift; + # Open the table file: + + if(!open(TABLEFILE, "<$tablefile")) { + die "ENOENT - No such file or directory $tablefile"; + } + + # Require that the host be valid: + + if(!ValidHost($host)) { + die "EHOSTINVAL - Invalid host $host"; # Ok so I invented this 'errno'. + } + # Read in the file. If the table name is valid, push it. + + my @table = ; # These files are pretty small. + close TABLEFILE; + + if( ($tablename eq "host") || + ($tablename eq "domain")) { + Transact($host, "pushfile:$tablename:",\@table); + } else { + die "EINVAL - Invalid parameter. tablename: $tablename must be host or domain"; + } } sub ReinitProcess {