Diff for /doc/loncapafiles/updatequery.piml between versions 1.14 and 1.31

version 1.14, 2002/06/06 15:44:27 version 1.31, 2004/06/01 15:55:00
Line 1 Line 1
 <!-- updatequery.piml -->  <!-- updatequery.piml -->
 <!-- Scott Harrison -->  
   
 <!-- $Id$ -->  <!-- $Id$ -->
   
Line 52  sleep(3); Line 51  sleep(3);
 </perlscript>  </perlscript>
 </file>  </file>
 <file>  <file>
   <target dist='default'>loncom/hosts.tab</target>
   <perlscript mode='fg'>
   unless (-l "<TARGET />") {
     print(&lt;&lt;END);
   
   ===============================================================================
   Which cluster option would you like to have installed?
   IMPORTANT: to take advantage of the cluster options 1) and 3),
   you must contact lon-capa\@lon-capa.org.
   
   1) PRODUCTION - you want to eventually connect this machine to the
                   LON-CAPA content sharing network. This setting is for
                   schools, colleges, and universities, that currently
                   are running - or in the future will run - courses
   2) STAND-ALONE - you want this machine to run in 'stand-alone' mode and
                    not be connected to other LON-CAPA machines for now
   3) DEVELOPMENT - you want to do software (not content!) development with
                    this workstation and eventually link it with the
                    workstations of other LON-CAPA software developers.
   4) PRESERVE the existing hosts.tab and domain.tab
                   (/home/httpd/lonTabs/hosts.tab and
                    /home/httpd/lonTabs/domain.tab)
   
   END
   # Option number 26 will install rawhide_hosts.tab, but
   # the typical user does not want to be part of an intensive
   # machine test cluster.
   
   # get input
   # if valid then process, otherwise loop
   $flag=0;
   while (!$flag) {
     print "ENTER 1, 2, 3, or 4:\n";
     my $choice=&lt;&gt;;
     chomp($choice);
     if ($choice==1) {
       $lonCluster='production'; $flag=1;
     }
     elsif ($choice==2) {
       $lonCluster='standalone'; $flag=1;
     }
     elsif ($choice==3) {
       $lonCluster='development'; $flag=1;
     }
     elsif ($choice==4) {
       $lonCluster='existing'; $flag=1;
       if (-e '/home/httpd/lonTabs/hosts.tab') {
         `cp /home/httpd/lonTabs/hosts.tab ../existing_hosts.tab`;
       }
       else {
         print &lt;&lt;END;
   There is no existing /home/httpd/lonTabs/hosts.tab
   END
         die('');
       }
       if (-e '/home/httpd/lonTabs/domain.tab') {
         `cp /home/httpd/lonTabs/domain.tab ../existing_domain.tab`;
       }
       else {
         print &lt;&lt;END;
   There is no existing /home/httpd/lonTabs/domain.tab
   END
         die('');
       }
     }
     elsif ($choice==26) {
       $lonCluster='rawhide'; $flag=1;
     }
   }
   }
   </perlscript>
   </file>
   <file>
 <target dist='default'>/home/httpd/lonTabs/hosts.tab</target>  <target dist='default'>/home/httpd/lonTabs/hosts.tab</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
 $|=1;  $|=1;
   my $domainDescription;
   my $domainTabExtras;
 unless (-e "<TARGET />") {  unless (-e "<TARGET />") {
   print(&lt;&lt;END);    print(&lt;&lt;END);
            WELCOME TO LON-CAPA!             WELCOME TO LON-CAPA!
Line 145  END Line 219  END
 }  }
   my $choice=&lt;&gt;;    my $choice=&lt;&gt;;
   chomp($choice);    chomp($choice);
     my $bad_domain_flag=0;
     my @bad_domain_names=('raw','userfiles','priv','adm','uploaded');
     foreach my $bad (@bad_domain_names) {
       $bad_domain_flag=1 if $choice eq $bad;
     }
   if ($ipdomain and $choice=~/^\s*$/) {    if ($ipdomain and $choice=~/^\s*$/) {
     $choice=$ipdomain;      $choice=$ipdomain;
     open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');      open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
Line 161  END Line 240  END
     $r='l';      $r='l';
     $flag=1;      $flag=1;
   }    }
     elsif ($bad_domain_flag) {
       print "Invalid input ('$choice' conflicts with LON-CAPA namespace).\n";
       print "Please try something different than '$choice'\n";
     }
   else {    else {
     print "Invalid input (only alphanumeric characters supported).\n";      print "Invalid input (only alphanumeric characters supported).\n";
   }    }
 }  }
   
   
   # get domain description
   # accept if valid, if not valid, tell user and repeat
   $flag=0;
   
   while (!$flag) {
     print(&lt;&lt;END);
   
   **** Domain Description ****
   String describing the domain, to be shown to users.
   [Example, msu is Michigan State University]
   ENTER DOMAIN DESCRIPTION:
   END
   
     my $choice=&lt;&gt;;
     chomp($choice);
     if ($choice!~/:/) {
       open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
       print(OUT 'domainDescription'."\t".$choice."\n");
       close(OUT);
       $domainDescription=$choice;
       $flag=1;
     }
     else {
       print "Invalid input (no ':' allowed).\n";
     }
   }
   
 my $lonHostID;  my $lonHostID;
 if ($lonDefDomain) {  if ($lonDefDomain) {
   $lonHostID=$lonDefDomain.$r.int(1+rand(9)); # should be probably also detect    $lonHostID=$lonDefDomain.$r.int(1+rand(9)); # should be probably also detect
Line 264  my %perlvar; Line 375  my %perlvar;
     $perlvar{'lonDefDomain'}=$lonDefDomain;      $perlvar{'lonDefDomain'}=$lonDefDomain;
     $perlvar{'lonAdmEMail'}=$lonAdmEMail;      $perlvar{'lonAdmEMail'}=$lonAdmEMail;
     $perlvar{'lonRole'}=$lonRole;      $perlvar{'lonRole'}=$lonRole;
     unless ($perlvar{'lonSqlAccess'}) {      unless ($perlvar{'lonLoadLim'} and $perlvar{'lonLoadLim'}!~/\{\[\[\[\[/) {
        $perlvar{'lonSqlAccess'}='localhostkey';  
     }  
     unless ($perlvar{'lonLoadLim'}) {  
        $perlvar{'lonLoadLim'}='2.00';         $perlvar{'lonLoadLim'}='2.00';
     }      }
     unless ($perlvar{'lonExpire'}) {      unless ($perlvar{'lonUserLoadLim'} and $perlvar{'lonUserLoadLim'}!~/\{\[\[\[\[/) {
          $perlvar{'lonUserLoadLim'}='0';
       }
       unless ($perlvar{'lonExpire'} and $perlvar{'lonExpire'}!~/\{\[\[\[\[/) {
        $perlvar{'lonExpire'}='86400';         $perlvar{'lonExpire'}='86400';
     }      }
     unless ($perlvar{'lonReceipt'}) {      unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {
        my $lonReceipt='';         my $lonReceipt='';
        srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);         srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);
        my @alnum=(0..9,a..z);         my @alnum=(0..9,a..z);
Line 297  END Line 408  END
 <file>  <file>
 <target dist='default'>/</target>  <target dist='default'>/</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
   sub securesetting {
       my (%perlvar)=@_;
       my $securestatus='unknown';
       my $securenum='';
       if      ( $perlvar{'loncAllowInsecure'}&&  $perlvar{'londAllowInsecure'}) {
    $securestatus='no';                  $securenum='4';
       } elsif ( $perlvar{'loncAllowInsecure'}&& !$perlvar{'londAllowInsecure'}) {
    $securestatus='lond';                $securenum='3';
       } elsif (!$perlvar{'loncAllowInsecure'}&&  $perlvar{'londAllowInsecure'}) {
    $securestatus='lonc';                $securenum='2';
       } elsif (!$perlvar{'loncAllowInsecure'}&& !$perlvar{'londAllowInsecure'}) {
    $securestatus='yes (lond and lonc)'; $securenum='1';
       }
       return ($securestatus,$securenum);
   }
 # read values from loncapa.conf  # read values from loncapa.conf
 my $confdir='/etc/httpd/conf/';  my $confdir='/etc/httpd/conf/';
 #my $confdir='';  
 my $filename='loncapa.conf';  my $filename='loncapa.conf';
 my %perlvar;  my %perlvar;
   my ($securestatus,$securenum);
     if (-e "$confdir$filename") {      if (-e "$confdir$filename") {
  open(CONFIG,'&lt;'.$confdir.$filename) or    open(CONFIG,'&lt;'.$confdir.$filename) or 
           die("Can't read $confdir$filename");            die("Can't read $confdir$filename");
Line 314  my %perlvar; Line 440  my %perlvar;
  }   }
  close(CONFIG);   close(CONFIG);
     }      }
       unless ($perlvar{'lonLoadLim'} and $perlvar{'lonLoadLim'}!~/\{\[\[\[\[/) {
          $perlvar{'lonLoadLim'}='2.00';
       }
       unless ($perlvar{'lonUserLoadLim'} and $perlvar{'lonUserLoadLim'}!~/\{\[\[\[\[/) {
          $perlvar{'lonUserLoadLim'}='0';
       }
       unless ($perlvar{'lonExpire'} and $perlvar{'lonExpire'}!~/\{\[\[\[\[/) {
          $perlvar{'lonExpire'}='86400';
       }
       unless ($perlvar{'londAllowInsecure'} and $perlvar{'londAllowInsecure'}!~/\{\[\[\[\[/) {
          $perlvar{'londAllowInsecure'}='1';
       }
       unless ($perlvar{'loncAllowInsecure'} and $perlvar{'loncAllowInsecure'}!~/\{\[\[\[\[/) {
          $perlvar{'loncAllowInsecure'}='1';
       }
       ($securestatus,$securenum)=&securesetting(%perlvar);
       unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {
          my $lonReceipt='';
          srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);
          my @alnum=(0..9,a..z);
          foreach my $i (1..20) {
    $lonReceipt.=$alnum[int(rand(36))];
          }
          $perlvar{'lonReceipt'}=$lonReceipt;
       }
 my %perlvarstatic;  my %perlvarstatic;
     if (-e "${confdir}loncapa_apache.conf") {      if (-e "${confdir}loncapa_apache.conf") {
  open(CONFIG,'&lt;'.$confdir.'loncapa_apache.conf') or    open(CONFIG,'&lt;'.$confdir.'loncapa_apache.conf') or 
Line 327  my %perlvarstatic; Line 478  my %perlvarstatic;
  }   }
  close(CONFIG);   close(CONFIG);
     }      }
       if (!$domainDescription && $lonCluster ne 'existing') {
          open(IN,'&lt;../'.$lonCluster.'_domain.tab');
          while(&lt;IN&gt;) {
             if (/^$perlvar{'lonDefDomain'}\:/) {
        (undef,$domainDescription,$domainTabExtras)=split(/:/,$_,3);
        chomp($domainDescription);
        chomp($domainTabExtras);
                last;
             }
          }
          close(IN);
       }
       if (!$domainDescription) {
          open(IN,'&lt;/home/httpd/lonTabs/domain.tab');
          while(&lt;IN&gt;) {
             if (/^$perlvar{'lonDefDomain'}\:/) {
        (undef,$domainDescription,$domainTabExtras)=split(/:/,$_,3);
        chomp($domainDescription);
        chomp($domainTabExtras);
                last;
             }
          }
          close(IN);
       }
      
 # implement editing logic below, interactively  # implement editing logic below, interactively
 # update loncapa.conf until 7 is entered  # update loncapa.conf until 8 is entered
   
 $flag=0;  $flag=0;
   
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
 ===============================================================================  ===============================================================================
 This is now the current configuration of your machine.  This is now the current configuration of your machine.
 1) Domain Name: $perlvar{'lonDefDomain'}   1) Domain Name: $perlvar{'lonDefDomain'}
 2) Machine Name: $perlvar{'lonHostID'}   2) Domain Description: $domainDescription
 3) System Administrator's E-mail Address: $perlvar{'lonAdmEMail'}   3) Machine Name: $perlvar{'lonHostID'}
 4) Role: $perlvar{'lonRole'}   4) System Administrator's E-mail Address: $perlvar{'lonAdmEMail'}
 5) Cache Expiration Time: $perlvar{'lonExpire'}   5) Role: $perlvar{'lonRole'}
 6) Server Load: $perlvar{'lonLoadLim'}   6) Cache Expiration Time: $perlvar{'lonExpire'}
 7) Everything is correct up above   7) Server Load: $perlvar{'lonLoadLim'}
 END   8) User Load: $perlvar{'lonUserLoadLim'}
    9) Allow only secure connections: $securestatus 
   10) Everything is correct up above
   END
   my $hbug=-1;
   my $dbug=-1;
   {
     my $v=$perlvar{'lonHostID'};
     $hbug=0;
     $hbug=1 if $v=~/\W/;
     $hbug=1 if $v=~/\_/;
   }
   {
     my $v=$1;
     $dbug=0;
     $dbug=1 if $v=~/\W/;
     $dbug=1 if $v=~/\_/;
   }
   
   if ($hbug) {
     print "**** ERROR **** ".
    "Invalid lonHostID (should only be letters and/or digits)\n";
   }
   if ($dbug) {
     print "**** ERROR **** ".
    "Invalid lonDefDomain (should only be letters and/or digits)\n";
   }
   
   print(&lt;&lt;END);    print(&lt;&lt;END);
 ENTER A CHOICE OF 1-6 TO CHANGE, otherwise ENTER 7:  ENTER A CHOICE OF 1-9 TO CHANGE, otherwise ENTER 10:
 END  END
 my $choice=&lt;&gt;;  my $choice=&lt;&gt;;
 chomp($choice);  chomp($choice);
   if ($choice==1) {    if ($choice==1) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 2) Domain Name: $perlvar{'lonDefDomain'}  1) Domain Name: $perlvar{'lonDefDomain'}
 ENTER NEW VALUE:  ENTER NEW VALUE (this is an internal value used to identify a group of
                    LON-CAPA machines, it must be alphanumerical, we suggest
                    using a part of your actual DNS domain. For example, for
                    the machine loncapa.msu.edu, we set the Domain to msu):
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
Line 360  END Line 567  END
   }    }
   elsif ($choice==2) {    elsif ($choice==2) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 1) Machine Name: $perlvar{'lonHostID'}  2) Domain Description: $domainDescription
 ENTER NEW VALUE:  ENTER NEW VALUE (this should be a string that describes your domain, spaces
                    and punctuation are fine except for ':'):
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonHostID'}=$choice2;      $domainDescription=$choice2;
   }    }
   elsif ($choice==3) {    elsif ($choice==3) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 3) System Administrator's E-mail Address: $perlvar{'lonAdmEMail'}  3) Machine Name: $perlvar{'lonHostID'}
 ENTER NEW VALUE:  ENTER NEW VALUE (this will be the name of the machine in the LON-CAPA network
                    it cannot contain any of '_' '-' '.' or ':'. We suggest that
                    if you are in the domain 'example' and are the first library
                    server you enter 'examplel1') :
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonAdmEMail'}=$choice2;      $perlvar{'lonHostID'}=$choice2;
   }    }
   elsif ($choice==4) {    elsif ($choice==4) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 4) Role: $perlvar{'lonRole'}  4) System Administrator's E-mail Address: $perlvar{'lonAdmEMail'}
 ENTER NEW VALUE:  ENTER NEW VALUE:
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonRole'}=$choice2;      $perlvar{'lonAdmEMail'}=$choice2;
   }    }
   elsif ($choice==5) {    elsif ($choice==5) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 5) Cache Expiration Time: $perlvar{'lonExpire'}  5) Role: $perlvar{'lonRole'}
 ENTER NEW VALUE:  ENTER NEW VALUE (this should be either 'access' or 'library' 
                    if in doubt select 'library'):
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonExpire'}=$choice2;      $perlvar{'lonRole'}=$choice2;
   }    }
   elsif ($choice==6) {    elsif ($choice==6) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 6) Server Load: $perlvar{'lonLoadLim'}  6) Cache Expiration Time: $perlvar{'lonExpire'}
   ENTER NEW VALUE (in seconds, 86400 is a reasonable value):
   END
       my $choice2=&lt;&gt;;
       chomp($choice2);
       $perlvar{'lonExpire'}=$choice2;
     }
     elsif ($choice==7) {
     print(&lt;&lt;END);
   7) Server Load: $perlvar{'lonLoadLim'}
 ENTER NEW VALUE:  ENTER NEW VALUE:
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonLoadLim'}=$choice2;      $perlvar{'lonLoadLim'}=$choice2;
   }    }
   elsif ($choice==7) {    elsif ($choice==8) {
     print(&lt;&lt;END);
   8) User Load: $perlvar{'lonUserLoadLim'}
   Numer of users that can login before machine is 'overloaded'
   ENTER NEW VALUE (integer value, 0 means there is no limit):
   END
       my $choice2=&lt;&gt;;
       chomp($choice2);
       $perlvar{'lonUserLoadLim'}=$choice2;
     }
     elsif ($choice==9) {
     print(&lt;&lt;END);
   9) Allow only secure connections: $securestatus 
   The Lon-CAPA communication daemons lonc and lond can be configured to
   allow only secure connections by default.
   
   POSSIBLE CHOICES:
   1) allow only secure connections and don't connect to machines that
       can not be connected to securely
   2) allow only secure connections but allow this machine to connect to 
       machines that don't support secure connections
   3) allow insecure connections to this machine but only allow connections
       to machines that support secure connections
   4) allow insecure connections
   ENTER NEW VALUE (currenly $securenum):
   END
       my $choice2=&lt;&gt;;
       chomp($choice2);
       if      ($choice2 eq '1') {
    $perlvar{'loncAllowInsecure'}=0;$perlvar{'londAllowInsecure'}=0;
       } elsif ($choice2 eq '2') {
    $perlvar{'loncAllowInsecure'}=0;$perlvar{'londAllowInsecure'}=1;
       } elsif ($choice2 eq '3') {
    $perlvar{'loncAllowInsecure'}=1;$perlvar{'londAllowInsecure'}=0;
       } elsif ($choice2 eq '4') {
    $perlvar{'loncAllowInsecure'}=1;$perlvar{'londAllowInsecure'}=1;
       }
       ($securestatus,$securenum)=&securesetting(%perlvar);
     }
     elsif ($choice==10) {
     $flag=1;      $flag=1;
   }    }
   else {    else {
Line 425  END Line 685  END
 <target dist='default'>loncom/hosts.tab</target>  <target dist='default'>loncom/hosts.tab</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
 unless (-l "<TARGET />") {  unless (-l "<TARGET />") {
   print(&lt;&lt;END);    my $hostname=`hostname`;chomp($hostname);
     my $hostaddress=`hostname -i $hostname`;chomp($hostaddress);
 ===============================================================================    $hostaddress=~s/\s//;
 What hosts.tab would you like to have installed?    $date=`date -I`; chomp($date);
 (hosts.tab is a listing of all other internet machines    $lonHostID=$perlvar{'lonHostID'};
 that a server system considers to be valid server systems    $lonHostID=~s/\W//g;
 on the LON-CAPA network)    $lineexistflag=0;
     $hostidexistflag=0;
 1) PRODUCTION - you want to deliver courses today or sometime very soon    $line2insert=&lt;&lt;END;
                 on this machine  
 2) STAND-ALONE - you want this machine to run in 'stand-alone' mode and  
                  not be connected to other LON-CAPA machines for now  
 3) DEVELOPMENT - you want to play with or explore LON-CAPA  
 4) PRESERVE the existing hosts.tab (/home/httpd/lonTabs/hosts.tab)  
   
 END  
 # Option number 26 will install rawhide_hosts.tab, but  
 # the typical user does not want to be part of an intensive  
 # machine test cluster.  
   
 # get input  
 # if valid then process, otherwise loop  
 my $hostname=`hostname`;chomp($hostname);  
 my $hostaddress=`hostname -i $hostname`;chomp($hostaddress);  
 $flag=0;  
 while (!$flag) {  
   print "ENTER 1, 2, 3, or 4:\n";  
   my $choice=&lt;&gt;;  
   chomp($choice);  
     $line2insert=&lt;&lt;END;  
 $perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$hostaddress  $perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$hostaddress
 END  END
     $date=`date -I`; chomp($date);    $domaininsert="$perlvar{'lonDefDomain'}:$domainDescription:$domainTabExtras\n";
     $lonHostID=$perlvar{'lonHostID'};    if ($lonCluster eq 'standalone') {
     $lonHostID=~s/\W//g;      open(OUT,'&gt;../'.$lonCluster.'_hosts.tab') or
     $lineexistflag=0;        die('file generation error');
     $hostidexistflag=0;        print(OUT $line2insert);
   if ($choice==1) {      close(OUT);
     $lonCluster='production';      open(OUT,'&gt;../'.$lonCluster.'_domain.tab') or
         die('file generation error');
         print(OUT $domaininsert);
       close(OUT);
     }
     if ($flag==1) {
     `rm -f ../hosts.tab`;      `rm -f ../hosts.tab`;
     open(IN,'&lt;../production_hosts.tab');      open(IN,'&lt;../'.$lonCluster.'_hosts.tab');
     while(&lt;IN&gt;) {      while(&lt;IN&gt;) {
       if (/^$line2insert$/) {        if (/^$line2insert$/) {
         $lineexistflag=1;          $lineexistflag=1;
       }        }
       if (/^$perlvar{'lonHostID'}\:/) {        if (/^$lonHostID\:/) {
         $hostidexistflag=1;          $hostidexistflag=1;
       }        }
     }      }
Line 478  END Line 722  END
     if ($hostidexistflag and !$lineexistflag) {      if ($hostidexistflag and !$lineexistflag) {
       print &lt;&lt;END;        print &lt;&lt;END;
 WARNING: $lonHostID already exists inside  WARNING: $lonHostID already exists inside
 loncapa/loncom/production_hosts.tab.  The entry inside  loncapa/loncom/${lonCluster}_hosts.tab.  The entry inside
 production_hosts.tab does not match your settings.  ${lonCluster}_hosts.tab does not match your settings.
 The entry inside production_hosts.tab is being replaced  The entry inside ${lonCluster}_hosts.tab is being replaced
 with your new values.  with your new values.
 END  END
       `grep -v "$lonHostID:" ../production_hosts.tab &gt; ../new_production_hosts.tab`;        `grep -v "$lonHostID:" ../${lonCluster}_hosts.tab &gt; ../new_${lonCluster}_hosts.tab`;
        open(OUT,'&gt;&gt;../new_production_hosts.tab') or         open(OUT,'&gt;&gt;../new_'.$lonCluster.'_hosts.tab') or
          die("cannot open loncom/standalone_hosts.tab for output\n");           die("cannot open loncom/${lonCluster}_hosts.tab for output\n");
          print(OUT $line2insert);           print(OUT $line2insert);
        close(OUT);         close(OUT);
       `ln -s new_production_hosts.tab ../hosts.tab`;        `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;
       # email appropriate message        # email appropriate message
       `echo "REPLACE:$lonHostID:date:$line2insert" | mail -s "REPLACE:$lonHostID:$date" installrecord\@mail.lon-capa.org`;        system('ping -c 1 -W 5 www.lon-capa.org > /dev/null || ping -c 1 -W 5 www.msu.edu > /dev/null || ping -c 1 -W 5 www.mit.edu > /dev/null');
         `echo "REPLACE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "REPLACE:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org` unless $?;
     }      }
     elsif ($hostidexistflag and $lineexistflag) {      elsif ($hostidexistflag and $lineexistflag) {
       `ln -s production_hosts.tab ../hosts.tab`;        print &lt;&lt;END;
   Entry exists in ${lonCluster}_hosts.tab.
   END
         `ln -s ${lonCluster}_hosts.tab ../hosts.tab`;
         # email appropriate message
         `echo "STABLEUPDATE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "STABLEUPDATE:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;
     }      }
     elsif (!$$hostidexistflag and !$lineexistflag) {      elsif (!$hostidexistflag and !$lineexistflag) {
       `cat ../production_hosts.tab &gt; ../new_production_hosts.tab`;        print &lt;&lt;END;
       `ln -s new_production_hosts.tab &gt; ../hosts.tab`;  New entry for $lonCluster.
   END
         `cat ../${lonCluster}_hosts.tab &gt; ../new_${lonCluster}_hosts.tab`;
          open(OUT,'&gt;&gt;../new_'.$lonCluster.'_hosts.tab') or
            die("cannot open loncom/new_${lonCluster}_hosts.tab for output\n");
            print(OUT $line2insert);
          close(OUT);
         `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;
         # email appropriate message
         `echo "INSERT:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "INSERT:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;
     }      }
     $flag=1;  
   }    }
   elsif ($choice==2) {    $lineexistflag=0;
     $lonCluster='standalone';    if ($flag==1) {
     open(OUT,'&gt;../standalone_hosts.tab') or      `rm -f ../domain.tab`;
       die("cannot open loncom/standalone_hosts.tab for output\n");      open(IN,'&lt;../'.$lonCluster.'_domain.tab');
     print(OUT &lt;&lt;END);      while(&lt;IN&gt;) {
 $perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$hostaddress        if (/^$domaininsert$/) {
           $lineexistflag=1;
         }
         if (/^$perlvar{'lonDefDomain'}\:/) {
           $domainexistflag=1;
         }
       }
       close(IN);
       if ($domainexistflag and !$lineexistflag) {
         print &lt;&lt;END;
   WARNING: $perlvar{'lonDefDomain'} already exists inside
   loncapa/loncom/${lonCluster}_domain.tab.  The entry inside
   ${lonCluster}_domain.tab does not match your settings.
   The entry inside ${lonCluster}_domain.tab is being replaced
   with your new values.
 END  END
     close(OUT);        `grep -v "$perlvar{'lonDefDomain'}:" ../${lonCluster}_domain.tab &gt; ../new_${lonCluster}_domain.tab`;
     `rm -f ../hosts.tab`;         open(OUT,'&gt;&gt;../new_'.$lonCluster.'_domain.tab') or
     `ln -s standalone_hosts.tab ../hosts.tab`;           die("cannot open loncom/${lonCluster}_domain.tab for output\n");
     $flag=1;           print(OUT $domaininsert);
   }         close(OUT);
   elsif ($choice==3) {        `ln -s new_${lonCluster}_domain.tab ../domain.tab`;
     $lonCluster='development';        # email appropriate message
     `rm -f loncom/hosts.tab`;        system('ping -c 1 -W 5 www.lon-capa.org > /dev/null || ping -c 1 -W 5 www.msu.edu > /dev/null || ping -c 1 -W 5 www.mit.edu > /dev/null');
     `ln -s development_hosts.tab ../hosts.tab`;        `echo "REPLACEdom:$lonCluster:$lonHostID:$date:$domaninsert" | mail -s "REPLACEdom:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org` unless $?;
     $flag=1;      }
   }      elsif ($domainexistflag and $lineexistflag) {
   elsif ($choice==4) {        print &lt;&lt;END;
     $lonCluster='existing';  Entry exists in ${lonCluster}_domain.tab.
     `rm -f ../hosts.tab`;  END
     `touch existing_hosts.tab`;        `ln -s ${lonCluster}_domain.tab ../domain.tab`;
     if (-e '/home/httpd/lonTabs/hosts.tab') {        # email appropriate message
       `cp /home/httpd/lonTabs/hosts.tab ../existing_hosts.tab`;        `echo "STABLEUPDATEdom:$lonCluster:$lonHostID:$date:$domaininsert" | mail -s "STABLEUPDATEdom:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;
       }
       elsif (!$domainexistflag and !$lineexistflag) {
         print &lt;&lt;END;
   New entry for $lonCluster.
   END
         `cat ../${lonCluster}_domain.tab &gt; ../new_${lonCluster}_domain.tab`;
          open(OUT,'&gt;&gt;../new_'.$lonCluster.'_domain.tab') or
            die("cannot open loncom/new_${lonCluster}_domain.tab for output\n");
            print(OUT $domaininsert);
          close(OUT);
         `ln -s new_${lonCluster}_domain.tab ../domain.tab`;
         # email appropriate message
         `echo "INSERTdom:$lonCluster:$lonHostID:$date:$domaininsert" | mail -s "INSERTdom:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;
     }      }
     `ln -s existing_hosts.tab ../hosts.tab`;  
     $flag=1;  
   }  
   elsif ($choice==26) {  
     $lonCluster='rawhide';  
     `rm -f ../hosts.tab`;  
     `ln -s rawhide_hosts.tab ../hosts.tab`;  
     $flag=1;  
   }  
   else {  
   
   }    }
 }  }
   
 }  
 </perlscript>  </perlscript>
 </file>  </file>
 </files>  </files>

Removed from v.1.14  
changed lines
  Added in v.1.31


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