[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 {