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
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
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
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'], [] )
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'], [])
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
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