Changeset 34786 for branches/czw_branch/20120906
- Timestamp:
- Dec 10, 2012, 4:35:46 PM (14 years ago)
- Location:
- branches/czw_branch/20120906
- Files:
-
- 41 edited
- 3 copied
-
. (modified) (1 prop)
-
Nebulous-Server/bin/neb-host (modified) (1 diff)
-
Nebulous-Server/lib/Nebulous/Server/SQL.pm (modified) (2 diffs)
-
Ohana/src/libohana/src (modified) (1 prop)
-
Ohana/src/opihi (modified) (1 prop)
-
Ohana/src/opihi/cmd.astro (modified) (1 prop)
-
Ohana/src/opihi/cmd.data (modified) (1 prop)
-
ippScripts/scripts/chip_imfile.pl (modified) (6 diffs)
-
ippScripts/scripts/ipp_apply_burntool_single.pl (modified) (1 prop)
-
ippScripts/scripts/ipp_cleanup.pl (modified) (32 diffs)
-
ippTasks/science.cleanup.pro (modified) (8 diffs)
-
ippTasks/skycal.pro (modified) (4 diffs)
-
ippTasks/staticsky.pro (modified) (1 diff)
-
ippTasks/summit.copy.pro (modified) (1 diff)
-
ippToPsps/jython/objectbatch.py (modified) (1 diff)
-
ippTools/share/Makefile.am (modified) (3 diffs)
-
ippTools/share/camtool_pendingcleanuprun.sql (modified) (1 diff)
-
ippTools/share/chiptool_pendingcleanupimfile_all.sql (copied) (copied from trunk/ippTools/share/chiptool_pendingcleanupimfile_all.sql )
-
ippTools/share/chiptool_pendingcleanuprun.sql (modified) (1 diff)
-
ippTools/share/difftool_pendingcleanuprun.sql (modified) (4 diffs)
-
ippTools/share/difftool_pendingcleanupskyfile_all.sql (copied) (copied from trunk/ippTools/share/difftool_pendingcleanupskyfile_all.sql )
-
ippTools/share/pstamptool_revertdependent.sql (modified) (1 diff)
-
ippTools/share/stacktool_pendingcleanuprun.sql (modified) (1 diff)
-
ippTools/share/staticskytool_defineskycalrun.sql (modified) (2 diffs)
-
ippTools/share/warptool_pendingcleanuprun.sql (modified) (1 diff)
-
ippTools/share/warptool_pendingcleanupskyfile_all.sql (copied) (copied from trunk/ippTools/share/warptool_pendingcleanupskyfile_all.sql )
-
ippTools/src/chiptool.c (modified) (2 diffs)
-
ippTools/src/chiptoolConfig.c (modified) (1 diff)
-
ippTools/src/difftool.c (modified) (3 diffs)
-
ippTools/src/difftoolConfig.c (modified) (3 diffs)
-
ippTools/src/staticskytool.c (modified) (5 diffs)
-
ippTools/src/staticskytoolConfig.c (modified) (3 diffs)
-
ippTools/src/warptool.c (modified) (2 diffs)
-
ippTools/src/warptoolConfig.c (modified) (1 diff)
-
ippconfig/gpc1/psphot.config (modified) (1 diff)
-
ippconfig/recipes/ppSub.config (modified) (1 prop)
-
ippconfig/recipes/psphot.config (modified) (1 diff)
-
ippconfig/recipes/reductionClasses.mdc (modified) (1 prop)
-
magic/censorObjects/src/censorLoop.c (modified) (3 diffs)
-
ppTranslate/src/ppMopsRead.c (modified) (4 diffs)
-
ppTranslate/src/ppMopsWrite.c (modified) (2 diffs)
-
psphot/src (modified) (1 prop)
-
psphot/src/psphotSourceSize.c (modified) (3 diffs)
-
psphot/src/psphotStackImageLoop.c (modified) (1 prop)
Legend:
- Unmodified
- Added
- Removed
-
branches/czw_branch/20120906
- Property svn:mergeinfo changed
-
branches/czw_branch/20120906/Nebulous-Server/bin/neb-host
r32919 r34786 141 141 $dbh->commit; 142 142 143 my $format = "%-15s %-15s %-7s %-8s %-9s %-5s % s\n";144 my @columns = qw(host name mounted allocate available xattr note);143 my $format = "%-15s %-15s %-7s %-8s %-9s %-5s %15s %s\n"; 144 my @columns = qw(host name mounted allocate available xattr last_modified note); 145 145 printf($format, @columns); 146 146 -
branches/czw_branch/20120906/Nebulous-Server/lib/Nebulous/Server/SQL.pm
r33826 r34786 389 389 mountedvol.vol_id IS NOT NULL as mounted, 390 390 v.cab_id, 391 v.last_modified, 391 392 v.note 392 393 FROM volume AS v … … 694 695 cab_id INT, 695 696 note VARCHAR(255), 697 last_modified TIMESTAMP NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, # SC: Added by Haydn with ALTER TABLE(?) on 2012-12-03 696 698 PRIMARY KEY(vol_id), 697 699 UNIQUE KEY(name), -
branches/czw_branch/20120906/Ohana/src/libohana/src
- Property svn:mergeinfo changed
/trunk/Ohana/src/libohana/src merged: 34460
- Property svn:mergeinfo changed
-
branches/czw_branch/20120906/Ohana/src/opihi
- Property svn:mergeinfo set to
-
branches/czw_branch/20120906/Ohana/src/opihi/cmd.astro
- Property svn:mergeinfo changed
/trunk/Ohana/src/opihi/cmd.astro (added) merged: 34418,34429,34584,34613,34621,34749
- Property svn:mergeinfo changed
-
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data
- Property svn:mergeinfo changed
/trunk/Ohana/src/opihi/cmd.data merged: 34461,34584,34599,34613
- Property svn:mergeinfo changed
-
branches/czw_branch/20120906/ippScripts/scripts/chip_imfile.pl
r33052 r34786 150 150 $outputStats = prepare_output("PPIMAGE.STATS", $outroot, $class_id, 1); 151 151 my $do_binned_images = 1; 152 152 153 if ($run_state eq 'new') { 153 154 # prepare the files that are only created for a new run … … 586 587 587 588 # check whether psphot outputs should be regenerated. 588 # Whether we need to or not is a somewhat complicated question. 589 # Whether we need to or not was a somewhat complicated question. Since we clean cmfs now we only rerun 590 # photometry if the psf file has gone missing since it is needed to run warps 591 589 592 sub rerun_photometry 590 593 { … … 594 597 or &my_die("Missing entry from camera config: PSPHOT.OUTPUT", $exp_id, $chip_id, $class_id, $PS_EXIT_CONFIG_ERROR); 595 598 599 my $update_sources_if_gone = 0; # set this to regenerate sources if gone. 600 # We no longer do this as of 2012-12 596 601 my $make_sources = 0; 597 602 my $sources_available = 0; … … 599 604 $sources_available = 1; 600 605 } else { 601 carp "WARNING: photometry sources file $outputSources is not available"; 602 my $gone; 603 if (storage_object_exists($outputSources, \$gone)) { 604 # check whether the file is permanantely or temporarily gone 605 if ($gone) { 606 carp "WARNING: photometry sources storage object exists but all instances are permanently gone"; 606 if ($update_sources_if_gone) { 607 carp "WARNING: photometry sources file $outputSources is not available"; 608 my $gone; 609 if (storage_object_exists($outputSources, \$gone)) { 610 # check whether the file is permanantely or temporarily gone 611 if ($gone) { 612 carp "WARNING: photometry sources storage object exists but all instances are permanently gone"; 613 $make_sources = 1; 614 } 615 } else { 616 # storage object must have been deleted 607 617 $make_sources = 1; 608 618 } 609 } else {610 # storage object must have been deleted611 $make_sources = 1;612 619 } 613 620 } … … 616 623 my $psf_available = 0; 617 624 my $outputPsf = $ipprc->filename("PSPHOT.PSF.SAVE", $outroot, $class_id) 618 or &my_die("Missing entry from camera config: PSPHOT.PSF.SAVE", $exp_id, $chip_id, $class_id, $PS_EXIT_CONFIG_ERROR); 625 or &my_die("Missing entry from camera config: PSPHOT.PSF.SAVE", 626 $exp_id, $chip_id, $class_id, $PS_EXIT_CONFIG_ERROR); 627 619 628 if ($ipprc->file_exists($outputPsf)) { 620 629 $psf_available = 1; … … 638 647 } 639 648 640 # if either of the files are gone rerun photometry unless the other file is temporarily not available 641 642 if (!$sources_available && !$make_sources) { 643 # destreak will die if the sources is not available 644 &my_die("PSPHOT.SOURCES is missing but we cannot regenerate it", $exp_id, $chip_id, $class_id, $PS_EXIT_SYS_ERROR); 645 } 649 if ($update_sources_if_gone) { 650 if (!$sources_available && !$make_sources) { 651 # destreak will die if the sources is not available 652 # but magic is dead.... 653 &my_die("PSPHOT.SOURCES is missing but we cannot regenerate it", $exp_id, $chip_id, $class_id, $PS_EXIT_SYS_ERROR); 654 } 655 } 656 646 657 if (!$psf_available && !$make_psf) { 647 658 # warp updates need the psf file -
branches/czw_branch/20120906/ippScripts/scripts/ipp_apply_burntool_single.pl
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/czw_branch/20120906/ippScripts/scripts/ipp_cleanup.pl
r33664 r34786 18 18 19 19 # Parse the command-line arguments 20 my ($stage, $camera, $stage_id, $mode, $path_base, $dbname, $verbose, $no_op, $helplist, $logfile); 20 my ($stage, $camera, $stage_id, $mode, $path_base, $dbname, $verbose, $no_op, $helplist, $logfile, $check_all); 21 my $very_verbose = 0; 22 23 # this gets set to 1 the first time we set the corresponding destreak run to be cleaned 24 #my $ds_done = 0; 25 # magic is dead 26 my $ds_done = 1; 27 21 28 GetOptions('stage=s' => \$stage, # which analysis stage to clean? 22 29 'camera|i=s' => \$camera, # user-supplied camera name … … 24 31 'mode|m=s' => \$mode, # cleanup mode (clean / purge) 25 32 'path_base=s' => \$path_base, # basename for files 33 'check-all' => \$check_all, # if set clean all chips regardless of data_state 26 34 'dbname|d=s' => \$dbname, # Database name 27 35 'verbose' => \$verbose, # Print to stdout … … 56 64 $ipprc->redirect_output($logfile) or 57 65 &my_die("Unable to redirect ouput", $stage, $stage_id, $PS_EXIT_UNKNOWN_ERROR) if $logfile; 66 67 68 my $bzip2 = can_run('bzip2') or die 'cannot find bzip2\n'; 58 69 59 70 # set this to 1 to enable checking for files on dead nodes … … 91 102 # this stage uses 'chiptool' 92 103 my $chiptool = can_run('chiptool') or die "Can't find chiptool"; 104 my $censorObjects = can_run('censorObjects') or die "Can't find censorObjects"; 93 105 94 106 # Get list of component imfiles … … 96 108 my $imfiles; # Array of component files 97 109 my $command = "$chiptool -pendingcleanupimfile -chip_id $stage_id"; # Command to run 110 $command .= ' -all' if ($check_all); 98 111 $command .= " -dbname $dbname" if defined $dbname; 99 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $verbose); 112 113 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) 114 = run(command => $command, verbose => $very_verbose); 100 115 unless ($success) { 101 116 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); … … 114 129 unless ($success) { 115 130 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 116 &my_die("Unable to perform chiptool : $error_code", "chip", $stage_id, $error_code);131 &my_die("Unable to perform chiptool -processedimfile: $error_code", "chip", $stage_id, $error_code); 117 132 } 118 133 exit 0; … … 123 138 &my_die("Unable to parse metadata config doc", "chip", $stage_id, $PS_EXIT_PROG_ERROR); 124 139 140 my $numchips = scalar @$imfiles; 141 print "Found $numchips to clean\n"; 142 143 my $clean_sources = 0; 144 if ((scalar @$imfiles > 0) and ($mode eq 'goto_cleaned')) { 145 # go and find the smf file(s) for the associated camRun and check the status of the file 146 # if a good one is found we have the sources for this chipRun and thus can clean the cmfs 147 my $command = "$chiptool -listrun -chip_id $stage_id"; 148 $command .= " -dbname $dbname" if defined $dbname; 149 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $very_verbose); 150 unless ($success) { 151 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 152 &my_die("Unable to perform chiptool -listrun: $error_code", "chip", $stage_id, $error_code); 153 } 154 my $entries = $mdcParser->parse_list(join "", @$stdout_buf) or 155 &my_die("Unable to parse metadata config doc", "chip", $stage_id, $PS_EXIT_PROG_ERROR); 156 my $good_smf = 0; 157 foreach my $entry (@$entries) { 158 my $camRun_state = $entry->{camRun_state}; 159 next if $camRun_state ne 'full'; 160 my $cam_id = $entry->{cam_id}; 161 if (!$cam_id) { 162 carp('no cam_id for listrun entry'); 163 next; 164 } 165 my $cam_path_base = $entry->{cam_path_base}; 166 if ( !defined $cam_path_base ) { 167 carp("no path_base for $cam_id\n"); 168 next; 169 } 170 171 # XXX: This assumes that the filerules are filerules-split 172 my $smf = $ipprc->filename("PSASTRO.OUTPUT", $cam_path_base); 173 if (!$ipprc->file_exists($smf)) { 174 carp("smf for $cam_path_base not found"); 175 next; 176 } 177 # we run the program censorObjects in the check mode 178 # If this program succeeds the smf is a valid fits file and each of the 179 # extensions was succesfully read. 180 # XXX: create a new program outside of magic that performs this check 181 182 my $command = "$censorObjects -checkinputonly -file $smf"; 183 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 184 run(command => $command, verbose => $very_verbose); 185 unless ($success) { 186 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 187 print STDERR "censorObjects failed:\n"; 188 print STDERR "\nSTDOUT:\n" . join "", @$stdout_buf; 189 print STDERR "\nSTDERR:\n" . join "", @$stderr_buf; 190 &my_die("Unable to perform censorObjects -checkinputonly: $error_code", "chip", $stage_id, $error_code); 191 } 192 $good_smf++; 193 } 194 if ($good_smf) { 195 # we have a good one so we can clean the sources 196 $clean_sources = 1; 197 print "Found $good_smf good smf files will clean sources\n"; 198 } else { 199 print "Unable to find good smf file will NOT clean sources\n"; 200 } 201 } 202 125 203 # loop over all of the imfiles, determine the path_base and class_id for each 204 my $num_errors = 0; 126 205 foreach my $imfile (@$imfiles) { 127 206 my $class_id = $imfile->{class_id}; 128 207 my $path_base = $imfile->{path_base}; 208 my $data_state = $imfile->{data_state}; 129 209 my $status = 1; 130 210 $status = 0 unless defined $path_base and $path_base ne "NULL"; 131 211 132 my $poor_quality = $imfile->{quality} > 0; 212 my $quality = $imfile->{quality}; 213 my $good_quality = ($quality == 0); 214 215 print "Starting cleanup for $class_id\n"; 133 216 134 217 # don't clean up unless the data needed to update is available 135 218 # modes goto_purged and goto_scrubbed will remove files even if the config is non-existent 136 219 # goto_scrubbed now requires the config file to not exist. 137 if ($status and !$poor_quality) {220 if ($status and $good_quality) { 138 221 if ($mode eq "goto_cleaned") { 139 222 my $config_file = $ipprc->filename("PPIMAGE.CONFIG", $path_base, $class_id); 140 223 141 224 unless ($ipprc->file_exists($config_file)) { 225 my $fault = $imfile->{fault}; 226 142 227 if (file_gone($config_file)) { 143 print STDERR "forcing cleanup for chipRun $stage_id $class_id " 228 # config file was lost. Clean up. If the chip is ever updated a new config 229 # file will be created 230 print STDERR "forcing cleanup chip $stage_id $class_id fault: $fault quality: $quality" 144 231 . " because config file ($config_file) is gone\n"; 232 } elsif ($fault == 0 and $quality == 0) { 233 print STDERR "skipping cleaning up chip $stage_id $class_id fault: $fault quality: $quality" 234 . " because config file ($config_file) is missing\n"; 235 $status = 0; 145 236 } else { 146 print STDERR "skipping cleanup for chipRun $stage_id $class_id "147 . " because config file ($config_file) is missing\n";148 $status = 0;237 # config file is missing but this is a bad chip anyways so clean it 238 print STDERR "cleaning up chip $stage_id $class_id fault: $fault quality: $quality" 239 . " even though config file ($config_file) is missing\n"; 149 240 } 150 241 } … … 154 245 155 246 if ($ipprc->file_exists($config_file)) { 156 print STDERR "skipping scrubbed for chip Run$stage_id $class_id "247 print STDERR "skipping scrubbed for chip $stage_id $class_id " 157 248 . " because config file ($config_file) is present\n"; 158 249 $status = 0; … … 165 256 my @files = (); 166 257 167 # delete the temporary image datafiles168 # addFilename (\@files, "PPIMAGE.OUTPUT", $path_base, $class_id);169 # addFilename (\@files, "PPIMAGE.OUTPUT.MASK", $path_base, $class_id);170 # addFilename (\@files, "PPIMAGE.OUTPUT.VARIANCE", $path_base, $class_id);171 258 addFilename (\@files, "PPIMAGE.CHIP", $path_base, $class_id, 1); 172 259 addFilename (\@files, "PPIMAGE.CHIP.MASK", $path_base, $class_id, 1); 173 260 addFilename (\@files, "PPIMAGE.CHIP.VARIANCE", $path_base, $class_id, 1); 174 261 addFilename (\@files, "PPIMAGE.PATTERN", $path_base, $class_id, 0); 262 if ($clean_sources) { 263 addFilename (\@files, "PSPHOT.OUTPUT", $path_base, $class_id); 264 addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id); 265 } 175 266 if ($mode eq "goto_purged") { 176 267 # additional files to remove for 'purge' mode 268 if (!$clean_sources) { 269 # these weren't added above but we do want to clean it 270 addFilename (\@files, "PSPHOT.OUTPUT", $path_base, $class_id); 271 addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id); 272 } 273 274 # background model is needed to build stack background images so we do not remove it 275 # addFilename (\@files, "PSPHOT.BACKMDL", $path_base, $class_id); 276 277 addFilename (\@files, "PSPHOT.PSF.SAVE", $path_base, $class_id); 177 278 addFilename (\@files, "PPIMAGE.OUTPUT.FPA1", $path_base, $class_id); 178 279 addFilename (\@files, "PPIMAGE.OUTPUT.FPA2", $path_base, $class_id); 179 addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id); # clean? 180 addFilename (\@files, "PPIMAGE.BIN2", $path_base, $class_id); # clean? 280 addFilename (\@files, "PPIMAGE.BIN2", $path_base, $class_id); 181 281 addFilename (\@files, "PPIMAGE.JPEG1", $path_base, $class_id); 182 282 addFilename (\@files, "PPIMAGE.JPEG2", $path_base, $class_id); 183 addFilename (\@files, "PPIMAGE.STATS", $path_base, $class_id); #clean?283 addFilename (\@files, "PPIMAGE.STATS", $path_base, $class_id); 184 284 addFilename (\@files, "PPIMAGE.CONFIG", $path_base, $class_id); 185 285 } … … 188 288 $status = &delete_files (\@files); 189 289 } 290 bzip2_file("LOG.IMFILE", $path_base, $class_id); 291 bzip2_file("LOG.IMFILE.UPDATE", $path_base, $class_id); 190 292 191 293 if ($status) { 294 my $update_chip = 1; 192 295 my $command = "$chiptool -chip_id $stage_id -class_id $class_id"; 193 296 if ($mode eq "goto_purged") { 194 297 $command .= " -topurgedimfile"; 298 if ($data_state eq 'purged') { 299 $update_chip = 0; 300 } 195 301 } 196 302 elsif ($mode eq "goto_cleaned") { 197 303 $command .= " -tocleanedimfile"; 304 if ($data_state eq 'cleaned') { 305 $update_chip = 0; 306 } 198 307 } 199 308 elsif ($mode eq "goto_scrubbed") { 200 309 $command .= " -toscrubbedimfile"; 201 } 202 203 $command .= " -dbname $dbname" if defined $dbname; 204 205 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 206 run(command => $command, verbose => $verbose); 207 unless ($success) { 208 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 209 &my_die("Unable to perform chiptool: $error_code", "chip", $stage_id, $error_code); 210 } 211 212 set_destreak_goto_cleaned(); 213 310 if ($data_state eq 'scrubbed') { 311 $update_chip = 0; 312 } 313 } 314 315 if ($update_chip) { 316 $command .= " -dbname $dbname" if defined $dbname; 317 318 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 319 run(command => $command, verbose => $verbose); 320 unless ($success) { 321 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 322 &my_die("Unable to perform chiptool: $error_code", "chip", $stage_id, $error_code); 323 } 324 set_destreak_goto_cleaned(); 325 } 214 326 } else { 327 $num_errors++; 215 328 216 329 # if an error happens for one chip, the chipRun will stay in goto_*, but the chips will go to error_* (matching the goto_*) … … 218 331 $command .= " -dbname $dbname" if defined $dbname; 219 332 220 if (0) {221 # XXX Don't set components to error cleaned anymore222 333 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 223 334 run(command => $command, verbose => $verbose); … … 226 337 &my_die("Unable to perform chiptool: $error_code", "chip", $stage_id, $error_code); 227 338 } 228 }229 339 230 340 # We want to flag the run as well, to avoid attempting to reprocess the same data over and over again. … … 241 351 } 242 352 } 353 print "Cleanup completed for chip_id $stage_id."; 354 print " num_errors: $num_errors" if $num_errors; 355 print "\n"; 243 356 exit 0; 244 357 } … … 350 463 my $skyfiles; # Array of component files 351 464 my $command = "$warptool -pendingcleanupskyfile -warp_id $stage_id"; # Command to run 465 $command .= ' -all' if $check_all; 352 466 $command .= " -dbname $dbname" if defined $dbname; 353 467 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 354 run(command => $command, verbose => $ver bose);468 run(command => $command, verbose => $very_verbose); 355 469 unless ($success) { 356 470 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); … … 378 492 &my_die("Unable to parse metadata config doc", "warp", $stage_id, $PS_EXIT_PROG_ERROR); 379 493 494 my $numskycells = scalar @$skyfiles; 495 print "Found $numskycells to clean\n"; 496 380 497 my @files = (); 498 my $num_errors = 0; 381 499 foreach my $skyfile (@$skyfiles) { 382 500 my $path_base = $skyfile->{path_base}; 383 501 my $skycell_id = $skyfile->{skycell_id}; 502 my $data_state = $skyfile->{data_state}; 384 503 385 504 my $status = 1; … … 391 510 392 511 unless ($ipprc->file_exists($config_file)) { 512 my $fault = $skyfile->{fault}; 513 my $quality = $skyfile->{quality}; 393 514 if (file_gone($config_file)) { 394 print STDERR "forcing cleanup for warpRun $stage_id $skycell_id" . 395 " because config file is gone\n"; 515 print STDERR "forcing cleanup warp $stage_id $skycell_id fault: $fault quality: $quality" 516 . " because config file ($config_file) is gone\n"; 517 } elsif ($fault == 0 and $quality == 0) { 518 print STDERR "skipping cleaning up warp $stage_id $skycell_id fault: $fault quality: $quality" 519 . " because config file ($config_file) is missing\n"; 520 $status = 0; 396 521 } else { 397 print STDERR "skipping cleanup for warpRun $stage_id $skycell_id" .398 " because config file is missing\n";399 $status = 0;522 # config file is missing but this is a bad warp anyways so clean it 523 print STDERR "cleaning up warp $stage_id $skycell_id fault: $fault quality: $quality" 524 . " even though config file ($config_file) is missing\n"; 400 525 } 401 526 } … … 413 538 414 539 if ($status) { 415 if ($skyfile->{quality} != 8007) { 540 # XXX: what is special about quality == 8007? 541 if ($skyfile->{quality} != 8007 || $check_all) { 416 542 my @files = (); 417 543 … … 420 546 addFilename(\@files, "PSWARP.OUTPUT.MASK", $path_base, $skycell_id, 1); 421 547 addFilename(\@files, "PSWARP.OUTPUT.VARIANCE", $path_base, $skycell_id, 1); 422 # addFilename(\@files, "PSWARP.OUTPUT.SOURCES", $path_base, $skycell_id); 548 # these are rebuilt during update so we can delete them here 549 addFilename(\@files, "PSWARP.OUTPUT.SOURCES", $path_base, $skycell_id); 550 addFilename(\@files, "SKYCELL.TEMPLATE", $path_base, $skycell_id ); 423 551 if ($mode eq "goto_purged") { 424 552 # additional files to remove for 'purge' mode … … 426 554 addFilename(\@files, "PSWARP.BIN2", $path_base, $skycell_id ); 427 555 addFilename(\@files, "SKYCELL.STATS", $path_base, $skycell_id ); 428 # addFilename(\@files, "PSPHOT.PSF.SKY.SAVE", $path_base); 429 430 # XXX: do we want to delete these? 556 addFilename(\@files, "SKYCELL.STATS.UPDATE", $path_base, $skycell_id ); 557 addFilename(\@files, "PSWARP.CONFIG", $path_base, $skycell_id); 558 559 # XXX: do we want to delete these? trace file is empty 431 560 # addFilename(\@files, "TRACE.EXP", $path_base, $skycell_id); 432 # addFilename(\@files, "PSWARP.CONFIG", $path_base, $skycell_id); 433 } 434 # actual command to delete the files 561 } 562 # actual command to delete the files 435 563 $status = &delete_files (\@files); 436 564 } 437 565 } 566 bzip2_file("LOG.EXP", $path_base, $skycell_id); 567 bzip2_file("LOG.EXP.UPDATE", $path_base, $skycell_id); 438 568 439 569 if ($status) { 570 my $update_skyfile = 1; 440 571 my $command = "$warptool -warp_id $stage_id -skycell_id $skycell_id"; 441 572 if ($mode eq "goto_purged") { 442 573 $command .= " -topurgedskyfile"; 574 if ($data_state eq 'purged') { 575 $update_skyfile = 0; 576 } 443 577 } 444 578 elsif ($mode eq "goto_cleaned") { 445 579 $command .= " -tocleanedskyfile"; 580 if ($data_state eq 'cleaned') { 581 $update_skyfile = 0; 582 } 446 583 } 447 584 elsif ($mode eq "goto_scrubbed") { 448 585 $command .= " -toscrubbedskyfile"; 449 } 450 $command .= " -dbname $dbname" if defined $dbname; 451 452 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 453 run(command => $command, verbose => $verbose); 586 if ($data_state eq 'scrubbed') { 587 $update_skyfile = 0; 588 } 589 } 590 $command .= " -dbname $dbname" if defined $dbname; 591 592 if ($update_skyfile) { 593 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 594 run(command => $command, verbose => $verbose); 595 unless ($success) { 596 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 597 &my_die("Unable to perform warptool: $error_code", "warp", $stage_id, $error_code); 598 } 599 600 set_destreak_goto_cleaned(); 601 } 602 603 } else { 604 $num_errors++; 605 my $command = "$warptool -updateskyfile -warp_id $stage_id -skycell_id $skycell_id -set_state $error_state"; 606 $command .= " -dbname $dbname" if defined $dbname; 607 608 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 609 run(command => $command, verbose => $verbose); 454 610 unless ($success) { 455 611 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); … … 457 613 } 458 614 459 set_destreak_goto_cleaned(); 460 461 } else { 462 my $command = "$warptool -updateskyfile -warp_id $stage_id -skycell_id $skycell_id -set_state $error_state"; 463 $command .= " -dbname $dbname" if defined $dbname; 464 465 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 615 # We want to flag the run as well, to avoid attempting to reprocess the same data over and over again. 616 $command = "$warptool -warp_id $stage_id -updaterun -set_state $error_state"; 617 $command .= " -dbname $dbname" if defined $dbname; 618 619 ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 466 620 run(command => $command, verbose => $verbose); 467 621 unless ($success) { … … 469 623 &my_die("Unable to perform warptool: $error_code", "warp", $stage_id, $error_code); 470 624 } 471 472 # exit $PS_EXIT_UNKNOWN_ERROR; 473 } 474 } 625 } 626 } 627 print "Cleanup completed for warp_id $stage_id."; 628 print " num_errors: $num_errors" if $num_errors; 629 print "\n"; 475 630 exit 0; 476 631 } … … 603 758 &my_die("Unable to perform stacktool: $error_code", "stack", $stage_id, $error_code); 604 759 } 605 # exit $PS_EXIT_UNKNOWN_ERROR;606 760 } 607 761 } … … 619 773 my $skyfiles; # Array reference of component files 620 774 my $command = "difftool -pendingcleanupskyfile -diff_id $stage_id"; # Command to run 775 $command .= ' -all' if $check_all; 621 776 $command .= " -dbname $dbname" if defined $dbname; 622 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $ver bose);777 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $very_verbose); 623 778 unless ($success) { 624 779 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); … … 646 801 &my_die("Unable to parse metadata config doc", "diff", $stage_id, $PS_EXIT_PROG_ERROR); 647 802 803 my $num_errors = 0; 648 804 my @files = (); 649 805 foreach my $skyfile (@{ $skyfiles }) { 650 806 my $path_base = $skyfile->{path_base}; 651 807 my $skycell_id = $skyfile->{skycell_id}; 808 my $data_state = $skyfile->{data_state}; 652 809 653 810 my $status = 1; … … 661 818 my $config_file = $ipprc->filename("PPSUB.CONFIG", $path_base, $skycell_id); 662 819 820 if (0) { 663 821 unless ($ipprc->file_exists($config_file)) { 664 822 if (file_gone($config_file)) { … … 672 830 } 673 831 } 832 unless ($ipprc->file_exists($config_file)) { 833 my $fault = $skyfile->{fault}; 834 my $quality = $skyfile->{quality}; 835 if (file_gone($config_file)) { 836 print STDERR "forcing cleanup diff $stage_id $skycell_id fault: $fault quality: $quality" 837 . " because config file ($config_file) is gone\n"; 838 } elsif ($fault == 0 and $quality == 0) { 839 print STDERR "skipping cleaning up diff $stage_id $skycell_id fault: $fault quality: $quality" 840 . " because config file ($config_file) is missing\n"; 841 $status = 0; 842 } else { 843 # config file is missing but this is a bad diff anyways so clean it 844 print STDERR "cleaning up diff $stage_id $skycell_id fault: $fault quality: $quality" 845 . " even though config file ($config_file) is missing\n"; 846 } 847 } 848 } 674 849 elsif ($mode eq "goto_scrubbed") { 675 850 my $config_file = $ipprc->filename("PPSUB.CONFIG", $path_base, $skycell_id); … … 712 887 713 888 } 714 # print STDERR "MY FILES: @files\n";715 889 $status = &delete_files(\@files); 716 890 } 717 # print STDERR "MY STATUS: $status\n"; 891 892 bzip2_file("LOG.EXP", $path_base, $skycell_id); 893 bzip2_file("LOG.EXP.UPDATE", $path_base, $skycell_id); 894 718 895 if ($status) { 719 896 my $command = "$difftool -diff_id $stage_id -skycell_id $skycell_id"; 897 my $update_skyfile = 1; 720 898 721 899 if ($mode eq "goto_purged") { 722 900 $command .= " -topurgedskyfile"; 901 if ($data_state eq 'purged') { 902 $update_skyfile = 0; 903 } 723 904 } 724 905 elsif ($mode eq "goto_cleaned") { 725 906 $command .= " -tocleanedskyfile"; 907 if ($data_state eq 'cleaned') { 908 $update_skyfile = 0; 909 } 726 910 } 727 911 elsif ($mode eq "goto_scrubbed") { 728 912 $command .= " -toscrubbedskyfile"; 729 } 730 913 if ($data_state eq 'scrubbed') { 914 $update_skyfile = 0; 915 } 916 } 917 918 $command .= " -dbname $dbname" if defined $dbname; 919 920 if ($update_skyfile) { 921 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 922 run(command => $command, verbose => $verbose); 923 unless ($success) { 924 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 925 &my_die("Unable to perform difftool: $error_code", "diff", $stage_id, $error_code); 926 } 927 set_destreak_goto_cleaned(); 928 } 929 930 931 } else { 932 $num_errors++; 933 my $command = "$difftool -updatediffskyfile -diff_id $stage_id -skycell_id $skycell_id -set_state $error_state"; 731 934 $command .= " -dbname $dbname" if defined $dbname; 732 935 … … 738 941 } 739 942 740 set_destreak_goto_cleaned(); 741 742 } else { 743 my $command = "$difftool -updaterun -diff_id $stage_id -set_state $error_state"; 744 745 $command .= " -dbname $dbname" if defined $dbname; 746 747 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 943 $command = "$difftool -updaterun -diff_id $stage_id -set_state $error_state"; 944 945 $command .= " -dbname $dbname" if defined $dbname; 946 947 ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 748 948 run(command => $command, verbose => $verbose); 749 949 unless ($success) { … … 751 951 &my_die("Unable to perform difftool: $error_code", "diff", $stage_id, $error_code); 752 952 } 753 # exit $PS_EXIT_UNKNOWN_ERROR; 754 } 755 } 953 } 954 } 955 print "Cleanup completed for diff_id $stage_id."; 956 print " num_errors: $num_errors" if $num_errors; 957 print "\n"; 756 958 exit 0; 757 959 } … … 1917 2119 1918 2120 foreach my $file (@$files) { 1919 print STDERR "unlinking $stage $stage_id $file\n" ;2121 print STDERR "unlinking $stage $stage_id $file\n" if $very_verbose; 1920 2122 1921 2123 my $error_code = $ipprc->kill_file($file); … … 2008 2210 } 2009 2211 2010 # this gets set to 1 the first time we set the corresponding destreak run to be cleaned2011 my $ds_done = 0;2012 2212 sub set_destreak_goto_cleaned { 2013 2213 … … 2027 2227 } 2028 2228 2229 sub bzip2_file { 2230 my $filerule = shift; 2231 my $path_base = shift; 2232 my $component = shift; 2233 2234 my $filename = $ipprc->filename($filerule, $path_base, $component); 2235 if (!$ipprc->file_exists($filename)) { 2236 return 1; 2237 } 2238 if (my $resolved = $ipprc->file_resolve($filename)) { 2239 my $bzip2_filename = $filename . '.bz2'; 2240 if ($ipprc->file_exists($bzip2_filename)) { 2241 $ipprc->kill_file($bzip2_filename); 2242 } 2243 my $bzip2_file = $ipprc->file_create($bzip2_filename); 2244 my_die("Unable to create $bzip2_filename", $stage_id, $PS_EXIT_SYS_ERROR) unless $bzip2_file; 2245 2246 my $command = "$bzip2 < $resolved > $bzip2_file"; 2247 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 2248 run(command => $command, verbose => $very_verbose); 2249 if ($success) { 2250 # success delete the original file 2251 my $error_code = $ipprc->kill_file($filename); 2252 } else { 2253 # if bzip2 failed. Carry on but don't delete the existing file 2254 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 2255 print STDERR "Failed to bzip2 $filename: $error_code\n"; 2256 return 0; 2257 } 2258 } 2259 return 1; 2260 } 2261 2029 2262 # XXX we currently do not set the error state in the db on my_die 2030 2263 sub my_die -
branches/czw_branch/20120906/ippTasks/science.cleanup.pro
r34203 r34786 13 13 14 14 check.globals 15 16 # if set tell cleanup script to check for files from all components regardless of the data_state 17 $CHECK_ALL_COMPONENTS = 0 18 macro set.check.all.components 19 $CHECK_ALL_COMPONENTS = 1 20 end 21 macro clear.check.all.components 22 $CHECK_ALL_COMPONENTS = 0 23 end 24 macro get.check.all.components 25 echo CHECK_ALL_COMPONENTS = $CHECK_ALL_COMPONENTS 26 end 27 15 28 16 29 ## chip.cleanup.pro : -*- sh -*- … … 130 143 book getword chipPendingCleanup $pageName state -var CLEANUP_MODE 131 144 book getword chipPendingCleanup $pageName chip_id -var CHIP_ID 145 book getword chipPendingCleanup $pageName exp_tag -var EXP_TAG 146 book getword chipPendingCleanup $pageName workdir -var WORKDIR_TEMPLATE 132 147 book getword chipPendingCleanup $pageName dbname -var DBNAME 133 148 134 # specify choice of local or remote host based on camera and chip ( class_id)149 # specify choice of local or remote host based on camera and chip (in this case FPA) 135 150 set.host.for.camera $CAMERA FPA 151 152 set.workdir.by.camera $CAMERA FPA $WORKDIR_TEMPLATE $default_host WORKDIR 153 154 sprintf LOGFILE "%s/%s/%s.ch.%s.cleanup.log" $WORKDIR $EXP_TAG $EXP_TAG $CHIP_ID 136 155 137 156 stdout $LOGDIR/chip.cleanup.log 138 157 stderr $LOGDIR/chip.cleanup.log 139 158 140 # XXX is everything listed here needed? 141 $run = ipp_cleanup.pl --stage chip --stage_id $CHIP_ID --camera $CAMERA --mode $CLEANUP_MODE 159 $run = ipp_cleanup.pl --stage chip --stage_id $CHIP_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE 160 if ($CHECK_ALL_COMPONENTS) 161 $run = $run --check-all 162 end 142 163 add_standard_args run 143 164 … … 282 303 book getword camPendingCleanup $pageName state -var CLEANUP_MODE 283 304 book getword camPendingCleanup $pageName cam_id -var CAM_ID 305 book getword camPendingCleanup $pageName exp_tag -var EXP_TAG 306 book getword camPendingCleanup $pageName workdir -var WORKDIR_TEMPLATE 284 307 book getword camPendingCleanup $pageName dbname -var DBNAME 285 308 … … 287 310 set.host.for.camera $CAMERA FPA 288 311 312 # set the WORKDIR variable 313 set.workdir.by.camera $CAMERA FPA $WORKDIR_TEMPLATE $default_host WORKDIR 314 315 ## generate LOGFILE specific to this exposure (& cam_id) 316 sprintf LOGFILE "%s/%s/%s.cm.%s.cleanup.log" $WORKDIR $EXP_TAG $EXP_TAG $CAM_ID 317 289 318 stdout $LOGDIR/camera.cleanup.log 290 319 stderr $LOGDIR/camera.cleanup.log 291 320 292 # XXX is everything listed here needed? 293 $run = ipp_cleanup.pl --stage camera --stage_id $CAM_ID --camera $CAMERA --mode $CLEANUP_MODE 321 $run = ipp_cleanup.pl --stage camera --stage_id $CAM_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE 294 322 add_standard_args run 295 323 … … 591 619 book getword warpPendingCleanup $pageName state -var CLEANUP_MODE 592 620 book getword warpPendingCleanup $pageName warp_id -var WARP_ID 621 book getword warpPendingCleanup $pageName exp_tag -var EXP_TAG 622 book getword warpPendingCleanup $pageName workdir -var WORKDIR_TEMPLATE 593 623 book getword warpPendingCleanup $pageName dbname -var DBNAME 594 624 595 625 # specify choice of local or remote host based on camera and warp (class_id) 596 626 set.host.for.camera $CAMERA FPA 627 set.workdir.by.camera $CAMERA $WARP_ID $WORKDIR_TEMPLATE $default_host WORKDIR 628 629 sprintf LOGFILE "%s/%s/%s.wrp.%s.cleanup.log" $WORKDIR $EXP_TAG $EXP_TAG $WARP_ID 597 630 598 631 stdout $LOGDIR/warp.cleanup.log 599 632 stderr $LOGDIR/warp.cleanup.log 600 633 601 # XXX is everything listed here needed? 602 $run = ipp_cleanup.pl --stage warp --stage_id $WARP_ID --camera $CAMERA --mode $CLEANUP_MODE 634 $run = ipp_cleanup.pl --stage warp --stage_id $WARP_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE 635 if ($CHECK_ALL_COMPONENTS) 636 $run = $run --check-all 637 end 603 638 add_standard_args run 604 639 … … 748 783 book getword diffCleanup $pageName state -var CLEANUP_MODE 749 784 book getword diffCleanup $pageName diff_id -var DIFF_ID 785 book getword diffCleanup $pageName tess_id -var TESS_ID 786 book getword diffCleanup $pageName workdir -var WORKDIR_TEMPLATE 750 787 book getword diffCleanup $pageName dbname -var DBNAME 751 788 752 789 # specify choice of local or remote host based on camera and diff (class_id) 753 790 set.host.for.camera $CAMERA FPA 791 set.workdir.by.camera $CAMERA $DIFF_ID $WORKDIR_TEMPLATE $default_host WORKDIR 792 sprintf LOGFILE "%s/%s/%s.dif.%s.cleanup.log" $WORKDIR $TESS_ID $TESS_ID $DIFF_ID 793 754 794 755 795 stdout $LOGDIR/diff.cleanup.log 756 796 stderr $LOGDIR/diff.cleanup.log 757 797 758 # XXX is everything listed here needed? 759 $run = ipp_cleanup.pl --stage diff --stage_id $DIFF_ID --camera $CAMERA --mode $CLEANUP_MODE 798 $run = ipp_cleanup.pl --stage diff --stage_id $DIFF_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE 799 if ($CHECK_ALL_COMPONENTS) 800 $run = $run --check-all 801 end 760 802 add_standard_args run 761 803 … … 899 941 book getword stackCleanup $pageName state -var CLEANUP_MODE 900 942 book getword stackCleanup $pageName stack_id -var STACK_ID 943 book getword stackCleanup $pageName path_base -var PATH_BASE 901 944 book getword stackCleanup $pageName dbname -var DBNAME 902 945 … … 907 950 stderr $LOGDIR/stack.cleanup.log 908 951 909 # XXX is everything listed here needed?910 $run = ipp_cleanup.pl --stage stack --stage_id $STACK_ID --camera $CAMERA --mode $CLEANUP_MODE 952 sprintf LOGFILE "%s.cleanup.log" PATH_BASE 953 $run = ipp_cleanup.pl --stage stack --stage_id $STACK_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE 911 954 add_standard_args run 912 955 -
branches/czw_branch/20120906/ippTasks/skycal.pro
r32983 r34786 8 8 # test for required global variables 9 9 check.globals 10 11 # skcal.pro should have a more restricted polling limit (to avoid stress with getstar) 12 if ($?POLL_LIMIT_SKYCAL == 0) set POLL_LIMIT_SKYCAL = 25 13 14 macro set.skycal.poll 15 if ($0 != 2) 16 echo "USAGE:set.skycal.poll (value)" 17 break 18 end 19 20 $POLL_LIMIT_SKYCAL = $1 21 end 22 23 macro get.skycal.poll 24 echo "skycal poll limit: $POLL_LIMIT_SKYCAL" 25 end 10 26 11 27 ### Initialise the books containing the tasks to do … … 79 95 # save the DB name for the exit tasks 80 96 option $DB:$skycal_DB 81 $run = $run -dbname $DB:$skycal_DB -limit 4097 $run = $run -dbname $DB:$skycal_DB 82 98 $skycal_DB ++ 83 99 if ($skycal_DB >= $DB:n) set skycal_DB = 0 … … 85 101 add_poll_args run 86 102 add_poll_labels run 103 $run = $run -limit $POLL_LIMIT_SKYCAL 87 104 command $run 88 105 end … … 197 214 host local 198 215 199 periods -poll 60.0200 periods -exec 1 800.0216 periods -poll 10.0 217 periods -exec 1200.0 201 218 periods -timeout 120.0 202 219 npending 1 203 active false220 active true 204 221 205 222 stdout NULL -
branches/czw_branch/20120906/ippTasks/staticsky.pro
r33957 r34786 70 70 71 71 periods -poll $LOADPOLL 72 periods -exec $LOADEXEC73 periods -timeout 3072 periods -exec 30 73 periods -timeout 60 74 74 npending 1 75 75 -
branches/czw_branch/20120906/ippTasks/summit.copy.pro
r33168 r34786 223 223 periods -exec 10 224 224 periods -poll 1 225 periods -timeout 20225 periods -timeout 60 226 226 npending 1 227 227 -
branches/czw_branch/20120906/ippToPsps/jython/objectbatch.py
r34772 r34786 134 134 ," + filter[1] + "80pct = MAG_80/1000 \ 135 135 ," + filter[1] + "Flags = (0x7fff & FLAGS) | ((FLAGS >> 11) & 0x2000) \ 136 ," + filter[1] + "StackDetectID = STACK_DETECT_ID + " + str(filterID)136 ," + filter[1] + "StackDetectID = STACK_DETECT_ID" 137 137 138 138 #self.logger.info(sql) -
branches/czw_branch/20120906/ippTools/share/Makefile.am
r34772 r34786 88 88 chiptool_listrun.sql \ 89 89 chiptool_pendingcleanupimfile.sql \ 90 chiptool_pendingcleanupimfile_all.sql \ 90 91 chiptool_pendingcleanuprun.sql \ 91 92 chiptool_pendingimfile.sql \ … … 172 173 difftool_pendingcleanuprun.sql \ 173 174 difftool_pendingcleanupskyfile.sql \ 175 difftool_pendingcleanupskyfile_all.sql \ 174 176 difftool_revertdiffskyfile_delete.sql \ 175 177 difftool_revertdiffskyfile_updated.sql \ … … 424 426 warptool_pendingcleanuprun.sql \ 425 427 warptool_pendingcleanupskyfile.sql \ 428 warptool_pendingcleanupskyfile_all.sql \ 426 429 warptool_revertoverlap.sql \ 427 430 warptool_revertwarped_delete.sql \ -
branches/czw_branch/20120906/ippTools/share/camtool_pendingcleanuprun.sql
r25324 r34786 2 2 camRun.cam_id, 3 3 rawExp.camera, 4 rawExp.exp_tag, 5 camRun.workdir, 4 6 camRun.state 5 7 FROM camRun -
branches/czw_branch/20120906/ippTools/share/chiptool_pendingcleanuprun.sql
r22751 r34786 1 SELECT 1 SELECT DISTINCT 2 2 chipRun.chip_id, 3 3 rawExp.camera, 4 chipRun.state 4 rawExp.exp_tag, 5 chipRun.state, 6 chipRun.workdir 5 7 FROM chipRun 6 8 JOIN rawExp -
branches/czw_branch/20120906/ippTools/share/difftool_pendingcleanuprun.sql
r32218 r34786 6 6 rawExp.camera, 7 7 diffRun.state, 8 diffRun.workdir, 9 diffRun.tess_id, 8 10 diffRun.label 9 11 FROM diffRun … … 35 37 rawExp.camera, 36 38 diffRun.state, 39 diffRun.workdir, 40 diffRun.tess_id, 37 41 diffRun.label 38 42 FROM diffRun … … 64 68 rawExp.camera, 65 69 diffRun.state, 70 diffRun.workdir, 71 diffRun.tess_id, 66 72 diffRun.label 67 73 FROM diffRun … … 93 99 rawExp.camera, 94 100 diffRun.state, 101 diffRun.workdir, 102 diffRun.tess_id, 95 103 diffRun.label 96 104 FROM diffRun -
branches/czw_branch/20120906/ippTools/share/pstamptool_revertdependent.sql
r29286 r34786 4 4 SET pstampDependent.fault = 0 5 5 -- fault count hook %s 6 WHERE pstampDependent.state = 'new' 6 WHERE pstampRequest.state ='run' 7 AND pstampJob.state ='run' 8 AND pstampDependent.state = 'new' 7 9 AND (pstampDependent.fault > 0) -
branches/czw_branch/20120906/ippTools/share/stacktool_pendingcleanuprun.sql
r24186 r34786 8 8 stackRun.stack_id, 9 9 rawExp.camera, 10 stackRun.state 10 stackRun.state, 11 stackSumSkyfile.path_base 11 12 FROM stackRun 13 JOIN stackSumSkyfile using(stack_id) 12 14 JOIN stackInputSkyfile 13 15 USING(stack_id) -
branches/czw_branch/20120906/ippTools/share/staticskytool_defineskycalrun.sql
r32960 r34786 2 2 sky_id, 3 3 stack_id, 4 skycell_id, 5 filter, 4 6 staticskyRun.workdir, 5 7 staticskyRun.label, … … 11 13 JOIN stackRun USING(stack_id) 12 14 JOIN stackSumSkyfile USING(stack_id) 15 JOIN skycell USING(tess_id, skycell_id) 13 16 LEFT JOIN skycalRun USING(sky_id, stack_id) 14 17 WHERE staticskyRun.state = 'full' -
branches/czw_branch/20120906/ippTools/share/warptool_pendingcleanuprun.sql
r23418 r34786 1 1 SELECT 2 2 warpRun.warp_id, 3 warpRun.workdir, 3 4 rawExp.camera, 5 rawExp.exp_tag, 4 6 warpRun.state 5 7 FROM warpRun -
branches/czw_branch/20120906/ippTools/src/chiptool.c
r34772 r34786 1311 1311 PXOPT_LOOKUP_S64(chip_id, config->args, "-chip_id", false, false); 1312 1312 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1313 PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 1313 1314 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1314 1315 … … 1319 1320 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 1320 1321 1321 psString query = pxDataGet("chiptool_pendingcleanupimfile.sql"); 1322 char *sql_file = all ? "chiptool_pendingcleanupimfile_all.sql" : "chiptool_pendingcleanupimfile.sql"; 1323 psString query = pxDataGet(sql_file); 1322 1324 if (!query) { 1323 1325 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); -
branches/czw_branch/20120906/ippTools/src/chiptoolConfig.c
r34772 r34786 296 296 psMetadataAddS64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 297 297 psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", NULL); 298 psMetadataAddBool(pendingcleanupimfileArgs, PS_LIST_TAIL, "-all", 0, "list all components regardless of data_state", false); 298 299 psMetadataAddBool(pendingcleanupimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 299 300 psMetadataAddU64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); -
branches/czw_branch/20120906/ippTools/src/difftool.c
r34772 r34786 2561 2561 2562 2562 PXOPT_LOOKUP_S64(diff_id, config->args, "-diff_id", false, false); 2563 PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 2563 2564 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 2564 2565 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 2570 2571 pxAddLabelSearchArgs (config, where, "-label", "diffRun.label", "=="); 2571 2572 2572 psString query = pxDataGet("difftool_pendingcleanupskyfile.sql"); 2573 char * sql_file = all ? "difftool_pendingcleanupskyfile_all.sql": "difftool_pendingcleanupskyfile.sql" ; 2574 psString query = pxDataGet(sql_file); 2573 2575 if (!query) { 2574 2576 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); … … 2740 2742 PS_ASSERT_PTR_NON_NULL(config, false); 2741 2743 2742 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 2743 PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false); 2744 2745 psMetadata *where = psMetadataAlloc(); 2746 PXOPT_COPY_S64(config->args, where, "-diff_id", "diff_id", "=="); 2747 PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "=="); 2748 2749 if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, fault, quality)) { 2750 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 2744 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 2745 2746 if (!state) { 2747 psMetadata *where = psMetadataAlloc(); 2748 PXOPT_COPY_S64(config->args, where, "-diff_id", "diff_id", "=="); 2749 PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "=="); 2750 2751 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 2752 PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false); 2753 2754 if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, fault, quality)) { 2755 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 2756 psFree (where); 2757 return false; 2758 } 2751 2759 psFree (where); 2752 return false; 2753 } 2754 psFree (where); 2760 } else { 2761 if (strcmp(state,"error_cleaned") == 0) { 2762 change_skyfile_data_state(config,"error_cleaned", "goto_cleaned"); 2763 } 2764 else if (strcmp(state, "error_scrubbed") == 0) { 2765 change_skyfile_data_state(config,"error_scrubbed", "goto_scrubbed"); 2766 } 2767 else if (strcmp(state, "error_purged") == 0) { 2768 change_skyfile_data_state(config,"error_purged", "goto_purged"); 2769 } 2770 else { 2771 psError(PS_ERR_UNKNOWN, false, "unhandled state given"); 2772 return(false); 2773 } 2774 } 2755 2775 2756 2776 return true; -
branches/czw_branch/20120906/ippTools/src/difftoolConfig.c
r34772 r34786 395 395 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 396 396 psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, "search by diff ID", 0); 397 psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-all", 0, "list all skycells regardless of data_state", false); 397 398 psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 398 399 psMetadataAddU64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 411 412 psMetadataAddBool(donecleanupArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 412 413 psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 414 413 415 // -updatediffskyfile 414 416 psMetadata *updatediffskyfileArgs = psMetadataAlloc(); … … 416 418 psMetadataAddStr(updatediffskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); 417 419 psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", 0); 418 psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "-set_quality", 0, "set quality", 0); 420 psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "-set_quality", 0, "set quality", 0); 421 psMetadataAddStr(updatediffskyfileArgs, PS_LIST_TAIL, "-set_state", 0, "set data_state state", NULL); 419 422 420 423 // -tocleanedskyfile -
branches/czw_branch/20120906/ippTools/src/staticskytool.c
r34772 r34786 132 132 pxAddLabelSearchArgs(config, whereMD, "-select_data_group", "stackRun.data_group", "LIKE"); 133 133 pxAddLabelSearchArgs(config, whereMD, "-select_filter", "stackRun.filter", "LIKE"); 134 #ifdef notdef135 PXOPT_COPY_F32(config->args, whereMD, "-select_glat_min", "skycell.glat", ">=");136 PXOPT_COPY_F32(config->args, whereMD, "-select_glat_max", "skycell.glat", "<=");137 PXOPT_COPY_F32(config->args, whereMD, "-select_rahours_min", "skycell.radeg/15", ">=");138 PXOPT_COPY_F32(config->args, whereMD, "-select_rahours_max", "skycell.radeg/15", "<=");139 PXOPT_COPY_F32(config->args, whereMD, "-select_radeg_min", "skycell.radeg", ">=");140 PXOPT_COPY_F32(config->args, whereMD, "-select_radeg_max", "skycell.radeg", "<=");141 PXOPT_COPY_F32(config->args, whereMD, "-select_decdeg_min", "skycell.decdeg", ">=");142 PXOPT_COPY_F32(config->args, whereMD, "-select_decdeg_max", "skycell.decdeg", "<=");143 #endif144 134 if (!pxskycellAddWhere(config, whereMD)) { 145 135 psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments"); … … 686 676 psStringAppend(&query, "\nGROUP BY sky_id"); 687 677 if (num_filters) { 688 psStringAppend(&query, "\nHAVING COUNT(filter) >= %d", num_filters);678 psStringAppend(&query, "\nHAVING COUNT(filter) = %d", num_filters); 689 679 } 690 680 … … 1049 1039 pxAddLabelSearchArgs(config, whereMD, "-select_data_group", "staticskyRun.data_group", "LIKE"); 1050 1040 pxAddLabelSearchArgs(config, whereMD, "-select_filter", "stackRun.filter", "LIKE"); 1041 if (!pxskycellAddWhere(config, whereMD)) { 1042 psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments"); 1043 return false; 1044 } 1051 1045 1052 1046 PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false); … … 1128 1122 psString sky_label = psMetadataLookupStr(&status, row, "label"); 1129 1123 psString sky_data_group = psMetadataLookupStr(&status, row, "data_group"); 1124 psString sky_dist_group = psMetadataLookupStr(&status, row, "dist_group"); 1130 1125 1131 1126 // create a staticskyRun … … 1138 1133 label ? label : sky_label, 1139 1134 data_group ? data_group : sky_data_group, 1140 dist_group ,1135 dist_group ? dist_group : sky_dist_group, 1141 1136 reduction, 1142 1137 registered, -
branches/czw_branch/20120906/ippTools/src/staticskytoolConfig.c
r34772 r34786 126 126 psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL); 127 127 psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-data_group", 0, "search by data_group (LIKE comparison)", NULL); 128 psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-num_filters", 0, "search by number of filters in the inputs (>=)", 0);128 psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-num_filters", 0, "search by number of filters in the inputs", 0); 129 129 pxskycellAddArguments(resultArgs); 130 130 psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); … … 166 166 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-select_data_group", PS_META_DUPLICATE_OK, "search by stackRun data_group (LIKE comparison, multiple OK)", NULL); 167 167 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-select_filter", PS_META_DUPLICATE_OK, "search by filter (LIKE comparison, multiple OK)", NULL); 168 pxskycellAddArguments(defineskycalrunArgs); 168 169 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); 169 170 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_label", 0, "define label", NULL); … … 183 184 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 184 185 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0); 186 pxskycellAddArguments(updateskycalrunArgs); 185 187 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_label", 0, "define new value for label", NULL); 186 188 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_state", 0, "define new state", NULL); -
branches/czw_branch/20120906/ippTools/src/warptool.c
r34772 r34786 1838 1838 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1839 1839 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1840 PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 1840 1841 1841 1842 psMetadata *where = psMetadataAlloc(); … … 1843 1844 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 1844 1845 1845 psString query = pxDataGet("warptool_pendingcleanupskyfile.sql"); 1846 char * sql_file = all ? "warptool_pendingcleanupskyfile_all.sql" : "warptool_pendingcleanupskyfile.sql"; 1847 psString query = pxDataGet(sql_file); 1846 1848 if (!query) { 1847 1849 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); -
branches/czw_branch/20120906/ippTools/src/warptoolConfig.c
r34772 r34786 364 364 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 365 365 psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID (required)", 0); 366 psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-all", 0, "list all skycells regardless of data_state", false); 366 367 psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 367 368 psMetadataAddU64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); -
branches/czw_branch/20120906/ippconfig/gpc1/psphot.config
r34307 r34786 49 49 DIFF_STATS BOOL TRUE # Calculate diff-specific stats 50 50 OUTPUT.FORMAT STR PS1_DV2 # Format of output file 51 52 PSPHOT.EXT.NSIGMA.LIMIT F32 0.0 53 PSPHOT.EXT.DIFF.ALTERNATE BOOL TRUE 54 PSPHOT.EXT.DIFF.ALTERNATE.THRESH F32 1.25 55 END 56 57 SSTF_DIFF METADATA 58 PSPHOT.EXT.NSIGMA.LIMIT F32 0.0 59 PSPHOT.EXT.DIFF.ALTERNATE BOOL TRUE 60 PSPHOT.EXT.DIFF.ALTERNATE.THRESH F32 1.25 51 61 END 52 62 -
branches/czw_branch/20120906/ippconfig/recipes/ppSub.config
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/czw_branch/20120906/ippconfig/recipes/psphot.config
r34772 r34786 345 345 PSPHOT.EXT.NSIGMA.LIMIT F32 3.0 # sources with extNsigma greater that this get tagged as likely extended sources 346 346 PSPHOT.EXT.NSIGMA.MOMENTS F32 3.0 # sources with extNsigma greater that this get tagged as likely extended sources 347 PSPHOT.EXT.DIFF.ALTERNATE BOOL FALSE # use alternate extended source calculation; designed for diff trails 348 PSPHOT.EXT.DIFF.ALTERNATE.THRESH F32 1.5 # threshold for alternate extended source calculations 347 349 PSPHOT.CR.GROW S32 1 # Number of pixels to grow CR mask 348 350 PSPHOT.CR.NSIGMA.SOFTEN F32 0.0025 # Softening parameter for weights -
branches/czw_branch/20120906/ippconfig/recipes/reductionClasses.mdc
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/czw_branch/20120906/magic/censorObjects/src/censorLoop.c
r33626 r34786 29 29 30 30 31 32 33 31 // select the current recipe 34 32 psMetadata *recipe = psMetadataLookupPtr (NULL, config->recipes, CENSOR_RECIPE); … … 58 56 // check on the mask file at this level if possible 59 57 badMaskFile = censorBadFileByView(badMaskFile, inMask, config, view); 58 59 bool checkInputOnly = psMetadataLookupBool(NULL, config->arguments, "CHECK.INPUT.ONLY"); 60 60 61 61 // files associated with the science image … … 116 116 if (!readout->data_exists) { continue; } 117 117 118 if (!censorReadout (readout, config, view, badMaskFile)) ESCAPE; 118 if (!checkInputOnly) { 119 if (!censorReadout (readout, config, view, badMaskFile)) ESCAPE; 120 } 119 121 120 122 if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE; -
branches/czw_branch/20120906/ppTranslate/src/ppMopsRead.c
r34772 r34786 28 28 for (int i = 0; i < num; i++) { 29 29 const char *name = inNames->data[i]; 30 printf(" %s\n", name);30 printf("Input filename:\n%s\n", name); 31 31 32 32 psFits *fits = psFitsOpen(name, "r"); // FITS file … … 84 84 } 85 85 ppMopsDetections *det = ppMopsDetectionsAlloc(size); 86 det->platescale = NAN; 86 87 detections->data[i] = det; 87 88 det->component = psStringNCopy(name, strrchr(name, '.') - name); // Strip off extension … … 280 281 if (isfinite(scale)) { 281 282 det->platescale = scale; 283 //printf("platescale = %g\n", scale); 282 284 } 283 285 numGood++; … … 306 308 } 307 309 310 printf("Detection platescale = %g\n", det->platescale); 308 311 psTrace("ppMops.read", 2, "Read %ld good rows from %s\n", numGood, (const char*)name); 309 312 } -
branches/czw_branch/20120906/ppTranslate/src/ppMopsWrite.c
r34772 r34786 51 51 float seeing = 0.; 52 52 int totalGood = 0; 53 int platescale_has_been_set = 0; 53 54 for (int d = 0; d < detections->n; d++) { 54 55 if ( (detections->data[d] != NULL) && (isfinite(((ppMopsDetections*) detections->data[d])->seeing)) ) { … … 56 57 totalGood += 1; 57 58 if (isfinite(((ppMopsDetections*) detections->data[d])->platescale)) { 59 if (platescale_has_been_set == 0) { 58 60 det->platescale = ((ppMopsDetections*) detections->data[d])->platescale; 59 } 60 } 61 } 62 printf("plate-scale = [%g]\n", det->platescale); 61 platescale_has_been_set = 1; 62 } else { 63 if (det->platescale != ((ppMopsDetections*) detections->data[d])->platescale) { 64 printf("Different values for platescale: %g - %g in detection %d\n", 65 det->platescale, 66 ((ppMopsDetections*) detections->data[d])->platescale, 67 d); 68 } 69 } 70 } 71 } 72 } 73 //printf("plate-scale = [%g]\n", det->platescale); 63 74 seeing /= (float) totalGood; 64 75 if (det != NULL) { -
branches/czw_branch/20120906/psphot/src
- Property svn:mergeinfo changed
/trunk/psphot/src merged: 34769
- Property svn:mergeinfo changed
-
branches/czw_branch/20120906/psphot/src/psphotSourceSize.c
r34772 r34786 11 11 float nSigmaMoments; 12 12 float nSigmaCR; 13 bool altDiffExt; 14 float altDiffExtThresh; 13 15 float soft; 14 16 int grow; … … 120 122 assert (status); 121 123 124 // Optional extended source measurement algorithm to improve diff image trails 125 options.altDiffExt = psMetadataLookupBool(&status, recipe, "PSPHOT.EXT.DIFF.ALTERNATE"); 126 assert (status); 127 // Threshold for this alternate method 128 options.altDiffExtThresh = psMetadataLookupF32(&status, recipe, "PSPHOT.EXT.DIFF.ALTERNATE.THRESH"); 129 assert (status); 130 122 131 // location of a single test source 123 132 options.xtest = psMetadataLookupS32 (&status, recipe, "PSPHOT.CRMASK.XTEST"); … … 601 610 continue; 602 611 } 603 612 // Alternate extended source limit calculation 613 if (options->altDiffExt) { 614 // ratio of major to minor axes 615 // MRV = Major / Minor 616 // MRV = (0.5 * (Mxx + Myy) + 0.5 * sqrt( (Mxx + Myy)^2 + 4 Mxy^2)) / 617 // (0.5 * (Mxx + Myy) - 0.5 * sqrt( (Mxx + Myy)^2 + 4 Mxy^2)) 618 // MRV = (2 * 0.5 * (Mxx + Myy) - Minor) / Minor 619 float momentRatioVeres = (Mxx + Myy - Mminor) / Mminor; 620 bool isAltEXT = (momentRatioVeres > options->altDiffExtThresh); 621 if (isAltEXT) { 622 psTrace("psphotSourceClassRegion.EXT",4,"CLASS: %g %g\t%g %g\t%g %g\t%g %g\t%g ALTEXT\t%g %g\n", 623 source->peak->xf, source->peak->yf, Mminor, kMag, dMag, nSigmaMAG, options->sizeLimitCR, options->magLimitCR, options->nSigmaApResid, 624 momentRatioVeres,options->altDiffExtThresh); 625 source->mode |= PM_SOURCE_MODE_EXT_LIMIT; 626 source->tmpFlags |= PM_SOURCE_TMPF_SIZE_MEASURED; 627 Next ++; 628 continue; 629 } 630 } 631 604 632 // Everything else should just be treated as a PSF 605 633 psTrace("psphotSourceClassRegion.PSF",4,"CLASS: %g %g\t%g %g\t%g %g\t%g %g\t%g PSF\n", -
branches/czw_branch/20120906/psphot/src/psphotStackImageLoop.c
- Property svn:mergeinfo changed (with no actual effect on merging)
Note:
See TracChangeset
for help on using the changeset viewer.
