[Bio] / Sprout / NmpdrSwitch.pl Repository:
ViewVC logotype

View of /Sprout/NmpdrSwitch.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (download) (as text) (annotate)
Tue Feb 5 05:33:24 2008 UTC (11 years, 10 months ago) by parrello
Branch: MAIN
CVS Tags: mgrast_dev_08112011, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, rast_rel_2008_06_16, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, rast_rel_2008_04_23, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, rast_rel_2009_05_18, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.1: +0 -5 lines
Removed obsolete use clauses.

#!/usr/bin/perl -w

#
# Copyright (c) 2003-2006 University of Chicago and Fellowship
# for Interpretations of Genomes. All Rights Reserved.
#
# This file is part of the SEED Toolkit.
#
# The SEED Toolkit is free software. You can redistribute
# it and/or modify it under the terms of the SEED Toolkit
# Public License.
#
# You should have received a copy of the SEED Toolkit Public License
# along with this program; if not write to the University of Chicago
# at info@ci.uchicago.edu or the Fellowship for Interpretation of
# Genomes at veronika@thefig.info or download a copy from
# http://www.theseed.org/LICENSE.TXT.
#

=head1 NMPDR Emergency Switch

This method will rename files in the HTML root of the NMPDR website in order
to bring the NMPDR up or down. While it is down, the main page will redirect
users to the backup copy of NMPDR (the "mirror site"). The single
command-line parameter should be C<off> to turn the NMPDR off (redirecting
users to the backup web site) or C<on> to turn it back on.

The currently-supported command-line options are as follows.

=over 4

=item user

Name suffix to be used for log files. If omitted, the PID is used.

=item trace

Numeric trace level. A higher trace level causes more messages to appear. The
default trace level is 2. Tracing will be directly to the standard output
as well as to a C<trace>I<User>C<.log> file in the FIG temporary directory,
where I<User> is the value of the B<user> option above.

=item sql

If specified, turns on tracing of SQL activity.

=item background

Save the standard and error output to files. The files will be created
in the FIG temporary directory and will be named C<err>I<User>C<.log> and
C<out>I<User>C<.log>, respectively, where I<User> is the value of the
B<user> option above.

=item h

Display this command's parameters and options.

=item phone

Phone number to message when the script is complete.

=back

=cut

use strict;
use Tracer;
use Cwd;
use File::Copy;
use File::Path;

# Get the command-line options and parameters.
my ($options, @parameters) = StandardSetup([qw() ],
                                           {
                                              phone => ["", "phone number (international format) to call when load finishes"],
                                           },
                                           "<on or off>",
                                           @ARGV);
# Set a variable to contain return type information.
my $rtype;
# Insure we catch errors.
eval {
    # Compute the names of the relevant files: index, indexDown, and indexUp.
    my ($indexFileName, $downFileName, $upFileName) = map { "$FIG_Config::nmpdr_pages/index$_.php"} ("", "Down", "Up");
    # Check the command-line parameter.
    my $onOff = $parameters[0];
    if (lc($onOff) eq 'off') {
        # Here the user wants to turn the NMPDR off. We do this by renaming index to indexUp, then
        # indexDown to index. If indexDown does not exist, the system is already down.
        if (! -e $downFileName) {
            Confess("$downFileName not found: the NMPDR is probably already down.");
        } else {
            Trace("Renaming index file.") if T(2);
            rename $indexFileName, $upFileName;
            Trace("Creating new index file.") if T(2);
            rename $downFileName, $indexFileName;
            Trace("The NMPDR is now offline.") if T(2);
        }
    } elsif (lc($onOff) eq 'on') {
        # Here the user wants to turn the NMPDR back on. We do this by renaming index to indexDown,
        # then indexUp to index. If indexUp does not exist, the system is already up.
        if (! -e $upFileName) {
            Confess("$upFileName not found: the NMPDR is probably already up.");
        } else {
            Trace("Renaming index file.") if T(2);
            rename $indexFileName, $downFileName;
            Trace("Creating new index file.") if T(2);
            rename $upFileName, $indexFileName;
            Trace("The NMPDR is now online.") if T(2);
        }
    } else {
        Confess("Unrecognized option \"$onOff\".");
    }
    
};
if ($@) {
    Trace("Script failed with error: $@") if T(0);
    $rtype = "error";
} else {
    Trace("Script complete.") if T(2);
    $rtype = "no error";
}
if ($options->{phone}) {
    my $msgID = Tracer::SendSMS($options->{phone}, "NMPDR Emergency Switch terminated with $rtype.");
    if ($msgID) {
        Trace("Phone message sent with ID $msgID.") if T(2);
    } else {
        Trace("Phone message not sent.") if T(2);
    }
}

1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3