[LON-CAPA-cvs] cvs: loncom / lonManage

foxr lon-capa-cvs@mail.lon-capa.org
Mon, 18 Aug 2003 11:08:07 -0000


foxr		Mon Aug 18 07:08:07 2003 EDT

  Modified files:              
    /loncom	lonManage 
  Log:
  Debug request building in Transact.
  
  
Index: loncom/lonManage
diff -u loncom/lonManage:1.11 loncom/lonManage:1.12
--- loncom/lonManage:1.11	Mon Aug 18 06:45:32 2003
+++ loncom/lonManage	Mon Aug 18 07:08:07 2003
@@ -3,9 +3,9 @@
 #
 #  lonManage supports remote management of nodes in a LonCAPA cluster.
 #
-#  $Id: lonManage,v 1.11 2003/08/18 10:45:32 foxr Exp $
+#  $Id: lonManage,v 1.12 2003/08/18 11:08:07 foxr Exp $
 #
-# $Id: lonManage,v 1.11 2003/08/18 10:45:32 foxr Exp $
+# $Id: lonManage,v 1.12 2003/08/18 11:08:07 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -50,6 +50,9 @@
 #    not the IP address of the host.
 #
 #  $Log: lonManage,v $
+#  Revision 1.12  2003/08/18 11:08:07  foxr
+#  Debug request building in Transact.
+#
 #  Revision 1.11  2003/08/18 10:45:32  foxr
 #  Felt strongly enough about hoisting ReadConfiguration into a separate sub
 #  that I did it now before I forgot.
@@ -235,8 +238,49 @@
     return defined $hostshash{$host};
 
 }
+#
+#  Performs a transaction with lonc.
+#  By the time this is called, the transaction has already been
+#  validated by the caller.
+#
+#   Parameters:
+#
+#   host    - hosts.tab name of the host whose lonc we'll be talking to.
+#   command - The base command we'll be asking lond to execute.
+#   body    - [optional] If supplied, this is a command body that is a ref.
+#             to an array of lines that will be appended to the 
+#             command.
+#
+#  NOTE:
+#    The command will be done as an encrypted operation.
+#
 sub Transact {
+    my $host    = shift;
+    my $command = shift;
+    my $haveBody= 0;
+    my $body;
+    my $i;
+
+    if(scalar @ARG) {
+	$body = shift;
+	$haveBody = 1;
+    }
+    #  Construct the command to send to the server:
+    
+    my $request = "encrypt\:";	# All requests are encrypted.
+    $request   .= $command;
+    if($haveBody) {
+	$request .= "\:";
+	my $bodylines = scalar @$body;
+	for($i = 0; $i < $bodylines; $i++) {
+	    $request .= $$body[$i];
+	}
+    } else {
+	$request .= "\n";
+    }
+    # Body is now built..
 
+    print "$request";
 }
 #
 #   Called to push a file to the remote system.
@@ -277,7 +321,7 @@
 
     if( ($tablename eq "host")    ||
 	($tablename eq "domain")) {
-	Transact($host, "pushfile:$tablename:",\@table);
+	Transact($host, "pushfile:$tablename",\@table);
     } else {
 	die "EINVAL - Invalid parameter. tablename: $tablename must be host or domain";
     }