コード例 #1
0
  def initialize(self):

    requiredLifeTime = self.am_getOption( "MinimumLifeTime", 3600 )
    renewedLifeTime = self.am_getOption( "RenewedLifeTime", 54000 )
    self.proxyDB = ProxyDB( useMyProxy = True )

    gLogger.info( "Minimum Life time      : %s" % requiredLifeTime )
    gLogger.info( "Life time on renew     : %s" % renewedLifeTime )
    gLogger.info( "MyProxy server         : %s" % self.proxyDB.getMyProxyServer() )
    gLogger.info( "MyProxy max proxy time : %s" % self.proxyDB.getMyProxyMaxLifeTime() )

    self.__threadPool = ThreadPool( 1, 10 )
    return S_OK()
コード例 #2
0
class MyProxyRenewalAgent(AgentModule):
    def initialize(self):

        requiredLifeTime = self.am_getOption("MinimumLifeTime", 3600)
        renewedLifeTime = self.am_getOption("RenewedLifeTime", 54000)
        mailFrom = self.am_getOption("MailFrom", DEFAULT_MAIL_FROM)
        self.proxyDB = ProxyDB(useMyProxy=True, mailFrom=mailFrom)

        gLogger.info("Minimum Life time      : %s" % requiredLifeTime)
        gLogger.info("Life time on renew     : %s" % renewedLifeTime)
        gLogger.info("MyProxy server         : %s" %
                     self.proxyDB.getMyProxyServer())
        gLogger.info("MyProxy max proxy time : %s" %
                     self.proxyDB.getMyProxyMaxLifeTime())

        return S_OK()

    def __renewProxyForCredentials(self, userDN, userGroup):
        lifeTime = self.am_getOption("RenewedLifeTime", 54000)
        gLogger.info("Renewing for %s@%s %s secs" %
                     (userDN, userGroup, lifeTime))
        retVal = self.proxyDB.renewFromMyProxy(userDN,
                                               userGroup,
                                               lifeTime=lifeTime)
        if not retVal["OK"]:
            gLogger.error(
                "Failed to renew proxy",
                "for %s@%s : %s" % (userDN, userGroup, retVal["Message"]))
        else:
            gLogger.info("Renewed proxy for %s@%s" % (userDN, userGroup))

    def __treatRenewalCallback(self, oTJ, exceptionList):
        gLogger.exception(lException=exceptionList)

    def execute(self):
        """The main agent execution method"""
        self.proxyDB.purgeLogs()
        gLogger.info("Purging expired requests")
        retVal = self.proxyDB.purgeExpiredRequests()
        if retVal["OK"]:
            gLogger.info(" purged %s requests" % retVal["Value"])
        gLogger.info("Purging expired proxies")
        retVal = self.proxyDB.purgeExpiredProxies()
        if retVal["OK"]:
            gLogger.info(" purged %s proxies" % retVal["Value"])
        retVal = self.proxyDB.getCredentialsAboutToExpire(
            self.am_getOption("MinimumLifeTime", 3600))
        if not retVal["OK"]:
            return retVal
        data = retVal["Value"]
        gLogger.info("Renewing %s proxies..." % len(data))
        with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
            futures = []
            for record in data:
                userDN = record[0]
                userGroup = record[1]
                futures.append(
                    executor.submit(self.__renewProxyForCredentials, userDN,
                                    userGroup))
        return S_OK()
コード例 #3
0
    def initialize(self):

        requiredLifeTime = self.am_getOption("MinimumLifeTime", 3600)
        renewedLifeTime = self.am_getOption("RenewedLifeTime", 54000)
        mailFrom = self.am_getOption("MailFrom", DEFAULT_MAIL_FROM)
        self.proxyDB = ProxyDB(useMyProxy=True, mailFrom=mailFrom)

        gLogger.info("Minimum Life time      : %s" % requiredLifeTime)
        gLogger.info("Life time on renew     : %s" % renewedLifeTime)
        gLogger.info("MyProxy server         : %s" %
                     self.proxyDB.getMyProxyServer())
        gLogger.info("MyProxy max proxy time : %s" %
                     self.proxyDB.getMyProxyMaxLifeTime())

        return S_OK()
