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.5 by afanfani, Wed May 28 13:01:17 2008 UTC vs.
Revision 1.21 by spiga, Fri Mar 6 18:36:30 2009 UTC

# Line 4 | Line 4 | _LFNBaseName_
4   """
5  
6   from crab_exceptions import *
7 < from crab_util import runCommand
7 > from crab_util import runCommand, getUserName
8   import common
9 < import os, string
9 > import os, string, time
10  
11  
12 < def LFNBase(ProcessedDataset,merged=True,LocalUser=False):
12 > def LFNBase(forced_path, PrimaryDataset='',ProcessedDataset='',merged=True,publish=False):
13      """
14      """
15 <    lfnbase = "/store"
16 <    if not merged:
17 <        lfnbase = os.path.join(lfnbase,"tmp")  
18 <    lfnbase = os.path.join(lfnbase, "user", getUserName(LocalUser=LocalUser), ProcessedDataset )
19 <      
20 <    return lfnbase
21 <
22 < def PFNportion(ProcessedDataset,LocalUser=False):
23 <    pfnpath = os.path.join(getUserName(LocalUser=LocalUser), ProcessedDataset )
24 <    return pfnpath
15 >    if (PrimaryDataset == 'null'):
16 >        PrimaryDataset = ProcessedDataset
17 >    if PrimaryDataset != '':
18 >        if ( PrimaryDataset[0] == '/' ):  PrimaryDataset=PrimaryDataset[1:]  
19 >    lfnbase = os.path.join(forced_path, getUserName(), PrimaryDataset, ProcessedDataset)
20  
21 < def getUnixUserName():
27 <    """
28 <    extract username from whoami
29 <    """
30 <    try:
31 <        UserName = runCommand("whoami")
32 <        UserName = string.strip(UserName)
33 <    except:
34 <        msg = "Error. Problem with whoami command"
35 <        raise CrabException(msg)
36 <    return UserName
37 <
38 < def getDN():
39 <    """
40 <    extract DN from user proxy's identity
41 <    """
42 <    try:
43 <        userdn = runCommand("voms-proxy-info -identity")
44 <        userdn = string.strip(userdn)
45 <    except:
46 <        msg = "Error. Problem with voms-proxy-info -identity command"
47 <        raise CrabException(msg)
48 <    return userdn
49 <
50 < def gethnUserName():
51 <    """
52 <    extract user name from SiteDB
53 <    """
54 <    import urllib
55 <    hnUserName = None
56 <    userdn = getDN()
57 <    try:
58 <        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"%(sitedburl,ex)
66 <            raise CrabException(msg)
67 <        hnUserName = userinfo['user']
68 <    except:
69 <        msg = "Error. Problem extracting user name from %s"%sitedburl
70 <        msg += "Check that you are registered in SiteDB, see https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"
71 <        raise CrabException(msg)
72 <    if not hnUserName:
73 <        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)
74 <        print msg
75 <        raise CrabException(msg)
76 <    return hnUserName
21 >    return lfnbase
22  
78 def getUserName(LocalUser=False):
79    """
80    extract user name from either SiteDB or Unix
81    """
82    if LocalUser:
83       common.logger.message("==> Using as username the Unix user name")
84       UserName=getUnixUserName()
85       return UserName
86    
87    UserName=gethnUserName()
88    return UserName
23  
24   if __name__ == '__main__' :
25      """
26      """
27      from crab_logger import Logger
28      from WorkSpace import *
29 <    continue_dir="/afs/cern.ch/user/a/afanfani/"
29 >    continue_dir = os.path.expanduser("~")
30      cfg_params={'USER.logdir' : continue_dir }
31      common.work_space = WorkSpace(continue_dir, cfg_params)
32      log = Logger()
33      common.logger = log
34  
35 <    print "xx %s xx"%getUserName()
35 >    print "xx %s xx"%getUserName()
36      baselfn = LFNBase("datasetstring")
37 <    print baselfn    
37 >    print baselfn
38  
39      unmergedlfn = LFNBase("datasetstring",merged=False)
40 <    print unmergedlfn  
40 >    print unmergedlfn
41      print PFNportion("datasetstring")

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines