def ftsSites( self ): """ get fts site list """ sites = getSites() if not sites["OK"]: return sites sites = sites["Value"] ftsServers = getFTSServersForSites( sites ) if not ftsServers["OK"]: return ftsServers ftsServers = ftsServers["Value"] ftsSites = [] for site, ftsServerURL in ftsServers.items(): ftsSite = FTSSite() ftsSite.Name = site ftsSite.FTSServer = ftsServerURL # # should be read from CS as well ftsSite.MaxActiveJobs = self.maxActiveJobs ftsSites.append( ftsSite ) return S_OK( ftsSites )
if not getSites["OK"]: gLogger.error( "unable to read sites defined in CS!!!" ) DIRAC.exit( -1 ) getSites = getSites["Value"] if "LCG." + ftsSite not in getSites: gLogger.error( "Site '%s' is not defined in CS Resources/Sites section !!!" % ( "LCG.%s" % ftsSite ) ) DIRAC.exit( -1 ) SEs = gConfig.getOption( "/Resources/Sites/LCG/LCG.%s/SE" % ftsSite , [] ) if not SEs["OK"]: gLogger.error( "unable to read SEs attached to site LCG.%s: %s" % ftsSite ) DIRAC.exit( -1 ) SEs = SEs["Value"] newSite = FTSSite() newSite.Name = ftsSite newSite.FTSServer = ftsServer newSite.MaxActiveJobs = maxActiveJobs putSite = ftsClient.putFTSSite( newSite ) if not putSite["OK"]: gLogger.error( "unable to put new FTSSite: %s" % putSite["Message"] ) DIRAC.exit( -1 ) gLogger.always( "FTSSite '%s' using FTS server %s and serving %s SEs created" % ( newSite.Name, newSite.FTSServer, SEs ) ) DIRAC.exit( 0 )