コード例 #4
0
class MyProxyRenewalAgent(AgentModule):

  def initialize(self):

    requiredLifeTime = self.am_getOption( "MinimumLifeTime", 3600 )
    renewedLifeTime = self.am_getOption( "RenewedLifeTime", 54000 )
    myProxyServer = gConfig.getValue( "/DIRAC/VOPolicy/MyProxyServer" , "myproxy.cern.ch" )
    self.proxyDB = ProxyDB( requireVoms = True,
                            useMyProxy = True
                          )

    gLogger.info( "Minimum Life time      : %s" % requiredLifeTime )
    gLogger.info( "Life time on renew     : %s" % renewedLifeTime )
    gLogger.info( "MyProxy server         : %s" % self.proxyDB.getMyProxyServer() )
    gLogger.info( "MyProxy max proxy time : %s" % self.proxyDB.getMyProxyMaxLifeTime() )

    self.__threadPool = ThreadPool( 1, 10 )
    return S_OK()

  def __renewProxyForCredentials( self, userDN, userGroup ):
    lifeTime = self.am_getOption( "RenewedLifeTime", 54000 )
    gLogger.info( "Renewing for %s@%s %s secs" % ( userDN, userGroup, lifeTime ) )
    retVal = self.proxyDB.renewFromMyProxy( userDN,
                                            userGroup,
                                            lifeTime = lifeTime )
    if not retVal[ 'OK' ]:
      gLogger.error( "Failed to renew for %s@%s : %s" %( userDN, userGroup, retVal[ 'Message' ] ) )
    else:
      gLogger.info( "Renewed proxy for %s@%s" % ( userDN, userGroup ) )

  def __treatRenewalCallback( self, oTJ, exceptionList ):
    gLogger.exception( lException = exceptionList )

  def execute(self):
    """ The main agent execution method
    """
    self.proxyDB.purgeLogs()
    gLogger.info( "Purging expired requests" )
    retVal = self.proxyDB.purgeExpiredRequests()
    if retVal[ 'OK' ]:
      gLogger.info( " purged %s requests" % retVal[ 'Value' ] )
    gLogger.info( "Purging expired proxies" )
    retVal = self.proxyDB.purgeExpiredProxies()
    if retVal[ 'OK' ]:
      gLogger.info( " purged %s proxies" % retVal[ 'Value' ] )
    retVal = self.proxyDB.getCredentialsAboutToExpire( self.am_getOption( "MinimumLifeTime" , 3600 ) )
    if not retVal[ 'OK' ]:
      return retVal
    data = retVal[ 'Value' ]
    gLogger.info( "Renewing %s proxies..." % len( data ) )
    for record in data:
      userDN = record[0]
      userGroup = record[1]
      self.__threadPool.generateJobAndQueueIt( self.__renewProxyForCredentials,
                                               args = ( userDN, userGroup ),
                                               oExceptionCallback = self.__treatRenewalCallback )
    self.__threadPool.processAllResults()
    return S_OK()
コード例 #5
0
ファイル: MyProxyRenewalAgent.py プロジェクト: acasajus/DIRAC
    def initialize(self):

        requiredLifeTime = self.am_getOption("MinimumLifeTime", 3600)
        renewedLifeTime = self.am_getOption("RenewedLifeTime", 54000)
        myProxyServer = gConfig.getValue("/DIRAC/VOPolicy/MyProxyServer",
                                         "myproxy.cern.ch")
        self.proxyDB = ProxyDB(requireVoms=True, useMyProxy=True)

        gLogger.info("Minimum Life time      : %s" % requiredLifeTime)
        gLogger.info("Life time on renew     : %s" % renewedLifeTime)
        gLogger.info("MyProxy server         : %s" %
                     self.proxyDB.getMyProxyServer())
        gLogger.info("MyProxy max proxy time : %s" %
                     self.proxyDB.getMyProxyMaxLifeTime())

        self.__threadPool = ThreadPool(1, 10)
        return S_OK()
