ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/OSUT3Analysis/DBTools/scripts/osucrab
(Generate patch)

Comparing UserCode/OSUT3Analysis/DBTools/scripts/osucrab (file contents):
Revision 1.1 by ahart, Wed Jun 6 12:14:37 2012 UTC vs.
Revision 1.10 by ahart, Thu Aug 1 20:32:49 2013 UTC

# Line 5 | Line 5 | use Mysql;
5  
6   sub getWorkingDir;
7   sub dbUpdate;
8 + sub dbStatus;
9   sub dbReport;
10   sub dbInsert;
11   sub addSlashes;
12   sub getOption;
13 + sub deleteEntry;
14  
15 < our $db;
15 > our $db = Mysql->connect ("cmshead.mps.ohio-state.edu", "ntuple", "osuT3User") or die "Failed to connect to Tier 3, stopped";
16  
17   my $arg = join (" ", @ARGV);
18   if ($arg =~ m/-create/)
# Line 23 | Line 25 | if ($arg =~ m/-create/)
25      my $dataset = getOption (\@crabCfg, "datasetpath");
26      my $psetName = getOption (\@crabCfg, "pset");
27      my $jsonFileName = getOption (\@crabCfg, "lumi_mask");
28 <    my $submissionLogName = getOption (\@crabCfg, "ui_working_dir");
29 <    $submissionLogName .= "/log/crab.log";
28 >    my $workingDir = getOption (\@crabCfg, "ui_working_dir");
29 >    my $publishName = "";
30 >    $publishName = getOption (\@crabCfg, "publish_data_name") if getOption (\@crabCfg, "publish_data") eq "1";
31 >    my $stageOutLocation = getOption (\@crabCfg, "storage_element");
32  
33      print "Ntuple format (BEAN): ";
34      my $format = <STDIN>;
# Line 34 | Line 38 | if ($arg =~ m/-create/)
38      my $comment = <STDIN>;
39      $comment =~ s/\n//g;
40  
41 <    system ("crab $arg");
41 >    system ("rm -f .crabSubmit.log ; crab $arg 2>&1 | tee .crabSubmit.log");
42  
43      my $status = "created";
44      $status = "submitted" if $arg =~ m/-submit/;
45 <    my $results = dbInsert ($dataset, $ENV{"USER"}, $format, "", 0, 0, $status, $comment, $psetName, $crabCfgName, $jsonFileName, $submissionLogName);
45 >    my $hostname = `/bin/hostname`;
46 >    $hostname =~ s/[\f\n\r]//g;
47 >    my $results = dbInsert ($dataset, "$ENV{'USER'}\@$hostname", $format, "", 0, 0, $status, $comment, $psetName, $crabCfgName, $jsonFileName, $workingDir, $publishName, $stageOutLocation);
48    }
49   elsif ($arg =~ m/-submit/)
50    {
51      my $workingDir = getWorkingDir (\@ARGV);
52 <    open (ID_FILE, "<$workingDir/log/.osuID");
53 <    my $id = <ID_FILE>;
54 <    close (ID_FILE);
55 <    $id =~ s/(.*)\n/$1/;
56 <    my $submissionLogName = $workingDir . "/log/crab.log";
57 <
58 <    system ("crab $arg");
59 <
60 <    my $results = dbUpdate ($id, "submitted", $submissionLogName);
52 >    my $id = -1;
53 >    if (-e "$workingDir/log/.osuID")
54 >      {
55 >        open (ID_FILE, "<$workingDir/log/.osuID");
56 >        $id = <ID_FILE>;
57 >        close (ID_FILE);
58 >        $id =~ s/(.*)\n/$1/;
59 >      }
60 >    my $logFile = $workingDir . "/log/crabSubmit.log";
61 >
62 >    system ("crab $arg 2>&1 | tee -a .crabSubmit.log ; if [ -e \"$workingDir/log/crabSubmit.log\" ] ; then rm -f .crabSubmit.log ; else mv -f .crabSubmit.log $workingDir/log/crabSubmit.log ; fi");
63 >
64 >    my $hostname = `/bin/hostname`;
65 >    $hostname =~ s/[\f\n\r]//g;
66 >    my $results = dbUpdate ($id, "submitted", "$ENV{'USER'}\@$hostname", $logFile) if $id > -1;
67    }
68   elsif ($arg =~ m/-report/)
69    {
70      my $workingDir = getWorkingDir (\@ARGV);
71 <    open (ID_FILE, "<$workingDir/log/.osuID");
72 <    my $id = <ID_FILE>;
73 <    close (ID_FILE);
74 <    $id =~ s/(.*)\n/$1/;
71 >    my $id = -1;
72 >    if (-e "$workingDir/log/.osuID")
73 >      {
74 >        open (ID_FILE, "<$workingDir/log/.osuID");
75 >        $id = <ID_FILE>;
76 >        close (ID_FILE);
77 >        $id =~ s/(.*)\n/$1/;
78 >      }
79      my $lumiSummaryName = $workingDir . "/res/lumiSummary.json";
80  
81      system ("crab $arg");
82  
83 <    my $results = dbReport ($id, "complete", $lumiSummaryName);
83 >    my $hostname = `/bin/hostname`;
84 >    $hostname =~ s/[\f\n\r]//g;
85 >    my $results = dbReport ($id, $lumiSummaryName, "$ENV{'USER'}\@$hostname") if $id > -1;
86 >  }
87 > elsif ($arg =~ m/-status/)
88 >  {
89 >    my $workingDir = getWorkingDir (\@ARGV);
90 >    my $id = -1;
91 >    if (-e "$workingDir/log/.osuID")
92 >      {
93 >        open (ID_FILE, "<$workingDir/log/.osuID");
94 >        $id = <ID_FILE>;
95 >        close (ID_FILE);
96 >        $id =~ s/(.*)\n/$1/;
97 >      }
98 >    my $currentStatusName = "$workingDir/log/.currentStatus";
99 >    unlink ($currentStatusName) if -e $currentStatusName;
100 >    system ("crab $arg | tee $currentStatusName");
101 >    my $hostname = `/bin/hostname`;
102 >    $hostname =~ s/[\f\n\r]//g;
103 >    my $results = dbStatus ($id, $currentStatusName, "$ENV{'USER'}\@$hostname") if $id > -1;
104 >    unlink ($currentStatusName);
105 >  }
106 > elsif ($arg =~ m/-kill/)
107 >  {
108 >    my $workingDir = getWorkingDir (\@ARGV);
109 >    my $id = -1;
110 >    if (-e "$workingDir/log/.osuID")
111 >      {
112 >        open (ID_FILE, "<$workingDir/log/.osuID");
113 >        $id = <ID_FILE>;
114 >        close (ID_FILE);
115 >        $id =~ s/(.*)\n/$1/;
116 >      }
117 >
118 >    print "Are you cancelling this task? (y/N): ";
119 >    my $response = <STDIN>;
120 >    $response =~ s/\n//g;
121 >    deleteEntry ($id) if lc ($response) eq "y";
122 >    system ("crab $arg");
123    }
124   else
125    {
# Line 100 | Line 155 | getOption
155    my $optionValue;
156    foreach my $line (@$file)
157      {
158 +      next if ($line =~ m/^[ \t\n]*#/);
159        next if (!($line =~ m/$option  *=  *[^ \t\n]*/));
160        $optionValue = $line;
161        $optionValue =~ s/.*$option  *=  *([^ \t\n]*).*\n/$1/;
# Line 125 | Line 181 | sub
181   dbInsert
182   {
183    my $dataset = shift;
184 <  my $user = shift;
184 >  my $userAndHost = shift;
185    my $format = shift;
186    my $location = shift;
187    my $nFiles = shift;
# Line 135 | Line 191 | dbInsert
191    my $psetName = shift;
192    my $crabCfgName = shift;
193    my $jsonFileName = shift;
194 <  my $submissionLogName = shift;
194 >  my $workingDir = shift;
195 >  my $publishName = shift;
196 >  my $stageOutLocation = shift;
197 >
198 >  my $user = $userAndHost;
199 >  $user =~ s/@.*$//;
200  
201    open (PY_CONFIG, "<$psetName");
202    my @pset = <PY_CONFIG>;
# Line 149 | Line 210 | dbInsert
210    my @jsonFile = <JSON_FILE>;
211    close (JSON_FILE);
212    my $jsonFile = join ("", @jsonFile);
152  open (SUBMISSION_LOG, "<$submissionLogName");
153  my @submissionLog = <SUBMISSION_LOG>;
154  close (SUBMISSION_LOG);
155  my $submissionLog = join ("", @submissionLog);
213  
214    $dataset = addSlashes ($dataset);
215    $user = addSlashes ($user);
# Line 160 | Line 217 | dbInsert
217    $pset = addSlashes ($pset);
218    $crabCfg = addSlashes ($crabCfg);
219    $jsonFile = addSlashes ($jsonFile);
163  $submissionLog = addSlashes ($submissionLog);
220    $location = addSlashes ($location);
221    $status = addSlashes ($status);
222    $comment = addSlashes ($comment);
223 +  $publishName = addSlashes ($publishName);
224 +  $stageOutLocation = addSlashes ($stageOutLocation);
225  
226    my $results;
169  $db = Mysql->connect ("cmshead.mps.ohio-state.edu", "ntuple", "osuT3User");
227    my $query = "select max(id) from ntuple";
228    $db->selectdb ("ntuple");
229    $results = $db->query ($query);
# Line 174 | Line 231 | dbInsert
231    my $id = 1;
232    $id = $row[0] + 1 if $results->numrows ();
233  
177  my $workingDir = $submissionLogName;
178  $workingDir =~ s/(.*)\/log\/crab\.log/$1/;
234    open (ID_FILE, ">$workingDir/log/.osuID");
235    print ID_FILE "$id\n";
236    close (ID_FILE);
237  
238 <  $query = "insert into ntuple (id, dataset, creationTime, lastUpdateTime, user, format, location, nFiles, sizeInGB, status, comment, pset, crabCfg, jsonFile, submissionLog) values ($id, '$dataset', now(), now(), '$user', '$format', '$location', $nFiles, $sizeInGB, '$status', '$comment', '$pset', '$crabCfg', '$jsonFile', '$submissionLog')";
238 >  $query = "insert into ntuple (id, dataset, creationTime, lastUpdateTime, lastUpdateUser, user, format, location, nFiles, sizeInGB, status, comment, pset, crabCfg, jsonFile, publishName, stageOutLocation, published) values ($id, '$dataset', now(), now(), '$userAndHost', '$user', '$format', '$location', $nFiles, $sizeInGB, '$status', '$comment', '$pset', '$crabCfg', '$jsonFile', '$publishName', '$stageOutLocation', 0)";
239    $results = $db->query ($query);
240  
241    return $results;
# Line 191 | Line 246 | dbUpdate
246   {
247    my $id = shift;
248    my $status = shift;
249 <  my $submissionLogName = shift;
249 >  my $user = shift;
250 >  my $logName = shift;
251  
252 <  open (SUBMISSION_LOG, "<$submissionLogName");
253 <  my @submissionLog = <SUBMISSION_LOG>;
254 <  close (SUBMISSION_LOG);
255 <  my $submissionLog = join ("", @submissionLog);
252 >  open (LOG, "<$logName");
253 >  my @log = <LOG>;
254 >  close (LOG);
255 >  my $log = join ("", @log);
256  
201  $submissionLog = addSlashes ($submissionLog);
257    $status = addSlashes ($status);
258 +  $user = addSlashes ($user);
259 +  $log = addSlashes ($log);
260  
261    my $results;
262 <  $db = Mysql->connect ("cmshead.mps.ohio-state.edu", "ntuple", "osuT3User");
263 <  my $query = "update ntuple set lastUpdateTime=now(), status='$status', submissionLog='$submissionLog' where id=$id";
262 >  my $query = "update ntuple set lastUpdateTime=now(), lastUpdateUser='$user', status='$status', submissionLog='$log' where id=$id";
263 >  $db->selectdb ("ntuple");
264 >  $results = $db->query ($query);
265 >
266 >  return $results;
267 > }
268 >
269 > sub
270 > dbStatus
271 > {
272 >  my $id = shift;
273 >  my $currentStatusName = shift;
274 >  my $user = shift;
275 >
276 >  open (CURRENT_STATUS, "<$currentStatusName");
277 >  my @currentStatus = <CURRENT_STATUS>;
278 >  close (CURRENT_STATUS);
279 >  my $currentStatus = join ("", @currentStatus);
280 >
281 >  $currentStatus = addSlashes ($currentStatus);
282 >  $user = addSlashes ($user);
283 >
284 >  my $results;
285 >  my $query = "update ntuple set lastUpdateTime=now(), lastUpdateUser='$user', currentStatus='$currentStatus' where id=$id";
286    $db->selectdb ("ntuple");
287    $results = $db->query ($query);
288  
# Line 214 | Line 293 | sub
293   dbReport
294   {
295    my $id = shift;
217  my $status = shift;
296    my $lumiSummaryName = shift;
297 +  my $user = shift;
298  
299    open (LUMI_SUMMARY, "<$lumiSummaryName");
300    my @lumiSummary = <LUMI_SUMMARY>;
# Line 223 | Line 302 | dbReport
302    my $lumiSummary = join ("", @lumiSummary);
303  
304    $lumiSummary = addSlashes ($lumiSummary);
305 <  $status = addSlashes ($status);
305 >  $user = addSlashes ($user);
306 >
307 >  my $results;
308 >  my $query = "update ntuple set lastUpdateTime=now(), lastUpdateUser='$user', lumiSummary='$lumiSummary' where id=$id";
309 >  $db->selectdb ("ntuple");
310 >  $results = $db->query ($query);
311 >
312 >  return $results;
313 > }
314 >
315 > sub
316 > deleteEntry
317 > {
318 >  my $id = shift;
319  
320    my $results;
321 <  $db = Mysql->connect ("cmshead.mps.ohio-state.edu", "ntuple", "osuT3User");
230 <  my $query = "update ntuple set lastUpdateTime=now(), status='$status', lumiSummary='$lumiSummary' where id=$id";
321 >  my $query = "delete from ntuple where id=$id";
322    $db->selectdb ("ntuple");
323    $results = $db->query ($query);
324  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines