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

foxr lon-capa-cvs@mail.lon-capa.org
Tue, 28 Oct 2003 11:55:58 -0000


foxr		Tue Oct 28 06:55:58 2003 EDT

  Modified files:              
    /loncom	lonManage 
  Log:
  Add switch processing and usage for standalone mode; To invoke standalone mode
  >both< of the following switches will need to be present with values:
  
  --myname=hostname - hostname is the name lonManage will use to negotiate the
     host key.  This must match the hostname given to this system in
     the manager table read by the associated lond.
  
  --hosts=filename - filename will be read as the hosts.tab for this invocation
     of lonc.
  
  This will allow the program to run standalone as well as to manage nodes in a
  cluster other than the one it is a member of (assuming the remote management
  table allows that).
  
  
  
Index: loncom/lonManage
diff -u loncom/lonManage:1.17 loncom/lonManage:1.18
--- loncom/lonManage:1.17	Tue Oct 28 06:28:35 2003
+++ loncom/lonManage	Tue Oct 28 06:55:58 2003
@@ -3,9 +3,9 @@
 #
 #  lonManage supports remote management of nodes in a LonCAPA cluster.
 #
-#  $Id: lonManage,v 1.17 2003/10/28 11:28:35 foxr Exp $
+#  $Id: lonManage,v 1.18 2003/10/28 11:55:58 foxr Exp $
 #
-# $Id: lonManage,v 1.17 2003/10/28 11:28:35 foxr Exp $
+# $Id: lonManage,v 1.18 2003/10/28 11:55:58 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -71,25 +71,28 @@
 my %perlvar;			# Perl variable defs from apache config.
 my %hostshash;			# Host table as a host indexed hash.
 
+my $MyHost;			# Host name to use as me.
+my $ForeignHostTab;		# Name of foreign hosts table.
+
 #
 #   prints out utility's command usage info.
 #
 sub Usage  {
     print "Usage:";
     print <<USAGE;
-    lonManage  --push=<tablename>  newfile  [host]
+ lonManage  [--myname=host --hosts=table] --push=<tablename>  newfile  [host]
         Push <tablename> to the lonTabs directory.  Note that
         <tablename> must be one of:
            host  (hosts.tab)
            domain (domain.tab)
 
-    lonManage  --reinit=lonc [host]
+ lonManage [--myname=host --hosts=table] --reinit=lonc [host]
        Causes lonc in the remote system to reread hosts.tab and
        adjust the set of clients that are being maintained to match
        the new file.
        
 
-    lonManage  --reinit=lond [host]
+ lonManage [--myname=host --hosts=table] --reinit=lond [host]
        Causes lond in the remote system to reread the hosts.tab file
        and adjust the set of servers to match changes in that file.
 
@@ -99,6 +102,10 @@
     If [host] is omitted, all hosts in the hosts.tab file are iterated
     over.
 
+ For all of the above syntaxes if --myname=host and --hosts=table are
+ supplied (both must be present), the utility runs in standalone mode
+ presenting itself to the world as 'host' and using the hosts.tab file
+ specified in the --hosts switch.
 USAGE
 
 
@@ -150,12 +157,24 @@
 #   returns an empty list if the parse fails.
 #
 
+
 sub ParseArgs {
     my $pushing   = '';
     my $reinitting = '';
 
     if(!GetOptions('push=s'    => \$pushing,
-	           'reinit=s'  => \$reinitting)) {
+	           'reinit=s'  => \$reinitting,
+		   'myname=s' => \$MyHost,
+		   'hosts=s' => \$ForeignHostTab)) {
+	return ();
+    }
+    #  The --myname and --hosts switch must have values and
+    #  most both appear if either appears:
+
+    if(($MyHost ne "") && ($ForeignHostTab eq "")) {
+	return ();
+    }
+    if(($ForeignHostTab ne "") && ($MyHost eq "")) {
 	return ();
     }