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.4 by afanfani, Tue May 27 19:08:17 2008 UTC vs.
Revision 1.10 by fanzago, Wed Aug 20 12:43:43 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):
13 > def LFNBase(PrimaryDataset,ProcessedDataset,merged=True,LocalUser=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", gethnUserName(), ProcessedDataset )
20 <    lfnbase = os.path.join(lfnbase, "user", getUserName(), ProcessedDataset )
18 >        lfnbase = os.path.join(lfnbase,"tmp")
19 >    #lfnbase = os.path.join(lfnbase, "user", getUserName(LocalUser=LocalUser), ProcessedDataset )
20 >    ### FEDE FOR NEW LFN ###
21 >    if (PrimaryDataset == 'null'):
22 >        PrimaryDataset = ProcessedDataset
23 >    lfnbase = os.path.join(lfnbase, "user", getUserName(LocalUser=LocalUser), PrimaryDataset, ProcessedDataset )
24 >    ########################
25 >
26      return lfnbase
27  
28 < def PFNportion(ProcessedDataset):
29 < #    pfnpath = os.path.join(gethnUserName(), ProcessedDataset )
30 <    pfnpath = os.path.join(getUserName(), ProcessedDataset )
28 > def PFNportion(PrimaryDataset,ProcessedDataset,LocalUser=False):
29 >    ### FEDE FOR NEW LFN ###
30 >    #pfnpath = os.path.join(getUserName(LocalUser=LocalUser), ProcessedDataset )
31 >    pfnpath = os.path.join(getUserName(LocalUser=LocalUser), PrimaryDataset, ProcessedDataset )
32 >    ########################
33      return pfnpath
34  
35   def getUnixUserName():
# Line 43 | Line 51 | def getDN():
51      try:
52          userdn = runCommand("voms-proxy-info -identity")
53          userdn = string.strip(userdn)
54 +        #search for a / to avoid picking up warning messages
55 +        userdn = userdn[userdn.find('/'):]
56      except:
57          msg = "Error. Problem with voms-proxy-info -identity command"
58          raise CrabException(msg)
59 <    return userdn
59 >    return userdn.split('\n')[0]
60  
61   def gethnUserName():
62      """
63      extract user name from SiteDB
64      """
55    import urllib
65      hnUserName = None
66      userdn = getDN()
67 +    mySiteDB = SiteDBJSON()
68 +
69      try:
70 <        sitedburl="https://cmsweb.cern.ch/sitedb/sitedb/json/index/dnUserName"
60 <        params = urllib.urlencode({'dn': userdn })
61 <        f = urllib.urlopen(sitedburl,params)
62 <        udata = f.read()
63 <        try:
64 <            userinfo= eval(udata)
65 <        except StandardError, ex:
66 <            msg = "Error. Problem extracting user name from %s : %s"%(sitedburl,ex)
67 <            raise CrabException(msg)
68 <        hnUserName = userinfo['user']
70 >        hnUserName = mySiteDB.dnUserName(dn=userdn)
71      except:
72 <        msg = "Error. Problem extracting user name from %s"%sitedburl
73 <        msg += "Check that you are registered in SiteDB, see https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"
72 >        msg = "Error. Problem extracting user name from SiteDB"
73 >        msg += "\n Check that you are registered in SiteDB, see https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"
74          raise CrabException(msg)
75      if not hnUserName:
76 <        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)
76 >        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
77          print msg
78          raise CrabException(msg)
79      return hnUserName
80  
81 < def getUserName():
81 > def getUserName(LocalUser=False):
82      """
83      extract user name from either SiteDB or Unix
84      """
85 <    try:
86 <      UserName=gethnUserName()
87 <    except:
88 <      common.logger.message("==> Using as username the Unix user name")
89 <      UserName=getUnixUserName()
85 >    if LocalUser:
86 >       common.logger.message("==> Using as username the Unix user name")
87 >       UserName=getUnixUserName()
88 >       return UserName
89 >
90 >    UserName=gethnUserName()
91      return UserName
92  
93   if __name__ == '__main__' :
# Line 92 | Line 95 | if __name__ == '__main__' :
95      """
96      from crab_logger import Logger
97      from WorkSpace import *
98 <    continue_dir="/afs/cern.ch/user/a/afanfani/"
98 >    continue_dir = os.path.expanduser("~")
99      cfg_params={'USER.logdir' : continue_dir }
100      common.work_space = WorkSpace(continue_dir, cfg_params)
101      log = Logger()
102      common.logger = log
103  
104 <    print "xx %s xx"%getUserName()
104 >    print "xx %s xx"%getUserName()
105      baselfn = LFNBase("datasetstring")
106 <    print baselfn    
106 >    print baselfn
107  
108      unmergedlfn = LFNBase("datasetstring",merged=False)
109 <    print unmergedlfn  
109 >    print unmergedlfn
110      print PFNportion("datasetstring")

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines