version 1.13, 2003/08/19 10:26:24
|
version 1.16, 2003/10/21 09:44:04
|
Line 33
|
Line 33
|
# it is a command line tool. The following command line syntax (usage) |
# it is a command line tool. The following command line syntax (usage) |
# is supported: |
# is supported: |
# |
# |
# 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. |
# Sends a HUP signal to the remote systems's lond. |
# |
# |
# lonmanage -reinit lond host |
# lonmanage -reinit lond [host] |
# Requests the remote system's lond perform the same action as if |
# Requests the remote system's lond perform the same action as if |
# it had received a HUP signal. |
# it had received a HUP signal. |
# |
# |
# 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 |
|
# |
|
# If [host] is not supplied, every host in the client's hosts.tab |
|
# table is iterated through and procesed.. |
# |
# |
# $Log$ |
# $Log$ |
|
# Revision 1.16 2003/10/21 09:44:04 foxr |
|
# Add ability to manage entire cluster in hosts table. |
|
# |
|
# 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 |
# Revision 1.13 2003/08/19 10:26:24 foxr |
# Initial working version... tested against an unmodified lond this |
# Initial working version... tested against an unmodified lond this |
# produces an unknown_cmd response which is about what I'd expect. |
# produces an unknown_cmd response which is about what I'd expect. |
Line 97
|
Line 112
|
# |
# |
# |
# |
|
|
# >>>>BUGBUG<<<< require authentication with lond of some sort. |
|
# domain admin login eg. |
|
|
|
# Modules required: |
# Modules required: |
|
|
Line 119 my %hostshash; # Host table as a host
|
Line 133 my %hostshash; # Host table as a host
|
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 |
lonManage --reinit=lond host |
the new file. |
Requests the remote system's lond perform the same action as if |
|
it had received a HUP signal. |
|
|
lonManage --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. |
|
|
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. |
|
|
|
If [host] is omitted, all hosts in the hosts.tab file are iterated |
|
over. |
|
|
USAGE |
USAGE |
|
|
|
|
Line 203 sub ParseArgs {
|
Line 224 sub ParseArgs {
|
|
|
if($pushing ne '') { |
if($pushing ne '') { |
|
|
# --push takes in addition a table, and a host: |
# --push takes in addition a table, and an optional host: |
# |
# |
if($paramcount != 2) { |
if(($paramcount != 2) && ($paramcount != 1)) { |
return (); # Invalid parameter count. |
return (); # Invalid parameter count. |
} |
} |
if($command ne '') { |
if($command ne '') { |
Line 219 sub ParseArgs {
|
Line 240 sub ParseArgs {
|
|
|
if ($reinitting ne '') { |
if ($reinitting ne '') { |
|
|
# --reinit takes in addition just a host name |
# --reinit takes in addition just an optional host name |
|
|
if($paramcount != 1) { |
if($paramcount > 1) { |
return (); |
return (); |
} |
} |
if($command ne '') { |
if($command ne '') { |
Line 267 sub ReadConfig {
|
Line 288 sub ReadConfig {
|
sub ValidHost { |
sub ValidHost { |
my $host = shift; |
my $host = shift; |
|
|
ReadConfig; |
|
|
|
return defined $hostshash{$host}; |
return defined $hostshash{$host}; |
|
|
Line 363 sub PushFile {
|
Line 383 sub PushFile {
|
|
|
if( ($tablename eq "host") || |
if( ($tablename eq "host") || |
($tablename eq "domain")) { |
($tablename eq "domain")) { |
|
print("Pushing $tablename to $host\n"); |
Transact($host, "pushfile:$tablename",\@table); |
Transact($host, "pushfile:$tablename",\@table); |
} else { |
} else { |
die "EINVAL - Invalid parameter. tablename: $tablename must be host or domain"; |
die "EINVAL - Invalid parameter. tablename: $tablename must be host or domain"; |
Line 396 sub ReinitProcess {
|
Line 417 sub ReinitProcess {
|
|
|
if(($process eq "lonc") || |
if(($process eq "lonc") || |
($process eq "lond")) { |
($process eq "lond")) { |
|
print("Reinitializing $process in $host\n"); |
Transact($host, "reinit:$process"); |
Transact($host, "reinit:$process"); |
} else { |
} else { |
die "EINVAL -Invalid parameter. Process $process must be lonc or lond"; |
die "EINVAL -Invalid parameter. Process $process must be lonc or lond"; |
Line 403 sub ReinitProcess {
|
Line 425 sub ReinitProcess {
|
} |
} |
#--------------------------- Entry point: -------------------------- |
#--------------------------- Entry point: -------------------------- |
|
|
|
ReadConfig; # Read the configuration info (incl.hosts). |
|
|
|
|
# Parse the parameters |
# Parse the parameters |
# If command parsing failed, then print usage: |
# If command parsing failed, then print usage: |
|
|
Line 429 if($operation eq "push") { # push table
|
Line 454 if($operation eq "push") { # push table
|
my $tablename = shift @params; |
my $tablename = shift @params; |
my $tablefile = shift @params; |
my $tablefile = shift @params; |
my $host = shift @params; |
my $host = shift @params; |
PushFile($tablename, $tablefile, $host); |
if($host) { |
|
PushFile($tablename, $tablefile, $host); |
|
} else { # Push to whole cluster. |
|
foreach my $host (keys %hostshash) { |
|
PushFile($tablename, $tablefile, $host); |
|
} |
|
} |
|
|
} elsif($operation eq "reinit") { # reinit processname host. |
} elsif($operation eq "reinit") { # reinit processname host. |
my $process = shift @params; |
my $process = shift @params; |
my $host = shift @params; |
my $host = shift @params; |
ReinitProcess($process, $host); |
if ($host) { |
} |
ReinitProcess($process, $host); |
|
} else { # Reinit whole cluster. |
|
foreach my $host (keys %hostshash) { |
|
ReinitProcess($process,$host); |
|
} |
|
} |
|
} |
else { |
else { |
Usage; |
Usage; |
} |
} |