IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 8, 2011, 11:31:08 AM (15 years ago)
Author:
Serge CHASTEL
Message:

Localization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdor/deployment/deploy.py

    r32883 r32897  
    44Utility executable for IPP Condor deployment
    55"""
    6 def hostname():
    7     """
    8     Get the host name
    9     >>> print hostname()
    10     neverland
    11     """
    12     import socket
    13     return socket.gethostbyaddr(socket.gethostname())[0].split('.')[0]
    14 
    15 # Default values
    16 class DefaultValues:
    17     """
    18     This class contains all default values for the IPP Condor deployment
    19     """
    20     if hostname().startswith('ipp'): # Production cluster
    21         svnSourceUrl          = 'https://svn.pan-starrs.ifa.hawaii.edu/repo/ipp/trunk/ippdor/src'
    22         targetDirectory       = '/home/panstarrs/ippdor/local/share/python/ipp'
    23         targetBinaryDirectory = '/home/panstarrs/ippdor/local/bin'
    24     else:
    25         svnSourceUrl          = 'file:///home/schastel/svnrepo/ippdor/trunk/src'
    26         targetDirectory       = '/home/schastel/local/share/python/ipp'
    27         targetBinaryDirectory = '/home/schastel/local/bin'
    28 
    29     def __init__(self):
    30         """Not to be used as a class
    31         """
    32         raise Exception('Not to be used as a class')
    33 
    346import sys
     7import os
    358import logging
    369#optparse Deprecated in python 2.7. Will be replaced by argparse
     
    3912
    4013if __name__ == '__main__':
    41     USAGE = """usage: %prog [options] arg1 arg2
     14    USAGE = """usage: %prog [options] <ipp site definition file>
    4215
    4316Deploy the Condor-IPP softwares
     
    5326                      help = 'Be quiet',
    5427                      default = False)
    55     PARSER.add_option( '-s', '--svnSourceUrl',
    56                        dest = "svnSourceUrl",
    57                        help = 'SVN Source URL [default: %default]',
    58                        default = DefaultValues.svnSourceUrl )
    59     PARSER.add_option( '-t', '--targetDirectory',
    60                        dest = "targetDirectory",
    61                        help = 'Target Python Directory for classes [default: %default]',
    62                        default = DefaultValues.targetDirectory )
    63     PARSER.add_option( '-b', '--targetBinaryDirectory',
    64                        dest = "targetBinaryDirectory",
    65                        help = 'Target Executables Directory [default: %default]',
    66                        default = DefaultValues.targetBinaryDirectory )
    6728    (OPTIONS, ARGS) = PARSER.parse_args()    # ... the values are stored in options
    68 
     29    if len(ARGS) != 1:
     30        PARSER.print_help()
     31        sys.exit(1)
     32    IPP_SITE_FILE = ARGS[0]
     33    # Logging setup
    6934    LOGGER = logging.getLogger('ippdor')
    7035    FORMATTER = logging.Formatter('%(asctime)s | %(levelname)7s | %(message)s',
     
    8146    else:
    8247        LOGGER.setLevel(logging.INFO)
     48    # Import IppSite definition
     49    LOGGER.info('Importing local site definitions')
     50    try:
     51        os.makedirs('.tmp_site')
     52    except OSError:
     53        LOGGER.warn('Existing .tmp_site directory')
     54    import shutil
     55    shutil.copy(IPP_SITE_FILE, '.tmp_site/IppSite.py')
     56    INITFILE = open('.tmp_site/__init__.py', 'w')
     57    INITFILE.close()
     58    sys.path.append('.tmp_site')
     59    from IppSite import IppSite
    8360
     61    # Deployment
    8462    try:
    85         DEPLOYMENT = Deployment(OPTIONS.svnSourceUrl,
    86                                 OPTIONS.targetDirectory,
    87                                 OPTIONS.targetBinaryDirectory)
     63        DEPLOYMENT = Deployment(IppSite.SVN_SOURCE_URL,
     64                                IppSite.TARGET_DIRECTORY,
     65                                IppSite.TARGET_BINARY_DIRECTORY)
    8866        DEPLOYMENT.check()
    8967        DEPLOYMENT.svn_export()
     
    9775        import traceback
    9876        traceback.print_exc()
     77    # Clean temporary site
     78    LOGGER.info('Cleaning temporary site definitions')
     79    os.remove('.tmp_site/IppSite.py')
     80    os.remove('.tmp_site/IppSite.pyc')
     81    os.remove('.tmp_site/__init__.py')
     82    os.rmdir('.tmp_site')
Note: See TracChangeset for help on using the changeset viewer.