def main(): """ Main function of PanDA Pilot 2. Prepare for and execute the requested workflow. :return: exit code (int). """ # get the logger logger = logging.getLogger(__name__) # print the pilot version pilot_version_banner() # define threading events args.graceful_stop = threading.Event() args.abort_job = threading.Event() args.job_aborted = threading.Event() # define useful variables args.retrieve_next_job = True # go ahead and download a new job args.signal = None # to store any incoming signals args.signal_counter = 0 # keep track of number of received kill signal (suicide counter) args.kill_time = 0 # keep track of when first kill signal arrived # read and parse config file config.read(args.config) # perform https setup https_setup(args, get_pilot_version()) # initialize InfoService try: infosys.init(args.queue) # check if queue is ACTIVE if infosys.queuedata.state != 'ACTIVE': logger.critical('specified queue is NOT ACTIVE: %s -- aborting' % infosys.queuedata.name) raise PilotException("Panda Queue is NOT ACTIVE") except PilotException as error: logger.fatal(error) return error.get_error_code() # set the site name for rucio ## is it really used? environ['PILOT_RUCIO_SITENAME'] = infosys.queuedata.site # set requested workflow logger.info('pilot arguments: %s' % str(args)) logger.info('selected workflow: %s' % args.workflow) workflow = __import__('pilot.workflow.%s' % args.workflow, globals(), locals(), [args.workflow], -1) # execute workflow try: exit_code = workflow.run(args) except Exception as e: logger.fatal('main pilot function caught exception: %s' % e) exit_code = None return exit_code
def main(): logger = logging.getLogger(__name__) logger.info('pilot startup - version %s' % VERSION) args.graceful_stop = threading.Event() https_setup(args, VERSION) if not set_location(args): return False logger.info('workflow: %s' % args.workflow) workflow = __import__('pilot.workflow.%s' % args.workflow, globals(), locals(), [args.workflow], -1) return workflow.run(args)
import sys import time from pilot.eventservice.communicationmanager.communicationmanager import CommunicationRequest, CommunicationResponse, CommunicationManager from pilot.util.https import https_setup from pilot.util.timing import time_stamp if sys.version_info < (2, 7): import unittest2 as unittest else: import unittest logging.basicConfig(stream=sys.stderr, level=logging.DEBUG) logger = logging.getLogger(__name__) https_setup(None, None) def check_env(): """ Function to check whether cvmfs is available. To be used to decide whether to skip some test functions. :returns True: if cvmfs is available. Otherwise False. """ return os.path.exists('/cvmfs/atlas.cern.ch/repo/') class TestESCommunicationRequestResponse(unittest.TestCase): """ Unit tests for event service communicator Request and Response.