Exemplo n.º 1
0
  def addSiteInMask( self, site, comment, printOutput = False ):
    """Adds the site to the site mask.

       Example usage:

       >>> print diracAdmin.addSiteInMask()
       {'OK': True, 'Value': }

       @return: S_OK,S_ERROR

    """
    result = self.__checkSiteIsValid( site )
    if not result['OK']:
      return result

    mask = self.getSiteMask()
    if not mask['OK']:
      return mask
    siteMask = mask['Value']
    if site in siteMask:
      return S_ERROR( 'Site %s already in mask of allowed sites' % site )

    wmsAdmin = RPCClient( 'WorkloadManagement/WMSAdministrator', timeout = 120 )
    result = wmsAdmin.allowSite( site, comment )
    if not result['OK']:
      return result

    if printOutput:
      print 'Allowing %s in site mask' % site

    return result
Exemplo n.º 2
0
  def addSiteInMask( self, site, comment, printOutput = False ):
    """Adds the site to the site mask.

       Example usage:

         >>> print diracAdmin.addSiteInMask()
         {'OK': True, 'Value': }

       @return: S_OK,S_ERROR

    """
    result = self.__checkSiteIsValid( site )
    if not result['OK']:
      return result

    mask = self.getSiteMask()
    if not mask['OK']:
      return mask
    siteMask = mask['Value']
    if site in siteMask:
      return S_ERROR( 'Site %s already in mask of allowed sites' % site )

    wmsAdmin = RPCClient( 'WorkloadManagement/WMSAdministrator' )
    result = wmsAdmin.allowSite( site, comment )
    if not result['OK']:
      return result

    if printOutput:
      print 'Allowing %s in site mask' % site

    return result
Exemplo n.º 3
0
  def __changeSiteStatus( self, site, comment, statusType, status, printOutput = False ):
    """
      Change the RSS status of the given site
    """
    result = self.__checkSiteIsValid( site )
    if not result['OK']:
      return result

    wmsAdmin = RPCClient( 'WorkloadManagement/WMSAdministrator' )
    result = wmsAdmin.allowSite( site, comment )
    if not result['OK']:
      return result
    
    rsc = ResourceStatusClient()
    proxyInfo = getProxyInfo()
    if not proxyInfo[ 'OK' ]:
      return proxyInfo
    userName = proxyInfo[ 'Value' ][ 'username' ]   
    
    tomorrow = datetime.utcnow().replace( microsecond = 0 ) + timedelta( days = 1 )
  
    result = rsc.modifyStatusElement( 'Site', 'Status', 
                                      name = site, 
                                      statusType = statusType,
                                      status     = status,
                                      reason     = comment,  
                                      tokenOwner = userName, 
                                      tokenExpiration = tomorrow )

    return result
Exemplo n.º 4
0
  def test_JobDBWMSAdmin(self):
  
    wmsAdministrator = RPCClient( 'WorkloadManagement/WMSAdministrator' )

    sitesList = ['My.Site.org', 'Your.Site.org']
    res = wmsAdministrator.setSiteMask( sitesList )
    self.assert_( res['OK'] )
    res = wmsAdministrator.getSiteMask()
    self.assert_( res['OK'] )
    self.assertEqual( sorted( res['Value'] ), sorted( sitesList ) )
    res = wmsAdministrator.banSite( 'My.Site.org', 'This is a comment' )
    self.assert_( res['OK'] )
    res = wmsAdministrator.getSiteMask()
    self.assert_( res['OK'] )
    self.assertEqual( sorted( res['Value'] ), ['Your.Site.org'] )
    res = wmsAdministrator.allowSite( 'My.Site.org', 'This is a comment' )
    self.assert_( res['OK'] )
    res = wmsAdministrator.getSiteMask()
    self.assert_( res['OK'] )
    self.assertEqual( sorted( res['Value'] ), sorted( sitesList ) )

    res = wmsAdministrator.getSiteMaskLogging( sitesList )
    self.assert_( res['OK'] )
    self.assertEqual( res['Value']['My.Site.org'][0][3], 'No comment' )
    res = wmsAdministrator.getSiteMaskSummary()
    self.assert_( res['OK'] )
    self.assertEqual( res['Value']['My.Site.org'], 'Active' )

    res = wmsAdministrator.getUserSummaryWeb( {}, [], 0, 100 )
    print res
    self.assert_( res['OK'] )
    self.assertEqual( res['Value']['TotalRecords'], 0 )
    res = wmsAdministrator.getSiteSummaryWeb( {}, [], 0, 100 )
    self.assert_( res['OK'] )
    self.assertEqual( res['Value']['TotalRecords'], 0 )
    res = wmsAdministrator.getSiteSummarySelectors()
    self.assert_( res['OK'] )

    res = wmsAdministrator.clearMask()
    self.assert_( res['OK'] )
    res = wmsAdministrator.getSiteMask()
    self.assert_( res['OK'] )
    self.assertEqual( res['Value'], [] )
Exemplo n.º 5
0
    def test_JobDBWMSAdmin(self):

        wmsAdministrator = RPCClient('WorkloadManagement/WMSAdministrator')

        sitesList = ['My.Site.org', 'Your.Site.org']
        res = wmsAdministrator.setSiteMask(sitesList)
        self.assert_(res['OK'])
        res = wmsAdministrator.getSiteMask()
        self.assert_(res['OK'])
        self.assertEqual(sorted(res['Value']), sorted(sitesList))
        res = wmsAdministrator.banSite('My.Site.org', 'This is a comment')
        self.assert_(res['OK'])
        res = wmsAdministrator.getSiteMask()
        self.assert_(res['OK'])
        self.assertEqual(sorted(res['Value']), ['Your.Site.org'])
        res = wmsAdministrator.allowSite('My.Site.org', 'This is a comment')
        self.assert_(res['OK'])
        res = wmsAdministrator.getSiteMask()
        self.assert_(res['OK'])
        self.assertEqual(sorted(res['Value']), sorted(sitesList))

        res = wmsAdministrator.getSiteMaskLogging(sitesList)
        self.assert_(res['OK'])
        self.assertEqual(res['Value']['My.Site.org'][0][3], 'No comment')
        res = wmsAdministrator.getSiteMaskSummary()
        self.assert_(res['OK'])
        self.assertEqual(res['Value']['My.Site.org'], 'Active')

        res = wmsAdministrator.getUserSummaryWeb({}, [], 0, 100)
        print res
        self.assert_(res['OK'])
        self.assertEqual(res['Value']['TotalRecords'], 0)
        res = wmsAdministrator.getSiteSummaryWeb({}, [], 0, 100)
        self.assert_(res['OK'])
        self.assertEqual(res['Value']['TotalRecords'], 0)
        res = wmsAdministrator.getSiteSummarySelectors()
        self.assert_(res['OK'])

        res = wmsAdministrator.clearMask()
        self.assert_(res['OK'])
        res = wmsAdministrator.getSiteMask()
        self.assert_(res['OK'])
        self.assertEqual(res['Value'], [])
Exemplo n.º 6
0
    def allowSite(self, site, comment, printOutput=False):
        """Adds the site to the site mask.

       Example usage:

         >>> print diracAdmin.allowSite()
         {'OK': True, 'Value': }

       :return: S_OK,S_ERROR

    """
        result = self.__checkSiteIsValid(site)
        if not result['OK']:
            return result

        result = self.getSiteMask(status='Active')
        if not result['OK']:
            return result
        siteMask = result['Value']
        if site in siteMask:
            if printOutput:
                print 'Site %s is already Active' % site
            return S_OK('Site %s is already Active' % site)

        if self.rssFlag:
            result = self.sitestatus.setSiteStatus(site, 'Active', comment)
        else:
            wmsAdmin = RPCClient('WorkloadManagement/WMSAdministrator')
            result = wmsAdmin.allowSite(site, comment)
        if not result['OK']:
            return result

        if printOutput:
            print 'Site %s status is set to Active' % site

        return result
Exemplo n.º 7
0
    def __changeSiteStatus(self,
                           site,
                           comment,
                           statusType,
                           status,
                           printOutput=False):
        """
      Change the RSS status of the given site
    """
        result = self.__checkSiteIsValid(site)
        if not result['OK']:
            return result

        wmsAdmin = RPCClient('WorkloadManagement/WMSAdministrator')
        result = wmsAdmin.allowSite(site, comment)
        if not result['OK']:
            return result

        rsc = ResourceStatusClient()
        proxyInfo = getProxyInfo()
        if not proxyInfo['OK']:
            return proxyInfo
        userName = proxyInfo['Value']['username']

        tomorrow = datetime.utcnow().replace(microsecond=0) + timedelta(days=1)

        result = rsc.modifyStatusElement('Site',
                                         'Status',
                                         name=site,
                                         statusType=statusType,
                                         status=status,
                                         reason=comment,
                                         tokenOwner=userName,
                                         tokenExpiration=tomorrow)

        return result
Exemplo n.º 8
0
  def allowSite(self, site, comment, printOutput=False):
    """Adds the site to the site mask.

       Example usage:

         >>> print diracAdmin.allowSite()
         {'OK': True, 'Value': }

       :return: S_OK,S_ERROR

    """
    result = self.__checkSiteIsValid(site)
    if not result['OK']:
      return result

    result = self.getSiteMask(status='Active')
    if not result['OK']:
      return result
    siteMask = result['Value']
    if site in siteMask:
      if printOutput:
        print 'Site %s is already Active' % site
      return S_OK('Site %s is already Active' % site)

    if self.rssFlag:
      result = self.sitestatus.setSiteStatus(site, 'Active', comment)
    else:
      wmsAdmin = RPCClient('WorkloadManagement/WMSAdministrator')
      result = wmsAdmin.allowSite(site, comment)
    if not result['OK']:
      return result

    if printOutput:
      print 'Site %s status is set to Active' % site

    return result