[LON-CAPA-cvs] cvs: loncom / lonManage
foxr
lon-capa-cvs@mail.lon-capa.org
Tue, 19 Aug 2003 10:26:24 -0000
foxr Tue Aug 19 06:26:24 2003 EDT
Modified files:
/loncom lonManage
Log:
Initial working version... tested against an unmodified lond this
produces an unknown_cmd response which is about what I'd expect.
Index: loncom/lonManage
diff -u loncom/lonManage:1.12 loncom/lonManage:1.13
--- loncom/lonManage:1.12 Mon Aug 18 07:08:07 2003
+++ loncom/lonManage Tue Aug 19 06:26:24 2003
@@ -3,9 +3,9 @@
#
# lonManage supports remote management of nodes in a LonCAPA cluster.
#
-# $Id: lonManage,v 1.12 2003/08/18 11:08:07 foxr Exp $
+# $Id: lonManage,v 1.13 2003/08/19 10:26:24 foxr Exp $
#
-# $Id: lonManage,v 1.12 2003/08/18 11:08:07 foxr Exp $
+# $Id: lonManage,v 1.13 2003/08/19 10:26:24 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -50,6 +50,10 @@
# not the IP address of the host.
#
# $Log: lonManage,v $
+# Revision 1.13 2003/08/19 10:26:24 foxr
+# Initial working version... tested against an unmodified lond this
+# produces an unknown_cmd response which is about what I'd expect.
+#
# Revision 1.12 2003/08/18 11:08:07 foxr
# Debug request building in Transact.
#
@@ -93,18 +97,25 @@
#
#
+# >>>>BUGBUG<<<< require authentication with lond of some sort.
+# domain admin login eg.
+
# Modules required:
use strict; # Because it's good practice.
use English; # Cause I like meaningful names.
use Getopt::Long;
use LONCAPA::Configuration; # To handle configuration I/O.
+use IO::Socket::UNIX; # To communicate with lonc.
# File scoped variables:
my %perlvar; # Perl variable defs from apache config.
my %hostshash; # Host table as a host indexed hash.
+#
+# prints out utility's command usage info.
+#
sub Usage {
print "Usage:";
print <<USAGE;
@@ -127,7 +138,30 @@
}
-
+#
+# Lifted from lonnet.pm - and we need to figure out a way to get it back in.
+# Performas a transaction with lond via the lonc proxy server.
+# Parameter:
+# cmd - The text of the request.
+# host - The host to which the request ultimately goes.
+# Returns:
+# The text of the reply from the lond or con_lost if not able to contact
+# lond/lonc etc.
+#
+sub subreply {
+ my ($cmd,$server)=@_;
+ my $peerfile="$perlvar{'lonSockDir'}/$server";
+ my $client=IO::Socket::UNIX->new(Peer =>"$peerfile",
+ Type => SOCK_STREAM,
+ Timeout => 10)
+ or return "con_lost";
+ print $client "$cmd\n";
+ my $answer=<$client>;
+ if (!$answer) { $answer="con_lost"; }
+ chomp($answer);
+ return $answer;
+}
+# >>> BUGBUG <<<
#
# Use Getopt::Long to parse the parameters of the program.
#
@@ -238,6 +272,9 @@
return defined $hostshash{$host};
}
+
+
+
#
# Performs a transaction with lonc.
# By the time this is called, the transaction has already been
@@ -278,9 +315,12 @@
} else {
$request .= "\n";
}
- # Body is now built..
+ # Body is now built... transact with lond..
+
+ my $answer = subreply($request, $host);
+
+ print "$answer\n";
- print "$request";
}
#
# Called to push a file to the remote system.
@@ -298,6 +338,8 @@
# tablefile - name of the file containing the table to push.
# host - name of the host to push this file to.
#
+# >>>BUGBUG<<< This belongs in lonnet.pm.
+#
sub PushFile {
my $tablename = shift;
my $tablefile = shift;
@@ -339,6 +381,8 @@
# process - The name of the process to reinit (lonc or lond).
# host - The host in which this reinit will happen.
#
+# >>>BUGBUG<<<< This belongs in lonnet.pm
+#
sub ReinitProcess {
my $process = shift;
my $host = shift;
@@ -428,6 +472,9 @@
=item strict
=item Getopt::Long
=item English
+=item IO::Socket::UNIX
+
+=head1 KEY Subroutines.
=head1 CATEGORIES
Command line utility