version 1.12, 2003/08/18 11:08:07
|
version 1.15, 2003/09/16 09:49:54
|
Line 36
|
Line 36
|
# lonManage -push <tablename> newfile host |
# lonManage -push <tablename> newfile host |
# Push <tablename> to the lonTabs directory. Note that |
# Push <tablename> to the lonTabs directory. Note that |
# <tablename> must be one of: |
# <tablename> must be one of: |
# hosts (hosts.tab) |
# host (hosts.tab) |
# domain (domain.tab) |
# domain (domain.tab) |
# |
# |
# lonManage -reinit lonc host |
# lonManage -reinit lonc host |
Line 50
|
Line 50
|
# not the IP address of the host. |
# not the IP address of the host. |
# |
# |
# $Log$ |
# $Log$ |
|
# Revision 1.15 2003/09/16 09:49:54 foxr |
|
# Adjust the usage message to reflect what actually will happen on |
|
# --reinit={lond|lonc} |
|
# |
|
# Revision 1.14 2003/09/08 09:45:20 foxr |
|
# Remove BUGBUG about comment about authentication as we'll be doing |
|
# host based authentication initially (no need for lonManage to do anything), |
|
# and certificate based later (need at that time). |
|
# |
|
# Revision 1.13 2003/08/19 10:26:24 foxr |
|
# Initial working version... tested against an unmodified lond this |
|
# produces an unknown_cmd response which is about what I'd expect. |
|
# |
# Revision 1.12 2003/08/18 11:08:07 foxr |
# Revision 1.12 2003/08/18 11:08:07 foxr |
# Debug request building in Transact. |
# Debug request building in Transact. |
# |
# |
Line 93
|
Line 106
|
# |
# |
# |
# |
|
|
|
|
|
|
# Modules required: |
# Modules required: |
|
|
use strict; # Because it's good practice. |
use strict; # Because it's good practice. |
use English; # Cause I like meaningful names. |
use English; # Cause I like meaningful names. |
use Getopt::Long; |
use Getopt::Long; |
use LONCAPA::Configuration; # To handle configuration I/O. |
use LONCAPA::Configuration; # To handle configuration I/O. |
|
use IO::Socket::UNIX; # To communicate with lonc. |
|
|
# File scoped variables: |
# File scoped variables: |
|
|
my %perlvar; # Perl variable defs from apache config. |
my %perlvar; # Perl variable defs from apache config. |
my %hostshash; # Host table as a host indexed hash. |
my %hostshash; # Host table as a host indexed hash. |
|
|
|
# |
|
# prints out utility's command usage info. |
|
# |
sub Usage { |
sub Usage { |
print "Usage:"; |
print "Usage:"; |
print <<USAGE; |
print <<USAGE; |
lonManage --push=<tablename> newfile host |
lonManage --push=<tablename> newfile host |
Push <tablename> to the lonTabs directory. Note that |
Push <tablename> to the lonTabs directory. Note that |
<tablename> must be one of: |
<tablename> must be one of: |
hosts (hosts.tab) |
host (hosts.tab) |
domain (domain.tab) |
domain (domain.tab) |
|
|
lonManage --reinit=lonc host |
lonManage --reinit=lonc host |
Sends a HUP signal to the remote systems's lond. |
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 --reinit=lond host |
Requests the remote system's lond perform the same action as if |
Causes lond in the remote system to reread the hosts.tab file |
it had received a HUP signal. |
and adjust the set of servers to match changes in that file. |
|
|
In the above syntax, the host above is the hosts.tab name of a host, |
In the above syntax, the host above is the hosts.tab name of a host, |
not the IP address of the host. |
not the IP address of the host. |
Line 127 USAGE
|
Line 149 USAGE
|
|
|
|
|
} |
} |
|
# |
|
# Lifted from lonnet.pm - and we need to figure out a way to get it back in. |
|
# Performas a transaction with lond via the lonc proxy server. |
|
# Parameter: |
|
# cmd - The text of the request. |
|
# host - The host to which the request ultimately goes. |
|
# Returns: |
|
# The text of the reply from the lond or con_lost if not able to contact |
|
# lond/lonc etc. |
|
# |
|
sub subreply { |
|
my ($cmd,$server)=@_; |
|
my $peerfile="$perlvar{'lonSockDir'}/$server"; |
|
my $client=IO::Socket::UNIX->new(Peer =>"$peerfile", |
|
Type => SOCK_STREAM, |
|
Timeout => 10) |
|
or return "con_lost"; |
|
print $client "$cmd\n"; |
|
my $answer=<$client>; |
|
if (!$answer) { $answer="con_lost"; } |
|
chomp($answer); |
|
return $answer; |
|
} |
|
# >>> BUGBUG <<< |
# |
# |
# Use Getopt::Long to parse the parameters of the program. |
# Use Getopt::Long to parse the parameters of the program. |
# |
# |
Line 238 sub ValidHost {
|
Line 283 sub ValidHost {
|
return defined $hostshash{$host}; |
return defined $hostshash{$host}; |
|
|
} |
} |
|
|
|
|
|
|
# |
# |
# Performs a transaction with lonc. |
# Performs a transaction with lonc. |
# By the time this is called, the transaction has already been |
# By the time this is called, the transaction has already been |
Line 278 sub Transact {
|
Line 326 sub Transact {
|
} else { |
} else { |
$request .= "\n"; |
$request .= "\n"; |
} |
} |
# Body is now built.. |
# Body is now built... transact with lond.. |
|
|
|
my $answer = subreply($request, $host); |
|
|
|
print "$answer\n"; |
|
|
print "$request"; |
|
} |
} |
# |
# |
# Called to push a file to the remote system. |
# Called to push a file to the remote system. |
Line 298 sub Transact {
|
Line 349 sub Transact {
|
# tablefile - name of the file containing the table to push. |
# tablefile - name of the file containing the table to push. |
# host - name of the host to push this file to. |
# host - name of the host to push this file to. |
# |
# |
|
# >>>BUGBUG<<< This belongs in lonnet.pm. |
|
# |
sub PushFile { |
sub PushFile { |
my $tablename = shift; |
my $tablename = shift; |
my $tablefile = shift; |
my $tablefile = shift; |
Line 339 sub PushFile {
|
Line 392 sub PushFile {
|
# process - The name of the process to reinit (lonc or lond). |
# process - The name of the process to reinit (lonc or lond). |
# host - The host in which this reinit will happen. |
# host - The host in which this reinit will happen. |
# |
# |
|
# >>>BUGBUG<<<< This belongs in lonnet.pm |
|
# |
sub ReinitProcess { |
sub ReinitProcess { |
my $process = shift; |
my $process = shift; |
my $host = shift; |
my $host = shift; |
Line 428 Usage:
|
Line 483 Usage:
|
=item strict |
=item strict |
=item Getopt::Long |
=item Getopt::Long |
=item English |
=item English |
|
=item IO::Socket::UNIX |
|
|
|
=head1 KEY Subroutines. |
|
|
=head1 CATEGORIES |
=head1 CATEGORIES |
Command line utility |
Command line utility |