File indexing completed on 2023-03-17 10:40:23
0001 from __future__ import print_function
0002 from __future__ import absolute_import
0003 import sys
0004 import os
0005 import subprocess
0006 from .TkAlExceptions import AllInOneError
0007
0008
0009 crabSourceScript = '/afs/cern.ch/cms/ccs/wm/scripts/Crab/crab.sh'
0010
0011
0012 sourceStr = ( 'cd $CMSSW_BASE/src;'
0013 'source /afs/cern.ch/cms/LCG/LCG-2/UI/cms_ui_env.sh;'
0014 'eval `scramv1 runtime -sh`;'
0015 'source ' + crabSourceScript + ' && env' )
0016 sourceCmd = ['bash', '-c', sourceStr ]
0017 sourceProc = subprocess.Popen(sourceCmd, stdout = subprocess.PIPE)
0018 for line in sourceProc.stdout:
0019 (key, _, value) = line.partition("=")
0020 os.environ[key] = value.replace("\n","")
0021 sourceProc.communicate()
0022
0023
0024 crabFile = open('/'.join([os.environ["CRABPYTHON"],'crab']))
0025 theLines = crabFile.readlines()
0026 theLine = []
0027 for line in theLines:
0028 if ( line[0] == '#' ) or \
0029 ( line == ' python $CRABPYTHON/crab.py $*\n' ):
0030 continue
0031 theLine.append( line )
0032 tempFilePath = "tempCrab"
0033 tempFile = open( tempFilePath, "w" )
0034 tempFile.write( ''.join(theLine) )
0035 tempFile.close()
0036 crabStr = ('source tempCrab && env' )
0037 crabCmd = ['bash', '-c', crabStr ]
0038 crabProc = subprocess.Popen(crabCmd, stdout = subprocess.PIPE)
0039 for line in crabProc.stdout:
0040 (key, _, value) = line.partition("=")
0041 os.environ[key] = value.replace("\n","")
0042 crabProc.communicate()
0043 os.remove( tempFilePath )
0044
0045
0046 sys.path.extend( os.environ["PYTHONPATH"].split( ':' ) )
0047
0048 import crab
0049 import crab_exceptions
0050
0051 class CrabWrapper(object):
0052 def run( self, options ):
0053 theCrab = crab.Crab()
0054 try:
0055 theCrab.initialize_( options )
0056 theCrab.run()
0057 except crab_exceptions.CrabException as e:
0058 raise AllInOneError( str( e ) )
0059 del theCrab
0060
0061
0062 if __name__ == "__main__":
0063 theCrab = CrabWrapper()
0064 theCrabOptions = {"-create":"",
0065 "-cfg":"TkAlOfflineValidation.shiftPlots.crab.cfg"}
0066 theCrab.run( theCrabOptions )
0067
0068 theCrabOptions = {"-submit":""}
0069 theCrab.run( theCrabOptions )
0070
0071 theCrabOptions = {"-status":""}
0072 theCrab.run( theCrabOptions )
0073
0074 theCrabOptions = {"-getoutput":""}
0075 try:
0076 theCrab.run( theCrabOptions )
0077 except AllInOneError as e:
0078 print("crab: ", e)