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

Comparing COMP/CRAB/python/LFNBaseName.py (file contents):
Revision 1.6 by afanfani, Wed May 28 18:18:05 2008 UTC vs.
Revision 1.11 by spiga, Sun Sep 21 10:36:13 2008 UTC

# Line 7 | Line 7 | from crab_exceptions import *
7   from crab_util import runCommand
8   import common
9   import os, string
10 + from ProdCommon.SiteDB.SiteDB import SiteDBJSON
11  
12  
13 < def LFNBase(ProcessedDataset,merged=True,LocalUser=False):
13 > def LFNBase(PrimaryDataset='',ProcessedDataset='',merged=True,LocalUser=False,publish=False):
14      """
15      """
16 <    lfnbase = "/store"
16 >    lfnbase = "/store"
17      if not merged:
18 <        lfnbase = os.path.join(lfnbase,"tmp")  
19 <    lfnbase = os.path.join(lfnbase, "user", getUserName(LocalUser=LocalUser), ProcessedDataset )
20 <      
21 <    return lfnbase
18 >        lfnbase = os.path.join(lfnbase,"tmp")
19 >    if (PrimaryDataset == 'null'):
20 >        PrimaryDataset = ProcessedDataset
21 >    lfnbase = os.path.join(lfnbase, "user", getUserName(LocalUser=LocalUser), PrimaryDataset, ProcessedDataset )
22  
23 < def PFNportion(ProcessedDataset,LocalUser=False):
23 <    pfnpath = os.path.join(getUserName(LocalUser=LocalUser), ProcessedDataset )
24 <    return pfnpath
23 >    return lfnbase
24  
25   def getUnixUserName():
26      """
# Line 42 | Line 41 | def getDN():
41      try:
42          userdn = runCommand("voms-proxy-info -identity")
43          userdn = string.strip(userdn)
44 +        #search for a / to avoid picking up warning messages
45 +        userdn = userdn[userdn.find('/'):]
46      except:
47          msg = "Error. Problem with voms-proxy-info -identity command"
48          raise CrabException(msg)
49 <    return userdn
49 >    return userdn.split('\n')[0]
50  
51   def gethnUserName():
52      """
53      extract user name from SiteDB
54      """
54    import urllib
55      hnUserName = None
56      userdn = getDN()
57 +    mySiteDB = SiteDBJSON()
58 +
59      try:
60 <        sitedburl="https://cmsweb.cern.ch/sitedb/sitedb/json/index/dnUserName"
59 <        params = urllib.urlencode({'dn': userdn })
60 <        f = urllib.urlopen(sitedburl,params)
61 <        udata = f.read()
62 <        try:
63 <            userinfo= eval(udata)
64 <        except StandardError, ex:
65 <            msg = "Error. Problem extracting user name from %s : %s \n SiteDB call output: \n %s"%(sitedburl,ex,udata)
66 <            raise CrabException(msg)
67 <        hnUserName = userinfo['user']
60 >        hnUserName = mySiteDB.dnUserName(dn=userdn)
61      except:
62 <        msg = "Error. Problem extracting user name from %s "%sitedburl
63 <        msg += "\n Check that you are registered in SiteDB, see https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"
71 <        msg += "\n SiteDB call output: \n %s"%udata
62 >        msg = "Error. Problem extracting user name from SiteDB"
63 >        msg += "\n Check that you are registered in SiteDB, see https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"
64          raise CrabException(msg)
65      if not hnUserName:
66 <        msg = "Error. There is no user name associated to DN %s in %s. You need to register in SiteDB with the instructions at https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"%(userdn,sitedburl)
66 >        msg = "Error. There is no user name associated to DN %s in SiteDB. You need to register in SiteDB with the instructions at https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB" % userdn
67          print msg
68          raise CrabException(msg)
69      return hnUserName
# Line 81 | Line 73 | def getUserName(LocalUser=False):
73      extract user name from either SiteDB or Unix
74      """
75      if LocalUser:
76 <       common.logger.message("==> Using as username the Unix user name")
76 >       common.logger.debug(10,"Using as username the Unix user name")
77         UserName=getUnixUserName()
78         return UserName
79 <    
79 >
80      UserName=gethnUserName()
81      return UserName
82  
# Line 93 | Line 85 | if __name__ == '__main__' :
85      """
86      from crab_logger import Logger
87      from WorkSpace import *
88 <    continue_dir="/afs/cern.ch/user/a/afanfani/"
88 >    continue_dir = os.path.expanduser("~")
89      cfg_params={'USER.logdir' : continue_dir }
90      common.work_space = WorkSpace(continue_dir, cfg_params)
91      log = Logger()
92      common.logger = log
93  
94 <    print "xx %s xx"%getUserName()
94 >    print "xx %s xx"%getUserName()
95      baselfn = LFNBase("datasetstring")
96 <    print baselfn    
96 >    print baselfn
97  
98      unmergedlfn = LFNBase("datasetstring",merged=False)
99 <    print unmergedlfn  
99 >    print unmergedlfn
100      print PFNportion("datasetstring")

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines