1
2
3
4 """
5 Interface for configuring pre/post icetray scripts
6
7 copyright (c) 2005 the icecube collaboration
8
9 @version: $Revision: $
10 @date: $Date: $
11 @author: Juan Carlos Diaz Velez <juancarlos@icecube.wisc.edu>
12 """
13
14 import os
15 import re
16 import sys
17 import math
18 import dircache
19 import time
20 import string
21 import shutil
22 import cPickle
23 from ipmodule import IPBaseClass
24 import logging
25
27 """
28 This class provides an interface for preprocessing files in iceprod
29 """
30
36
37
39 if not IPBaseClass.Execute(self,stats): return 0
40 infile = self.GetParameter('infile')
41 outfile = self.GetParameter('outfile')
42 cmd = "mv %s %s" % (infile,outfile)
43 retval = os.system(cmd)
44 if retval == 0:
45 return retval
46 else:
47 self.logger.error("Failed to execute command '%s'" % cmd)
48 raise Exception, "Failed to execute command '%s'" % cmd
49
50
52 """
53 This class provides functionality for renaming multiple files using Bash
54 substitutions.
55 """
56
58 IPBaseClass.__init__(self)
59 self.AddParameter('inpattern','Pattern to match against file names when checking for files to rename','')
60 self.AddParameter('outpattern','Bash substitution expression to be applied to filenames when output','')
61 self.logger = logging.getLogger('iceprod::RenameMultipleFiles')
62
63
65 if not IPBaseClass.Execute(self,stats): return 0
66 inpattern = self.GetParameter('inpattern')
67 outpattern = self.GetParameter('outpattern')
68 cmd = "for i in %s; do mv $i ${i/%s}; done" % (inpattern, outpattern)
69 retval = os.system(cmd)
70 if retval == 0:
71 return retval
72 else:
73 msg = "Failed to execute command '%s'" % cmd
74 self.logger.error(msg)
75 raise Exception, msg
76
77
79 """
80 This class provides an interface for preprocessing files in iceprod
81 """
82
88
89
91 if not IPBaseClass.Execute(self,stats): return 0
92 filelist = self.GetParameter('filelist')
93 retval = 0
94 cmd = ''
95 for file in filelist:
96 cmd = "rm -f %s" % file
97 retval += os.system(cmd)
98 if retval == 0:
99 return retval
100 else:
101 self.logger.error("Failed to execute command '%s'" % cmd)
102 raise Exception, "Failed to execute command '%s'" % cmd
103
104
106 """
107 This class provides an interface for changing permissions of a file in iceprod
108 """
109
115
116
118 if not IPBaseClass.Execute(self,stats): return 0
119 file = self.GetParameter('file')
120 flags = self.GetParameter('flags')
121 cmd = "chmod %s %s" % (flags,file)
122 retval = os.system(cmd)
123 if retval == 0:
124 return retval
125 else:
126 self.logger.error("Failed to execute command '%s'" % cmd)
127 raise Exception, "Failed to execute command '%s'" % cmd
128
129
131 """
132 This class provides an interface for compressing files in iceprod
133 """
134
140
141
143 if not IPBaseClass.Execute(self,stats): return 0
144 infile = self.GetParameter('infile')
145 outfile = self.GetParameter('outfile')
146 cmd = "gzip -f -q -6 -c %s > %s" % (infile,outfile)
147 retval = os.system(cmd)
148 if retval == 0:
149 return retval
150 else:
151 self.logger.error("Failed to execute command '%s'" % cmd)
152 raise Exception, "Failed to execute command '%s'" % cmd
153
155 """
156 This class provides an interface for preprocessing files in iceprod
157 """
158
164
165
167 if not IPBaseClass.Execute(self,stats): return 0
168 filelist = self.GetParameter('filelist')
169 tar = self.GetParameter('outputfile')
170 retval = 0
171 cmd = ''
172 if isinstance(filelist,str):
173
174 cmd = "tar"
175 if not os.path.exists(tar):
176 cmd += " -cf"
177 else:
178 cmd += " -uf"
179 cmd += " %s %s" %(tar,filelist)
180 self.logger.debug(cmd)
181 retval += os.system(cmd)
182 else:
183
184 for file in filelist:
185 dir = os.path.dirname(file)
186 cmd = "tar"
187 if os.path.isdir(dir):
188 cmd += " -C%s " % dir
189 if not os.path.exists(tar):
190 cmd += " -cf"
191 else:
192 cmd += " -uf"
193 cmd += " %s %s" %(tar,os.path.basename(file))
194 self.logger.debug(cmd)
195 retval += os.system(cmd)
196 if retval == 0:
197 return retval
198 else:
199 self.logger.error("Failed to execute command '%s'" % cmd)
200 raise Exception, "Failed to execute command '%s'" % cmd
201
202
204 """
205 This class provides an interface for preprocessing files in iceprod
206 """
207
209 IPBaseClass.__init__(self)
210 self.AddParameter('inputfilelist','The names of the files you want to merge',[])
211 self.AddParameter('outputfile','Name of output tarball',"summary.xml")
212 self.logger = logging.getLogger('iceprod::SummaryMerger')
213
214
234