[LON-CAPA-cvs] cvs: loncom / lonManage
foxr
lon-capa-cvs@mail.lon-capa.org
Mon, 18 Aug 2003 10:18:21 -0000
foxr Mon Aug 18 06:18:21 2003 EDT
Modified files:
/loncom lonManage
Log:
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.
Index: loncom/lonManage
diff -u loncom/lonManage:1.7 loncom/lonManage:1.8
--- loncom/lonManage:1.7 Mon Aug 18 05:56:01 2003
+++ loncom/lonManage Mon Aug 18 06:18:21 2003
@@ -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 @@
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 @@
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 = <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";
+ }
}
sub ReinitProcess {