コード例 #6
0
ファイル: ProxyManagerHandler.py プロジェクト: zenglzh/DIRAC
 def initializeHandler(cls, serviceInfoDict):
     requireVoms = cls.srv_getCSOption("RequireVOMS", False)
     useMyProxy = cls.srv_getCSOption("UseMyProxy", False)
     try:
         cls.__proxyDB = ProxyDB(requireVoms=requireVoms,
                                 useMyProxy=useMyProxy)
     except RuntimeError, excp:
         return S_ERROR("Can't connect to ProxyDB: %s" % excp)
コード例 #7
0
class MyProxyRenewalAgent(AgentModule):

  def initialize(self):

    requiredLifeTime = self.am_getOption( "MinimumLifeTime", 3600 )
    renewedLifeTime = self.am_getOption( "RenewedLifeTime", 54000 )
    self.proxyDB = ProxyDB( useMyProxy = True )

    gLogger.info( "Minimum Life time      : %s" % requiredLifeTime )
    gLogger.info( "Life time on renew     : %s" % renewedLifeTime )
    gLogger.info( "MyProxy server         : %s" % self.proxyDB.getMyProxyServer() )
    gLogger.info( "MyProxy max proxy time : %s" % self.proxyDB.getMyProxyMaxLifeTime() )

    self.__threadPool = ThreadPool( 1, 10 )
    return S_OK()

  def __renewProxyForCredentials( self, userDN, userGroup ):
    lifeTime = self.am_getOption( "RenewedLifeTime", 54000 )
    gLogger.info( "Renewing for %s@%s %s secs" % ( userDN, userGroup, lifeTime ) )
    retVal = self.proxyDB.renewFromMyProxy( userDN,
                                            userGroup,
                                            lifeTime = lifeTime )
    if not retVal[ 'OK' ]:
      gLogger.error( "Failed to renew proxy", "for %s@%s : %s" %( userDN, userGroup, retVal[ 'Message' ] ) )
    else:
      gLogger.info( "Renewed proxy for %s@%s" % ( userDN, userGroup ) )

  def __treatRenewalCallback( self, oTJ, exceptionList ):
    gLogger.exception( lException = exceptionList )

  def execute(self):
    """ The main agent execution method
    """
    self.proxyDB.purgeLogs()
    gLogger.info( "Purging expired requests" )
    retVal = self.proxyDB.purgeExpiredRequests()
    if retVal[ 'OK' ]:
      gLogger.info( " purged %s requests" % retVal[ 'Value' ] )
    gLogger.info( "Purging expired proxies" )
    retVal = self.proxyDB.purgeExpiredProxies()
    if retVal[ 'OK' ]:
      gLogger.info( " purged %s proxies" % retVal[ 'Value' ] )
    retVal = self.proxyDB.getCredentialsAboutToExpire( self.am_getOption( "MinimumLifeTime" , 3600 ) )
    if not retVal[ 'OK' ]:
      return retVal
    data = retVal[ 'Value' ]
    gLogger.info( "Renewing %s proxies..." % len( data ) )
    for record in data:
      userDN = record[0]
      userGroup = record[1]
      self.__threadPool.generateJobAndQueueIt( self.__renewProxyForCredentials,
                                               args = ( userDN, userGroup ),
                                               oExceptionCallback = self.__treatRenewalCallback )
    self.__threadPool.processAllResults()
    return S_OK()
