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.21 by spiga, Fri Mar 6 18:36:30 2009 UTC vs.
Revision 1.26 by fanzago, Mon Apr 15 15:20:23 2013 UTC

# Line 16 | Line 16 | def LFNBase(forced_path, PrimaryDataset=
16          PrimaryDataset = ProcessedDataset
17      if PrimaryDataset != '':
18          if ( PrimaryDataset[0] == '/' ):  PrimaryDataset=PrimaryDataset[1:]  
19 <    lfnbase = os.path.join(forced_path, getUserName(), PrimaryDataset, ProcessedDataset)
20 <
19 >    if forced_path.find('store/group')>0:
20 >        lfnbase = os.path.join(forced_path, PrimaryDataset, ProcessedDataset)
21 >    else:
22 >        lfnbase = os.path.join(forced_path, getUserName(), PrimaryDataset, ProcessedDataset)
23 >    if (publish == True):
24 >        checkSlash(ProcessedDataset)
25 >        checkLength(lfnbase, forced_path, PrimaryDataset, ProcessedDataset)
26      return lfnbase
27  
28 + def checkSlash(ProcessedDataset):
29 +    """
30 +    check if [USER].publish_data_name contains not allowed slash
31 +    """
32 +    import re
33 +    
34 +    #if (str(ProcessedDataset).find("/") > -1):
35 +    #        raise CrabException("Warning: [USER] publication_data_name contains a '/' characters that is not allowed. Please change the publication_data_name value")
36 +    m = re.findall("[^-\w_\.%]+", str(ProcessedDataset))
37 +    if (m != []):
38 +        common.logger.debug("check not allowed characters in the publication_data_name  = " + str(m))
39 +        raise CrabException("Warning: [USER] publication_data_name contains not allowed characters %s . Please change the publication_data_name value" % str(m))
40 +
41 + def checkLength(lfnbase, forced_path, PrimaryDataset, ProcessedDataset):
42 +    """
43 +    """
44 +    
45 +    len_primary = len(PrimaryDataset)
46 +    
47 +    common.logger.debug("CheckLength of LFN and User DatasetName")
48 +    common.logger.debug("max length for complete LFN is 500 characters, max length for primary dataset is 100 characters")
49 +    common.logger.debug("PrimaryDataset = " + PrimaryDataset)
50 +    common.logger.debug("len_primary = " + str(len_primary))
51 +
52 +    if (len_primary > 100):
53 +       raise CrabException("Warning: you required user_data_publication. The PrimaryDatasetName has to be < 100 characters")
54 +    
55 +    if (PrimaryDataset != ProcessedDataset):
56 +        common.logger.debug("ProcessedDataset = " + ProcessedDataset)
57 +        common.logger.debug("len(ProcessedDataset) = " + str(len(ProcessedDataset)))
58 +
59 +    common.logger.debug("forced_path = " + forced_path)
60 +    common.logger.debug("len(forced_path) = " + str(len(forced_path)))    
61 +    
62 +    user = getUserName()
63 +    len_user_name = len(user)
64 +    common.logger.debug("user = " + user)
65 +    common.logger.debug("len_user_name = " + str(len_user_name))
66 +    
67 +    common.logger.debug("lfnbase = " + lfnbase)
68 +    common.logger.debug("len(lfnbase) = " + str(len(lfnbase)))
69 +    
70 +    ### we suppose a output_file_name of 50 characters ###
71 +    if len(lfnbase)>450:
72 +        if (PrimaryDataset != ProcessedDataset):
73 +            #500 - len_user_name - len_primary - len(forced) - len(PSETHASH = 32) - 4(/) - output(50)
74 +            #~400 - len_user_name - len_primary - len(forced)
75 +            if (len(ProcessedDataset) > (400 - len_user_name - len_primary - len(forced_path))):
76 +                raise CrabException("Warning: publication name too long. USER.publish_data_name has to be < " + str(400 - len_user_name - len_primary - len(forced_path)) + " characters")
77 +            else:
78 +                raise CrabException("Warning: LFN > 500 characters")
79 +        else:
80 +            if (len(ProcessedDataset) > (400 - len_user_name - len(forced_path)) / 2):
81 +                raise CrabException("Warning: publication name too long. USER.publish_data_name has to be < " + str((400 - len_user_name - len(forced_path)) / 2) + " characters")
82 +            else:
83 +                raise CrabException("Warning: LFN > 500 characters")
84 +            
85  
86   if __name__ == '__main__' :
87      """
88      """
89 <    from crab_logger import Logger
90 <    from WorkSpace import *
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
89 >    import logging
90 >    common.logger = logging
91  
92      print "xx %s xx"%getUserName()
93      baselfn = LFNBase("datasetstring")

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines