version 1.7, 2003/08/18 09:56:01
|
version 1.9, 2003/08/18 10:25:46
|
Line 50
|
Line 50
|
# not the IP address of the host. |
# not the IP address of the host. |
# |
# |
# $Log$ |
# $Log$ |
|
# Revision 1.9 2003/08/18 10:25:46 foxr |
|
# Write ReinitProcess function in terms of ValidHost and Transact. |
|
# |
|
# 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 |
# Revision 1.7 2003/08/18 09:56:01 foxr |
# 1. Require to be run as root. |
# 1. Require to be run as root. |
# 2. Catch case where no operation switch is supplied and put out usage. |
# 2. Catch case where no operation switch is supplied and put out usage. |
Line 178 sub ParseArgs {
|
Line 187 sub ParseArgs {
|
|
|
return @result; |
return @result; |
} |
} |
|
sub ValidHost { |
|
return 1; |
|
} |
|
sub Transact { |
|
} |
# |
# |
# Called to push a file to the remote system. |
# Called to push a file to the remote system. |
# The only legal files to push are hosts.tab and domain.tab. |
# The only legal files to push are hosts.tab and domain.tab. |
Line 199 sub PushFile {
|
Line 213 sub PushFile {
|
my $tablefile = shift; |
my $tablefile = shift; |
my $host = 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 = <TABLEFILE>; # 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"; |
|
} |
|
} |
|
# |
|
# This function is called to reinitialize a server in a remote host. |
|
# The servers that can be reinitialized are: |
|
# - lonc - The lonc client process. |
|
# - lond - The lond daemon. |
|
# NOTE: |
|
# Reinitialization in this case means re-scanning the hosts table, |
|
# starting new lond/lonc's as approprate and stopping existing lonc/lond's. |
|
# |
|
# Parameters: |
|
# process - The name of the process to reinit (lonc or lond). |
|
# host - The host in which this reinit will happen. |
|
# |
sub ReinitProcess { |
sub ReinitProcess { |
print "Reinitializing a process\n"; |
my $process = shift; |
|
my $host = shift; |
|
|
|
# Ensure the host is valid: |
|
|
|
if(!ValidHost($host)) { |
|
die "EHOSTINVAL - Invalid host $host"; |
|
} |
|
# Ensure target process selector is valid: |
|
|
|
if(($process eq "lonc") || |
|
($process eq "lond")) { |
|
Transact($host, "reinit:$process"); |
|
} else { |
|
die "EINVAL -Invalid parameter. Process $process must be lonc or lond"; |
|
} |
} |
} |
#--------------------------- Entry point: -------------------------- |
#--------------------------- Entry point: -------------------------- |
|
|