Diff for /loncom/Attic/lonManage between versions 1.15 and 1.16

version 1.15, 2003/09/16 09:49:54 version 1.16, 2003/10/21 09:44:04
Line 33 Line 33
 #   it is a command line tool.  The following command line syntax (usage)  #   it is a command line tool.  The following command line syntax (usage)
 #   is supported:  #   is supported:
 #  #
 #    lonManage  -push   <tablename>  newfile  host  #    lonManage  -push   <tablename>  newfile  [host]
 #        Push <tablename> to the lonTabs directory.  Note that  #        Push <tablename> to the lonTabs directory.  Note that
 #        <tablename> must be one of:  #        <tablename> must be one of:
 #           host  (hosts.tab)  #           host  (hosts.tab)
 #           domain (domain.tab)  #           domain (domain.tab)
 #  #
 #    lonManage  -reinit lonc host  #    lonManage  -reinit lonc [host]
 #           Sends a HUP signal to the remote systems's lond.  #           Sends a HUP signal to the remote systems's lond.
 #  #
 #    lonmanage  -reinit lond host  #    lonmanage  -reinit lond [host]
 #          Requests the remote system's lond perform the same action as if  #          Requests the remote system's lond perform the same action as if
 #          it had received a HUP signal.  #          it had received a HUP signal.
 #  #
 #    In the above syntax, the host above is the hosts.tab name of a host,  #    In the above syntax, the host above is the hosts.tab name of a host,
 #    not the IP address of the host.  #    not the IP address of the host
   #  
   #   If [host] is not supplied, every host in the client's hosts.tab
   #   table is iterated through and procesed..
 #  #
 #  $Log$  #  $Log$
   #  Revision 1.16  2003/10/21 09:44:04  foxr
   #  Add ability to manage entire cluster in hosts table.
   #
 #  Revision 1.15  2003/09/16 09:49:54  foxr  #  Revision 1.15  2003/09/16 09:49:54  foxr
 #  Adjust the usage message to reflect what actually will happen on  #  Adjust the usage message to reflect what actually will happen on
 #  --reinit={lond|lonc}  #  --reinit={lond|lonc}
Line 127  my %hostshash;   # Host table as a host Line 133  my %hostshash;   # Host table as a host
 sub Usage  {  sub Usage  {
     print "Usage:";      print "Usage:";
     print <<USAGE;      print <<USAGE;
     lonManage  --push=<tablename>  newfile  host      lonManage  --push=<tablename>  newfile  [host]
         Push <tablename> to the lonTabs directory.  Note that          Push <tablename> to the lonTabs directory.  Note that
         <tablename> must be one of:          <tablename> must be one of:
            host  (hosts.tab)             host  (hosts.tab)
            domain (domain.tab)             domain (domain.tab)
   
     lonManage  --reinit=lonc host      lonManage  --reinit=lonc [host]
        Causes lonc in the remote system to reread hosts.tab and         Causes lonc in the remote system to reread hosts.tab and
        adjust the set of clients that are being maintained to match         adjust the set of clients that are being maintained to match
        the new file.         the new file.
                 
   
     lonManage  --reinit=lond host      lonManage  --reinit=lond [host]
        Causes lond in the remote system to reread the hosts.tab file         Causes lond in the remote system to reread the hosts.tab file
        and adjust the set of servers to match changes in that file.         and adjust the set of servers to match changes in that file.
   
     In the above syntax, the host above is the hosts.tab name of a host,      In the above syntax, the host above is the hosts.tab name of a host,
     not the IP address of the host.      not the IP address of the host.
   
       If [host] is omitted, all hosts in the hosts.tab file are iterated
       over.
   
 USAGE  USAGE
   
   
Line 214  sub ParseArgs { Line 224  sub ParseArgs {
   
     if($pushing ne '') {      if($pushing ne '') {
   
         # --push takes in addition a table, and a host:          # --push takes in addition a table, and an optional  host:
         #          #
  if($paramcount != 2) {   if(($paramcount != 2) && ($paramcount != 1)) {
     return (); # Invalid parameter count.      return (); # Invalid parameter count.
  }   }
  if($command ne '') {   if($command ne '') {
Line 230  sub ParseArgs { Line 240  sub ParseArgs {
   
     if ($reinitting ne '') {      if ($reinitting ne '') {
   
  # --reinit takes in addition just a host name   # --reinit takes in addition just an optional  host name
   
  if($paramcount != 1) {   if($paramcount > 1) {
     return ();      return ();
  }   }
  if($command ne '') {   if($command ne '') {
Line 278  sub ReadConfig { Line 288  sub ReadConfig {
 sub ValidHost {  sub ValidHost {
     my $host       = shift;      my $host       = shift;
         
     ReadConfig;  
   
     return defined $hostshash{$host};      return defined $hostshash{$host};
   
Line 374  sub PushFile { Line 383  sub PushFile {
   
     if( ($tablename eq "host")    ||      if( ($tablename eq "host")    ||
  ($tablename eq "domain")) {   ($tablename eq "domain")) {
    print("Pushing $tablename to $host\n");
  Transact($host, "pushfile:$tablename",\@table);   Transact($host, "pushfile:$tablename",\@table);
     } else {      } else {
  die "EINVAL - Invalid parameter. tablename: $tablename must be host or domain";   die "EINVAL - Invalid parameter. tablename: $tablename must be host or domain";
Line 407  sub ReinitProcess { Line 417  sub ReinitProcess {
   
     if(($process eq "lonc") ||      if(($process eq "lonc") ||
        ($process eq "lond")) {         ($process eq "lond")) {
    print("Reinitializing $process in $host\n");
  Transact($host, "reinit:$process");   Transact($host, "reinit:$process");
     } else {      } else {
  die "EINVAL -Invalid parameter. Process $process must be lonc or lond";   die "EINVAL -Invalid parameter. Process $process must be lonc or lond";
Line 414  sub ReinitProcess { Line 425  sub ReinitProcess {
 }  }
 #--------------------------- Entry point: --------------------------  #--------------------------- Entry point: --------------------------
   
   ReadConfig; # Read the configuration info (incl.hosts).
   
   
 #  Parse the parameters  #  Parse the parameters
 #  If command parsing failed, then print usage:  #  If command parsing failed, then print usage:
   
Line 440  if($operation eq "push") {  # push table Line 454  if($operation eq "push") {  # push table
     my $tablename = shift @params;      my $tablename = shift @params;
     my $tablefile = shift @params;      my $tablefile = shift @params;
     my $host      = shift @params;      my $host      = shift @params;
     PushFile($tablename, $tablefile, $host);      if($host) {
    PushFile($tablename, $tablefile, $host);
       } else { # Push to whole cluster.
    foreach my $host (keys %hostshash) {
       PushFile($tablename, $tablefile, $host);
    }
       }
   
 } elsif($operation eq "reinit") { # reinit processname host.  } elsif($operation eq "reinit") { # reinit processname host.
     my $process   = shift @params;      my $process   = shift @params;
     my $host      = shift @params;      my $host      = shift @params;
     ReinitProcess($process, $host);      if ($host) {
 }   ReinitProcess($process, $host);
       } else { # Reinit whole cluster.
    foreach my $host (keys %hostshash) {
       ReinitProcess($process,$host);
    }
       }
   } 
 else {  else {
     Usage;      Usage;
 }  }

Removed from v.1.15  
changed lines
  Added in v.1.16


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>