def main(args): parser = OptionParser(domain="flumotion-job") log.debug('job', 'Parsing arguments (%r)' % ', '.join(args)) options, args = parser.parse_args(args) # check if a config file was specified; if so, parse config and copy over if len(args) != 3: parser.error("must pass an avatarId and a path to the socket: %r" % args) avatarId = args[1] socket = args[2] # log our standardized starting marker log.info('job', "Starting job '%s'" % avatarId) # register all package paths (FIXME: this should go away when # components and all deps come from manager) # this is still necessary so that code from other projects can be imported from flumotion.common import setup setup.setupPackagePath() log.info('job', 'Connecting to worker on socket %s' % (socket)) job_factory = job.JobClientFactory(avatarId) reactor.connectWith(fdserver.FDConnector, socket, job_factory, 10, checkPID=False) # should probably move this to boot if 'FLU_PROFILE' in os.environ: try: import statprof statprof.start() print 'Profiling started.' def stop_profiling(): statprof.stop() statprof.display() reactor.addSystemEventTrigger('before', 'shutdown', stop_profiling) except ImportError, e: print ('Profiling requested, but statprof is not available (%s)' % e)
def main(args): parser = OptionParser(domain="flumotion-job") log.debug('job', 'Parsing arguments (%r)' % ', '.join(args)) options, args = parser.parse_args(args) # check if a config file was specified; if so, parse config and copy over if len(args) != 3: parser.error("must pass an avatarId and a path to the socket: %r" % args) avatarId = args[1] socket = args[2] # log our standardized starting marker log.info('job', "Starting job '%s'" % avatarId) # register all package paths (FIXME: this should go away when # components and all deps come from manager) # this is still necessary so that code from other projects can be imported from flumotion.common import setup setup.setupPackagePath() log.info('job', 'Connecting to worker on socket %s' % (socket)) job_factory = job.JobClientFactory(avatarId) reactor.connectWith(fdserver.FDConnector, socket, job_factory, 10, checkPID=False) reactor.addSystemEventTrigger('before', 'shutdown', job_factory.medium.shutdownHandler) # log our standardized started marker log.info('job', "Started job '%s'" % avatarId) reactor.run() # log our standardized stopping marker log.info('job', "Stopping job '%s'" % avatarId) # log our standardized stopped marker log.info('job', "Stopped job '%s'" % avatarId) return 0