def __init__(self, **kwarg): PluginBase.__init__(self, **kwarg) self.hostname = socket.getfqdn() # Set up aCT DB connection self.log = core_utils.make_logger(baseLogger, 'aCT submitter', method_name='__init__') self.actDB = aCTDBPanda(self.log) # Credential dictionary role: proxy file self.certs = dict(zip([r.split('=')[1] for r in list(harvester_config.credmanager.voms)], list(harvester_config.credmanager.outCertFile))) # Map of role to aCT proxyid self.proxymap = {} # Get proxy info # TODO: better to send aCT the proxy file and let it handle it for role, proxy in self.certs.items(): cred_type = arc.initializeCredentialsType(arc.initializeCredentialsType.SkipCredentials) uc = arc.UserConfig(cred_type) uc.ProxyPath(str(proxy)) cred = arc.Credential(uc) dn = cred.GetIdentityName() actp = aCTProxy(self.log) attr = '/atlas/Role='+role proxyid = actp.getProxyId(dn, attr) if not proxyid: raise Exception("Proxy with DN {0} and attribute {1} was not found in proxies table".format(dn, attr)) self.proxymap[role] = proxyid
def __init__(self): aCTATLASProcess.__init__(self) # Get DN from configured proxy file uc = arc.UserConfig() uc.ProxyPath(str(self.arcconf.get(['voms', 'proxypath']))) cred = arc.Credential(uc) dn = cred.GetIdentityName() self.log.info("Running under DN %s" % dn) # Keep a panda object per proxy. The site "type" maps to a specific # proxy role self.pandas = {} # Map the site type to a proxy id in proxies table # In future for analysis the id will change once the job is picked up self.proxymap = {} actp = aCTProxy.aCTProxy(self.log) for role in self.arcconf.getList(['voms', 'roles', 'item']): attr = '/atlas/Role='+role proxyid = actp.getProxyId(dn, attr) if not proxyid: raise Exception("Proxy with DN "+dn+" and attribute "+attr+" was not found in proxies table") proxyfile = actp.path(dn, attribute=attr) # pilot role is mapped to analysis type if role == 'pilot': role = 'analysis' self.pandas[role] = aCTPanda.aCTPanda(self.log, proxyfile) self.proxymap[role] = proxyid # queue interval self.queuestamp=0 self.sites={}
def __init__(self, **kwarg): PluginBase.__init__(self, **kwarg) # Set up aCT DB connection self.log = core_utils.make_logger(baseLogger, 'aCT submitter', method_name='__init__') self.actDB = aCTDBPanda(self.log) # Credential dictionary role: proxy file self.certs = dict(zip([r.split('=')[1] for r in list(harvester_config.credmanager.voms)], list(harvester_config.credmanager.outCertFile))) # Map of role to aCT proxyid self.proxymap = {} # Get proxy info # TODO: better to send aCT the proxy file and let it handle it for role, proxy in self.certs.items(): cred_type = arc.initializeCredentialsType(arc.initializeCredentialsType.SkipCredentials) uc = arc.UserConfig(cred_type) uc.ProxyPath(str(proxy)) cred = arc.Credential(uc) dn = cred.GetIdentityName() self.log.info("Proxy {0} with DN {1} and role {2}".format(proxy, dn, role)) actp = aCTProxy(self.log) attr = '/atlas/Role='+role proxyid = actp.getProxyId(dn, attr) if not proxyid: raise Exception("Proxy with DN {0} and attribute {1} was not found in proxies table".format(dn, attr)) self.proxymap[role] = proxyid
def __init__(self): aCTATLASProcess.__init__(self, ceflavour=['ARC-CE']) # Use production role proxy for checking and removing files # Get DN from configured proxy file cred_type = arc.initializeCredentialsType(arc.initializeCredentialsType.SkipCredentials) uc = arc.UserConfig(cred_type) uc.ProxyPath(str(self.arcconf.get(['voms', 'proxypath']))) cred = arc.Credential(uc) dn = cred.GetIdentityName() actp = aCTProxy(self.log) # Beware hard-coded production role proxyfile = actp.path(dn, '/atlas/Role=production') if not proxyfile: raise Exception('Could not find proxy with production role in proxy table') self.log.info('set proxy path to %s' % proxyfile) self.uc = arc.UserConfig(cred_type) self.uc.ProxyPath(str(proxyfile)) self.uc.UtilsDirPath(str(arc.UserConfig.ARCUSERDIRECTORY)) # Possible file status self.ok = 0 self.retry = 1 self.failed = 2
def __init__(self, **kwarg): PluginBase.__init__(self, **kwarg) # Set up aCT DB connection self.log = core_utils.make_logger(baseLogger, 'aCT submitter', method_name='__init__') self.conf = aCTConfigARC() self.actDB = aCTDBPanda(self.log, self.conf.get(["db", "file"])) # Get proxy info # TODO: specify DN in conf instead cred_type = arc.initializeCredentialsType( arc.initializeCredentialsType.SkipCredentials) uc = arc.UserConfig(cred_type) uc.ProxyPath(str(self.conf.get(['voms', 'proxypath']))) cred = arc.Credential(uc) dn = cred.GetIdentityName() self.log.info("Running under DN %s" % dn) # Set up proxy map (prod/pilot roles) self.proxymap = {} actp = aCTProxy(self.log) for role in self.conf.getList(['voms', 'roles', 'item']): attr = '/atlas/Role=' + role proxyid = actp.getProxyId(dn, attr) if not proxyid: raise Exception( "Proxy with DN {0} and attribute {1} was not found in proxies table" .format(dn, attr)) self.proxymap[role] = proxyid
def __init__(self): aCTProcess.__init__(self) self.conf = aCTConfig.aCTConfigARC() self.pm = aCTProxy(self.log) self.tstamp = datetime.datetime.utcnow() - datetime.timedelta( 0, self.pm.interval) if self._updateLocalProxies() == 0: # no local proxies in proxies table yet, better populate it self._updateRolesFromConfig() self._updateMyProxies()
def __init__(self): aCTATLASProcess.__init__(self) # Get DN from configured proxy file uc = arc.UserConfig() uc.ProxyPath(str(self.arcconf.get(['voms', 'proxypath']))) cred = arc.Credential(uc) dn = cred.GetIdentityName() self.log.info("Running under DN %s" % dn) # Keep a panda object per proxy. The site "type" maps to a specific # proxy role self.pandas = {} # Map the site type to a proxy id in proxies table # In future for analysis the id will change once the job is picked up self.proxymap = {} actp = aCTProxy.aCTProxy(self.log) for role in self.arcconf.getList(['voms', 'roles', 'item']): attr = '/atlas/Role=' + role proxyid = actp.getProxyId(dn, attr) if not proxyid: raise Exception("Proxy with DN " + dn + " and attribute " + attr + " was not found in proxies table") proxyfile = actp.path(dn, attribute=attr) # pilot role is mapped to analysis type psl = 'managed' if role == 'pilot': role = 'analysis' psl = 'user' self.proxymap['panda'] = proxyid self.pandas[role] = aCTPanda.aCTPanda(self.log, proxyfile) self.proxymap[psl] = proxyid # queue interval self.queuestamp = 0 # Register this aCT to APFMon self.apfmon.registerFactory() # AGIS queue info self.sites = {} # Panda info on activated jobs: {queue: {'rc_test': 2, 'rest': 40}} self.activated = {} # Flag for calling getJob no matter what to have a constant stream self.getjob = False
def __init__(self): """Initialize object.""" self.logger = logging.getLogger(__name__) self.actproxy = aCTProxy.aCTProxy(self.logger) self.arcdb = aCTDBArc.aCTDBArc(self.logger)
Cmd = "/usr/bin/stress"; \n JobPrio = 50; \n ] ''') cad = { 'UserLog': "/tmp/log/test.$(ClusterId).log", 'Output': "/tmp/output/test.$(ClusterId).out", 'Error': "/tmp/error/test.$(ClusterId).err", 'JobUniverse': '9', 'X509UserProxy': "/tmp/x509up_u100780", 'Arguments': "60", 'Cmd': "/usr/bin/sleep", 'JobPrio': '50' } p = aCTProxy(logging.getLogger(), 1) voms = "atlas" attribute = "" # e.g. attribute="/atlas/Role=production" proxypath = p.conf.get(["voms", "proxypath"]) validHours = 5 proxyid = 1 # p.createVOMSAttribute(voms, attribute, proxypath, validHours) db.insertArcJobDescription(xrsl, clusterlist='gsiftp://pcoslo5.dyndns.cern.ch/fork', proxyid=1, maxattempts=5) #dbcondor.insertCondorJobDescription(cad, clusterlist='nordugrid pcoslo5.cern.ch', proxyid=proxyid, maxattempts=5) #dbcondor.insertCondorJobDescription(cad, clusterlist='condor ce503.cern.ch ce503.cern.ch:9619', proxyid=proxyid, maxattempts=5) #dbcondor.insertCondorJobDescription(cad, clusterlist='condor gridgk01.racf.bnl.gov gridgk01.racf.bnl.gov:9619', proxyid=proxyid, maxattempts=5)