コード例 #8
0
    def initialize(self):

        requiredLifeTime = self.am_getOption("MinimumLifeTime", 3600)
        renewedLifeTime = self.am_getOption("RenewedLifeTime", 54000)
        mailFrom = self.am_getOption("MailFrom", DEFAULT_MAIL_FROM)
        self.useMyProxy = self.am_getOption("UseMyProxy", False)
        self.proxyDB = ProxyDB(useMyProxy=self.useMyProxy, mailFrom=mailFrom)

        self.log.info(f"Minimum Life time      : {requiredLifeTime}")
        self.log.info(f"Life time on renew     : {renewedLifeTime}")
        if self.useMyProxy:
            self.log.info(
                f"MyProxy server         : {self.proxyDB.getMyProxyServer()}")
            self.log.info(
                f"MyProxy max proxy time : {self.proxyDB.getMyProxyMaxLifeTime()}"
            )

        return S_OK()
コード例 #9
0
ファイル: ProxyManagerHandler.py プロジェクト: vfalbor/DIRAC
def initializeProxyManagerHandler(serviceInfo):
    global gProxyDB

    serviceCS = serviceInfo['serviceSectionPath']
    requireVoms = gConfig.getValue("%s/RequireVOMS" % serviceCS,
                                   "no").lower() in ("yes", "y", "1")
    useMyProxy = gConfig.getValue("%s/UseMyProxy" % serviceCS,
                                  "no").lower() in ("yes", "y", "1")
    try:
        gProxyDB = ProxyDB(requireVoms=requireVoms, useMyProxy=useMyProxy)
    except:
        return S_ERROR("Can't initialize ProxyDB")
    gThreadScheduler.addPeriodicTask(900,
                                     gProxyDB.purgeExpiredTokens,
                                     elapsedTime=900)
    gThreadScheduler.addPeriodicTask(900,
                                     gProxyDB.purgeExpiredRequests,
                                     elapsedTime=900)
    gLogger.info("VOMS: %s\nMyProxy: %s\n MyProxy Server: %s" %
                 (requireVoms, useMyProxy, gProxyDB.getMyProxyServer()))
    return S_OK()
コード例 #10
0
ファイル: MyProxyRenewalAgent.py プロジェクト: Teddy22/DIRAC
  def initialize(self):

    requiredLifeTime = self.am_getOption( "MinimumLifeTime", 3600 )
    renewedLifeTime = self.am_getOption( "RenewedLifeTime", 54000 )
    myProxyServer = gConfig.getValue( "/DIRAC/VOPolicy/MyProxyServer" , "myproxy.cern.ch" )
    self.proxyDB = ProxyDB( useMyProxy = True )

    gLogger.info( "Minimum Life time      : %s" % requiredLifeTime )
    gLogger.info( "Life time on renew     : %s" % renewedLifeTime )
    gLogger.info( "MyProxy server         : %s" % self.proxyDB.getMyProxyServer() )
    gLogger.info( "MyProxy max proxy time : %s" % self.proxyDB.getMyProxyMaxLifeTime() )

    self.__threadPool = ThreadPool( 1, 10 )
    return S_OK()
コード例 #11
0
def initializeProxyManagerHandler( serviceInfo ):
  global gProxyDB

  serviceCS = serviceInfo [ 'serviceSectionPath' ]
  requireVoms = gConfig.getValue( "%s/RequireVOMS" % serviceCS, "no" ).lower() in ( "yes", "y", "1" )
  useMyProxy = gConfig.getValue( "%s/UseMyProxy" % serviceCS, "no" ).lower() in ( "yes", "y", "1" )
  try:
    gProxyDB = ProxyDB( requireVoms = requireVoms,
                        useMyProxy = useMyProxy )
  except:
    return S_ERROR( "Can't initialize ProxyDB" )
  gThreadScheduler.addPeriodicTask( 900, gProxyDB.purgeExpiredTokens, elapsedTime = 900 )
  gThreadScheduler.addPeriodicTask( 900, gProxyDB.purgeExpiredRequests, elapsedTime = 900 )
  gLogger.info( "VOMS: %s\nMyProxy: %s\n MyProxy Server: %s" % ( requireVoms, useMyProxy, gProxyDB.getMyProxyServer() ) )
  return S_OK()
