--- loncom/Attic/lonManage 2003/10/28 11:28:35 1.17 +++ loncom/Attic/lonManage 2003/10/28 11:55:58 1.18 @@ -3,9 +3,9 @@ # # lonManage supports remote management of nodes in a LonCAPA cluster. # -# $Id: lonManage,v 1.17 2003/10/28 11:28:35 foxr Exp $ +# $Id: lonManage,v 1.18 2003/10/28 11:55:58 foxr Exp $ # -# $Id: lonManage,v 1.17 2003/10/28 11:28:35 foxr Exp $ +# $Id: lonManage,v 1.18 2003/10/28 11:55:58 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -71,25 +71,28 @@ use LondConnection; my %perlvar; # Perl variable defs from apache config. my %hostshash; # Host table as a host indexed hash. +my $MyHost; # Host name to use as me. +my $ForeignHostTab; # Name of foreign hosts table. + # # prints out utility's command usage info. # sub Usage { print "Usage:"; print < newfile [host] + lonManage [--myname=host --hosts=table] --push= newfile [host] Push to the lonTabs directory. Note that must be one of: host (hosts.tab) domain (domain.tab) - lonManage --reinit=lonc [host] + lonManage [--myname=host --hosts=table] --reinit=lonc [host] Causes lonc in the remote system to reread hosts.tab and adjust the set of clients that are being maintained to match the new file. - lonManage --reinit=lond [host] + lonManage [--myname=host --hosts=table] --reinit=lond [host] Causes lond in the remote system to reread the hosts.tab file and adjust the set of servers to match changes in that file. @@ -99,6 +102,10 @@ sub Usage { If [host] is omitted, all hosts in the hosts.tab file are iterated over. + For all of the above syntaxes if --myname=host and --hosts=table are + supplied (both must be present), the utility runs in standalone mode + presenting itself to the world as 'host' and using the hosts.tab file + specified in the --hosts switch. USAGE @@ -150,12 +157,24 @@ sub subreply { # returns an empty list if the parse fails. # + sub ParseArgs { my $pushing = ''; my $reinitting = ''; if(!GetOptions('push=s' => \$pushing, - 'reinit=s' => \$reinitting)) { + 'reinit=s' => \$reinitting, + 'myname=s' => \$MyHost, + 'hosts=s' => \$ForeignHostTab)) { + return (); + } + # The --myname and --hosts switch must have values and + # most both appear if either appears: + + if(($MyHost ne "") && ($ForeignHostTab eq "")) { + return (); + } + if(($ForeignHostTab ne "") && ($MyHost eq "")) { return (); }