ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/ServerConfig.py
(Generate patch)

Comparing COMP/CRAB/python/ServerConfig.py (file contents):
Revision 1.25 by spiga, Sun Jan 17 17:31:36 2010 UTC vs.
Revision 1.26 by spiga, Sun Jan 17 19:05:52 2010 UTC

# Line 7 | Line 7 | import os, time
7   class ServerConfig:
8      def __init__(self, serverName):
9          import string
10 <        serverName = string.lower(serverName)
11 <        common.logger.debug('Calling ServerConfig '+serverName)
10 >        self.serverName = string.lower(serverName)
11 >        common.logger.debug('Calling ServerConfig '+self.serverName)
12  
13          url ='http://cmsdoc.cern.ch/cms/LCG/crab/config/'
14  
15 <        downloader = Downloader(url, os.getcwd())
15 >        self.downloader = Downloader(url)
16            
17  
18 <   def config(self):
18 >    def config(self):
19          """
20          """
21 <        if 'default' in  serverName:
22 <            serverName = self.selectServer()
23 <        if 'server_' in serverName:
24 <            configFileName = '%s.conf'%serverName
21 >        if 'default' in  self.serverName:
22 >            self.serverName = self.selectServer()
23 >        if 'server_' in self.serverName:
24 >            configFileName = '%s.conf'%self.serverName
25          else:
26 <            configFileName = 'server_%s.conf'%serverName
27 <
28 <        serverConfig = downloader.config(configFileName)
29 <
26 >            configFileName = 'server_%s.conf'%self.serverName
27 >
28 >        serverConfig = eval(self.downloader.config(configFileName))
29 >
30          if not serverConfig:
31              serverConfig = {}
32 <        serverConfig['serverGenericName']=serverName
33 <
34 <        return serveConfig
32 >        serverConfig['serverGenericName']=self.serverName
33  
34 +        return serverConfig
35 +
36      def selectServer(self):
37          """
38          """
39          common.logger.debug('getting serverlist from web')
40          # get a list of available servers
41          serverListFileName ='AvalableServerList'
42 <
43 <        ## downloader
44 <        serverListFile = downloader.config(serverListFileName)
45 <
42 >
43 >        serverListFile = self.downloader.config(serverListFileName)
44 >
45          if not serverListFile:
46              msg = 'List of avalable Server '+serverListFileName+' from '+self.url+' is empty\n'
47              msg += 'Please report to CRAB feedback hypernews hn-cms-crabFeedback@cern.ch'
# Line 51 | Line 50 | class ServerConfig:
50          serverList=[]
51          [serverList.append(string.split(string.strip(it))) for it in serverListFile if (it.strip() and not it.strip()[0]=="#")]
52          common.logger.debug('All avaialble servers: '+str(serverList))
53 <
53 >
54          # select servers from client version
55          compatibleServerList=[]
56          for s in serverList:
# Line 65 | Line 64 | class ServerConfig:
64              
65              if vv[0]<=common.prog_version and common.prog_version<=vv[1] and common.scheduler.name()==string.lower(s[2]):
66                  compatibleServerList.append(s[0])
67 <
67 >
68          common.logger.debug('All avaialble servers compatible with %s: '%common.prog_version_str +str(serverList))
69          if len(compatibleServerList)==0:
70              msg = "No compatible server available with client version %s\n"%common.prog_version_str
71              msg += "Exiting"
72              raise CrabException(msg)
73 <
73 >
74          # if more than one, pick up a random one, waiting for something smarter (SiteDB)
75          import random
76          serverName = random.choice(compatibleServerList)
77          common.logger.debug('Avaialble servers: '+str(compatibleServerList)+' choosen: '+serverName)
78 <
78 >
79          return serverName

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines