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.9 by ewv, Tue Jul 8 19:34:00 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
10 < from ProdCommon.SiteDB.SiteDB import SiteDBJSON
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 )
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      return lfnbase
22  
23 def PFNportion(ProcessedDataset,LocalUser=False):
24    pfnpath = os.path.join(getUserName(LocalUser=LocalUser), ProcessedDataset )
25    return pfnpath
26
27 def getUnixUserName():
28    """
29    extract username from whoami
30    """
31    try:
32        UserName = runCommand("whoami")
33        UserName = string.strip(UserName)
34    except:
35        msg = "Error. Problem with whoami command"
36        raise CrabException(msg)
37    return UserName
38
39 def getDN():
40    """
41    extract DN from user proxy's identity
42    """
43    try:
44        userdn = runCommand("voms-proxy-info -identity")
45        userdn = string.strip(userdn)
46        #search for a / to avoid picking up warning messages
47        userdn = userdn[userdn.find('/'):]
48    except:
49        msg = "Error. Problem with voms-proxy-info -identity command"
50        raise CrabException(msg)
51    return userdn.split('\n')[0]
52
53 def gethnUserName():
54    """
55    extract user name from SiteDB
56    """
57    hnUserName = None
58    userdn = getDN()
59    mySiteDB = SiteDBJSON()
60
61    try:
62        hnUserName = mySiteDB.dnUserName(dn=userdn)
63    except:
64        msg = "Error. Problem extracting user name from SiteDB"
65        msg += "\n Check that you are registered in SiteDB, see https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"
66        raise CrabException(msg)
67    if not hnUserName:
68        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
69        print msg
70        raise CrabException(msg)
71    return hnUserName
72
73 def getUserName(LocalUser=False):
74    """
75    extract user name from either SiteDB or Unix
76    """
77    if LocalUser:
78       common.logger.message("==> Using as username the Unix user name")
79       UserName=getUnixUserName()
80       return UserName
81
82    UserName=gethnUserName()
83    return UserName
23  
24   if __name__ == '__main__' :
25      """

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines