def __init__(self,parameters, container, proxyMan): AbstractRenewer.__init__(self, container) self.proxyMan = proxyMan endPoint = parameters.resourceURI[:string.find(parameters.resourceURI,'/')] self.cmdPrefix = '%s -e %s %s ' % (cmdTable['proxy-renew'], endPoint, '%s') self.fString = 'DELEGID%d.%f' self.single = ( parameters.delegationType=='single' ) if ProxyRenewer.logger == None: ProxyRenewer.logger = mainLogger.get_instance(classid='ProxyRenewer') if parameters.delegationType=='single': delegError = None delegCmd = '%s -e %s -t %d DELEGID%s' \ % (cmdTable['delegate'], endPoint, parameters.sotimeout, applicationID) ProxyRenewer.logger.debug("Delegate command: " + delegCmd) delegProc = popen2.Popen4(delegCmd) for line in delegProc.fromchild: if 'ERROR' in line or 'FATAL' in line: delegError = line[24:] delegProc.fromchild.close() if delegError<>None: raise Exception, "Cannot delegate proxy DELEGID%s: %s" % (applicationID, delegError)
def __init__(self, parameters, container): AbstractRenewer.__init__(self, container) endPoint = parameters.resourceURI[:string.find(parameters.resourceURI,'/')] self.cmdPrefix = '%s -e %s -T %d -t %d %s ' % \ (cmdTable['lease'], endPoint, parameters.leaseTime, \ parameters.sotimeout, '%s') self.sleepTime = parameters.leaseTime self.fString = 'LEASEID%d.%f' if parameters.leaseType=='none': raise Exception, 'Cannot start lease renewer: lease is not enabled' self.single = ( parameters.leaseType=='single' ) if LeaseRenewer.logger==None: LeaseRenewer.logger = mainLogger.get_instance(classid='LeaseRenewer') if parameters.leaseType=='single': cannotLease = False leaseCmd = '%s -e %s -T %d -t %d LEASEID%s' \ % (cmdTable['lease'], endPoint, \ parameters.leaseTime, parameters.sotimeout, applicationID) LeaseRenewer.logger.debug("Lease command: " + leaseCmd) leaseProc = popen2.Popen4(leaseCmd) for line in leaseProc.fromchild: if 'ERROR' in line or 'FATAL' in line: cannotLease = True leaseProc.fromchild.close() if cannotLease: raise Exception, "Cannot register LEASEID" + applicationID
def __init__(self, pool, scmd, dcmd, lcmd, tName): threading.Thread.__init__(self) self.setName(tName) self.pool = pool self.submitFStr = scmd self.delegFStr = dcmd self.leaseFStr = lcmd if SubmitterThread.logger==None: SubmitterThread.logger = mainLogger.get_instance(classid="SubmitterThread")
def __init__(self, container): Thread.__init__(self) self.container = container self.running = True self.cond = Condition() # # TODO define a new parameter for attempts # self.attempts = 3 if AbstractRenewer.logger==None: AbstractRenewer.logger = mainLogger.get_instance(classid='AbstractRenewer')
def __init__(self, parameters, jobTable=None, pManager=None): self.jobTable = jobTable self.successes = 0 self.failures = 0 self.globalSem = threading.Semaphore(1) self.masterCond = threading.Condition() self.slaveCond = threading.Condition() self.running = True self.left = 0 self.processed = 0 if JobSubmitterPool.logger==None: JobSubmitterPool.logger = mainLogger.get_instance(classid="JobSubmitterPool") self.proxyMan = pManager if parameters.delegationType=='multiple': dcmd = '%s -e %s -t %d %s' % (cmdTable['delegate'], \ parameters.resourceURI[:string.find(parameters.resourceURI,'/')], parameters.sotimeout, 'DELEGID%d.%f') delegOpt = '-D DELEGID%d.%f' else: delegOpt = '-D DELEGID' + applicationID dcmd = None if not hasattr(parameters, 'leaseType') or parameters.leaseType=='none': leaseOpt = '' lcmd = None elif parameters.leaseType=='multiple': if hasattr(parameters, 'leaseTime'): lTime = parameters.leaseTime else: lTime = 60 lcmd = '%s -e %s -T %d -t %d %s' % (cmdTable['lease'], \ parameters.resourceURI[:string.find(parameters.resourceURI,'/')], \ lTime, parameters.sotimeout, 'LEASEID%d.%f') leaseOpt = '-L LEASEID%d.%f' else: lcmd = None leaseOpt = '-L LEASEID' + applicationID scmd = '%s %s %s -r %s -t %d %s' % (cmdTable['submit'], delegOpt, leaseOpt, \ parameters.resourceURI, parameters.sotimeout, parameters.jdl) for k in range(0,parameters.maxConcurrentSubmit): subThr = SubmitterThread(self, scmd, dcmd, lcmd, "Submitter" + str(k)) subThr.start()
def __init__(self,parameters): Thread.__init__(self) if VOMSProxyManager.logger==None: VOMSProxyManager.logger = mainLogger.get_instance(classid='VOMSProxyManager') # if not hasattr(parameters, 'vo') or parameters.vo=='': # raise Exception, "Missing vo parameter" self.cert, self.key = getUserKeyAndCert() if self.cert==None: VOMSProxyManager.logger.debug("Using external proxy certificate") self.usingProxy = True self.proxyFile = getProxyFile() if int(self)==0: raise Exception, "Proxy %s is expired" % self.proxyFile return VOMSProxyManager.logger.debug("Enabled voms proxy management") self.usingProxy = False if checkEncryptedKey(self.key): self.password = getpass.getpass('Password for user key: ') else: self.password = '' self.proxyFile = '/tmp/x509up_u%d_%d' % (os.getuid(), os.getpid()) if hasattr(parameters, 'valid') and parameters.valid<>'': tokens = string.split(parameters.valid, ':') self.interval = int(tokens[0])*3600 + int(tokens[1])*60 else: self.interval = 600 self.parameters = parameters self.running = True self.cond = Condition() self.pCond = Condition() self.wCheck = False self.rCheck = 0 self.renewProxy() os.environ['X509_USER_PROXY'] = self.proxyFile