def doMaster(self): """ Master method, which looks little bit spaguetti code, sorry ! - It gets all gocSites. As there is no bulk query, it compares with what we have on the database. It queries a portion of them. """ gocSites = CSHelpers.getGOCSites() if not gocSites["OK"]: return gocSites gocSites = gocSites["Value"] # resQuery = self.rmClient.selectGGUSTicketsCache( meta = { 'columns' : [ 'GocSite' ] } ) # if not resQuery[ 'OK' ]: # return resQuery # resQuery = [ element[0] for element in resQuery[ 'Value' ] ] # # gocNamesToQuery = set( gocSites ).difference( set( resQuery ) ) gLogger.info("Processing %s" % ", ".join(gocSites)) for gocNameToQuery in gocSites: # if gocNameToQuery is None: # self.metrics[ 'failed' ].append( 'None result' ) # continue result = self.doNew(gocNameToQuery) if not result["OK"]: self.metrics["failed"].append(result) return S_OK(self.metrics)
def doMaster( self ): ''' Master method, which looks little bit spaguetti code, sorry ! - It gets all gocSites. As there is no bulk query, it compares with what we have on the database. It queries a portion of them. ''' gocSites = CSHelpers.getGOCSites() if not gocSites[ 'OK' ]: return gocSites gocSites = gocSites[ 'Value' ] # resQuery = self.rmClient.selectGGUSTicketsCache( meta = { 'columns' : [ 'GocSite' ] } ) # if not resQuery[ 'OK' ]: # return resQuery # resQuery = [ element[0] for element in resQuery[ 'Value' ] ] # # gocNamesToQuery = set( gocSites ).difference( set( resQuery ) ) self.log.info( 'Processing %s' % ', '.join( gocSites ) ) for gocNameToQuery in gocSites: # if gocNameToQuery is None: # self.metrics[ 'failed' ].append( 'None result' ) # continue result = self.doNew( gocNameToQuery ) if not result[ 'OK' ]: self.metrics[ 'failed' ].append( result ) return S_OK( self.metrics )
def doMaster(self): ''' Master method, which looks little bit spaguetti code, sorry ! - It gets all sites and transforms them into gocSites. - It gets all the storage elements and transforms them into their hosts - It gets the fts, the ces and file catalogs. ''' gocSites = CSHelpers.getGOCSites() if not gocSites['OK']: return gocSites gocSites = gocSites['Value'] sesHosts = CSHelpers.getStorageElementsHosts() if not sesHosts['OK']: return sesHosts sesHosts = sesHosts['Value'] resources = sesHosts # # #FIXME: file catalogs need also to use their hosts # something similar applies to FTS Channels # #fts = CSHelpers.getFTS() #if fts[ 'OK' ]: # resources = resources + fts[ 'Value' ] #fc = CSHelpers.getFileCatalogs() #if fc[ 'OK' ]: # resources = resources + fc[ 'Value' ] ce = CSHelpers.getComputingElements() if ce['OK']: resources = resources + ce['Value'] gLogger.verbose('Processing Sites: %s' % ', '.join(gocSites)) siteRes = self.doNew(('Site', gocSites)) if not siteRes['OK']: self.metrics['failed'].append(siteRes['Message']) gLogger.verbose('Processing Resources: %s' % ', '.join(resources)) resourceRes = self.doNew(('Resource', resources)) if not resourceRes['OK']: self.metrics['failed'].append(resourceRes['Message']) return S_OK(self.metrics) ################################################################################ #EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF
def doMaster( self ): ''' Master method, which looks little bit spaguetti code, sorry ! - It gets all sites and transforms them into gocSites. - It gets all the storage elements and transforms them into their hosts - It gets the fts, the ces and file catalogs. ''' gocSites = CSHelpers.getGOCSites() if not gocSites[ 'OK' ]: return gocSites gocSites = gocSites[ 'Value' ] sesHosts = CSHelpers.getStorageElementsHosts() if not sesHosts[ 'OK' ]: return sesHosts sesHosts = sesHosts[ 'Value' ] resources = sesHosts # # #FIXME: file catalogs need also to use their hosts # something similar applies to FTS Channels # #fts = CSHelpers.getFTS() #if fts[ 'OK' ]: # resources = resources + fts[ 'Value' ] #fc = CSHelpers.getFileCatalogs() #if fc[ 'OK' ]: # resources = resources + fc[ 'Value' ] ce = CSHelpers.getComputingElements() if ce[ 'OK' ]: resources = resources + ce[ 'Value' ] gLogger.info( 'Processing Sites: %s' % ', '.join( gocSites ) ) siteRes = self.doNew( ( 'Site', gocSites ) ) if not siteRes[ 'OK' ]: self.metrics[ 'failed' ].append( siteRes[ 'Message' ] ) gLogger.info( 'Processing Resources: %s' % ', '.join( resources ) ) resourceRes = self.doNew( ( 'Resource', resources ) ) if not resourceRes[ 'OK' ]: self.metrics[ 'failed' ].append( resourceRes[ 'Message' ] ) return S_OK( self.metrics ) ################################################################################ #EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF
def doMaster( self ): ''' Master method, which looks little bit spaghetti code, sorry ! - It gets all sites and transforms them into gocSites. - It gets all the storage elements and transforms them into their hosts - It gets the the CEs (FTS and file catalogs will come). ''' gocSites = CSHelpers.getGOCSites() if not gocSites[ 'OK' ]: return gocSites gocSites = gocSites[ 'Value' ] sesHosts = CSHelpers.getStorageElementsHosts() if not sesHosts[ 'OK' ]: return sesHosts sesHosts = sesHosts[ 'Value' ] resources = sesHosts ftsServer = getFTS3Servers() if ftsServer[ 'OK' ]: resources.extend( ftsServer[ 'Value' ] ) #TODO: file catalogs need also to use their hosts #fc = CSHelpers.getFileCatalogs() #if fc[ 'OK' ]: # resources = resources + fc[ 'Value' ] ce = CSHelpers.getComputingElements() if ce[ 'OK' ]: resources.extend( ce[ 'Value' ] ) gLogger.verbose( 'Processing Sites: %s' % ', '.join( gocSites ) ) siteRes = self.doNew( ( 'Site', gocSites ) ) if not siteRes[ 'OK' ]: self.metrics[ 'failed' ].append( siteRes[ 'Message' ] ) gLogger.verbose( 'Processing Resources: %s' % ', '.join( resources ) ) resourceRes = self.doNew( ( 'Resource', resources ) ) if not resourceRes[ 'OK' ]: self.metrics[ 'failed' ].append( resourceRes[ 'Message' ] ) return S_OK( self.metrics ) ################################################################################ #EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF
def doMaster(self): """ Master method, which looks little bit spaguetti code, sorry ! - It gets all sites and transforms them into gocSites. - It gets all the storage elements and transforms them into their hosts - It gets the fts, the ces and file catalogs. """ gocSites = CSHelpers.getGOCSites() if not gocSites["OK"]: return gocSites gocSites = gocSites["Value"] sesHosts = CSHelpers.getStorageElementsHosts() if not sesHosts["OK"]: return sesHosts sesHosts = sesHosts["Value"] resources = sesHosts # # # FIXME: file catalogs need also to use their hosts # something similar applies to FTS Channels # # fts = CSHelpers.getFTS() # if fts[ 'OK' ]: # resources = resources + fts[ 'Value' ] # fc = CSHelpers.getFileCatalogs() # if fc[ 'OK' ]: # resources = resources + fc[ 'Value' ] ce = CSHelpers.getComputingElements() if ce["OK"]: resources = resources + ce["Value"] gLogger.verbose("Processing Sites: %s" % ", ".join(gocSites)) siteRes = self.doNew(("Site", gocSites)) if not siteRes["OK"]: self.metrics["failed"].append(siteRes["Message"]) gLogger.verbose("Processing Resources: %s" % ", ".join(resources)) resourceRes = self.doNew(("Resource", resources)) if not resourceRes["OK"]: self.metrics["failed"].append(resourceRes["Message"]) return S_OK(self.metrics)
def doMaster( self ): ''' Master method, which looks little bit spaghetti code, sorry ! - It gets all sites and transforms them into gocSites. - It gets all the storage elements and transforms them into their hosts - It gets the the CEs (FTS and file catalogs will come). ''' gocSites = CSHelpers.getGOCSites() if not gocSites[ 'OK' ]: return gocSites gocSites = gocSites[ 'Value' ] sesHosts = CSHelpers.getStorageElementsHosts() if not sesHosts[ 'OK' ]: return sesHosts sesHosts = sesHosts[ 'Value' ] resources = sesHosts ftsServer = getFTS3Servers() if ftsServer[ 'OK' ]: resources.extend( ftsServer[ 'Value' ] ) #TODO: file catalogs need also to use their hosts #fc = CSHelpers.getFileCatalogs() #if fc[ 'OK' ]: # resources = resources + fc[ 'Value' ] ce = CSHelpers.getComputingElements() if ce[ 'OK' ]: resources.extend( ce[ 'Value' ] ) self.log.verbose( 'Processing Sites: %s' % ', '.join( gocSites ) ) siteRes = self.doNew( ( 'Site', gocSites ) ) if not siteRes[ 'OK' ]: self.metrics[ 'failed' ].append( siteRes[ 'Message' ] ) self.log.verbose( 'Processing Resources: %s' % ', '.join( resources ) ) resourceRes = self.doNew( ( 'Resource', resources ) ) if not resourceRes[ 'OK' ]: self.metrics[ 'failed' ].append( resourceRes[ 'Message' ] ) return S_OK( self.metrics )
def doMaster(self): """ Master method, which looks little bit spaghetti code, sorry ! - It gets all sites and transforms them into gocSites. - It gets all the storage elements and transforms them into their hosts - It gets the the CEs (FTS and file catalogs will come). """ gocSites = CSHelpers.getGOCSites() if not gocSites["OK"]: return gocSites gocSites = gocSites["Value"] sesHosts = CSHelpers.getStorageElementsHosts() if not sesHosts["OK"]: return sesHosts sesHosts = sesHosts["Value"] resources = sesHosts ftsServer = getFTS3Servers() if ftsServer["OK"]: resources.extend(ftsServer["Value"]) # TODO: file catalogs need also to use their hosts # fc = CSHelpers.getFileCatalogs() # if fc[ 'OK' ]: # resources = resources + fc[ 'Value' ] ce = CSHelpers.getComputingElements() if ce["OK"]: resources.extend(ce["Value"]) self.log.verbose("Processing Sites: %s" % ", ".join(gocSites)) siteRes = self.doNew(("Site", gocSites)) if not siteRes["OK"]: self.metrics["failed"].append(siteRes["Message"]) self.log.verbose("Processing Resources: %s" % ", ".join(resources)) resourceRes = self.doNew(("Resource", resources)) if not resourceRes["OK"]: self.metrics["failed"].append(resourceRes["Message"]) return S_OK(self.metrics)