コード例 #12
0
    }
  }
  VO
  {
    vo_1
    {
      VOMSName = vo_1
      VOMSServers
      {
      }
    }
  }
}
"""

db = ProxyDB()


class ProxyDBTestCase(unittest.TestCase):
    @classmethod
    def createProxy(self, userName, group, time, vo=None, role=None):
        """Create user proxy

        :param str userName: user name
        :param str group: group name
        :param int time: proxy expired time
        :param str vo: VOMS VO name
        :param str role: VOMS Role

        :return: S_OK(tuple)/S_ERROR() -- contain proxy as and as string
        """
コード例 #13
0
class ProxyRenewalAgent(AgentModule):
    def initialize(self):

        requiredLifeTime = self.am_getOption("MinimumLifeTime", 3600)
        renewedLifeTime = self.am_getOption("RenewedLifeTime", 54000)
        mailFrom = self.am_getOption("MailFrom", DEFAULT_MAIL_FROM)
        self.useMyProxy = self.am_getOption("UseMyProxy", False)
        self.proxyDB = ProxyDB(useMyProxy=self.useMyProxy, mailFrom=mailFrom)

        self.log.info(f"Minimum Life time      : {requiredLifeTime}")
        self.log.info(f"Life time on renew     : {renewedLifeTime}")
        if self.useMyProxy:
            self.log.info(
                f"MyProxy server         : {self.proxyDB.getMyProxyServer()}")
            self.log.info(
                f"MyProxy max proxy time : {self.proxyDB.getMyProxyMaxLifeTime()}"
            )

        return S_OK()

    def __renewProxyForCredentials(self, userDN, userGroup):
        lifeTime = self.am_getOption("RenewedLifeTime", 54000)
        self.log.info(f"Renewing for {userDN}@{userGroup} {lifeTime} secs")
        res = self.proxyDB.renewFromMyProxy(userDN,
                                            userGroup,
                                            lifeTime=lifeTime)
        if not res["OK"]:
            self.log.error("Failed to renew proxy",
                           f"for {userDN}@{userGroup} : {res['Message']}")
        else:
            self.log.info(f"Renewed proxy for {userDN}@{userGroup}")

    def execute(self):
        """The main agent execution method"""
        self.log.verbose("Purging expired requests")
        res = self.proxyDB.purgeExpiredRequests()
        if not res["OK"]:
            self.log.error(res["Message"])
        else:
            self.log.info(f"Purged {res['Value']} requests")

        self.log.verbose("Purging expired tokens")
        res = self.proxyDB.purgeExpiredTokens()
        if not res["OK"]:
            self.log.error(res["Message"])
        else:
            self.log.info(f"Purged {res['Value']} tokens")

        self.log.verbose("Purging expired proxies")
        res = self.proxyDB.purgeExpiredProxies()
        if not res["OK"]:
            self.log.error(res["Message"])
        else:
            self.log.info(f"Purged {res['Value']} proxies")

        self.log.verbose("Purging logs")
        res = self.proxyDB.purgeLogs()
        if not res["OK"]:
            self.log.error(res["Message"])

        if self.useMyProxy:
            res = self.proxyDB.getCredentialsAboutToExpire(
                self.am_getOption("MinimumLifeTime", 3600))
            if not res["OK"]:
                return res
            data = res["Value"]
            self.log.info(f"Renewing {len(data)} proxies...")
            with concurrent.futures.ThreadPoolExecutor(
                    max_workers=10) as executor:
                futures = []
                for record in data:
                    userDN = record[0]
                    userGroup = record[1]
                    futures.append(
                        executor.submit(self.__renewProxyForCredentials,
                                        userDN, userGroup))

        return S_OK()