[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";
}