IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 18191


Ignore:
Timestamp:
Jun 18, 2008, 5:56:53 PM (18 years ago)
Author:
eugene
Message:

fix up cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20080618/ippScripts/scripts/ipp_cleanup.pl

    r18141 r18191  
    1919
    2020# Parse the command-line arguments
    21 my ($stage, $camera, $class_id, $mode, $path_base, $dbname, $no_op, $help);
     21my ($stage, $camera, $stage_id, $mode, $path_base, $dbname, $no_op, $help);
    2222GetOptions('stage=s'        => \$stage,     # which analysis stage to clean?
    2323           'camera|i=s'     => \$camera,    # user-supplied camera name
    24            'class_id=s'     => \$class_id,  # class_id (only needed for certain stages)
     24           'stage_id=s'     => \$stage_id,  # id for this stage (only needed for certain stages)
    2525           'mode|m=s'       => \$mode,      # cleanup mode (clean / purge)
    2626           'path_base=s'    => \$path_base, # basename for files
    2727           'dbname|d=s'     => \$dbname,    # Database name
     28           'verbose'        => \$verbose,   # Print to stdout
    2829           'no-op'          => \$no_op,     # pretend but don't actually inject
    2930           'help'           => \$help       # give help listing
     
    3435    defined $help;
    3536
    36 pod2usage( -msg => "Usage: $0 --camera (name) [--class_id class_id] --stage (stage) --mode (mode) --path_base (path) [--dbname dbname] [--no-op] [--help]",
     37pod2usage( -msg => "Usage: $0 --camera (name) --stage (stage) --stage_id stage_id --mode (mode) --path_base (path) [--dbname dbname] [--no-op] [--help]",
    3738           -exitval => 2 ) if
    3839    scalar @ARGV == 0;
     
    5253$ipprc->define_camera($camera);
    5354
     55my $mdcParser = PS::IPP::Metadata::Config->new; # Parser for metadata config files
     56
    5457my $found = 0;
    55 my @files = ();
    5658
    5759# choice of files to delete depends on the stage
    5860if ($stage eq "chip") {
    59     unless defined $class_id die "cleanup for chip stage requires class_id\n";
    60     # delete the temporary image datafiles
    61     addFilename (\@files, "PPIMAGE.OUTPUT", $path_base, $class_id);
    62     addFilename (\@files, "PPIMAGE.OUTPUT.MASK", $path_base, $class_id);
    63     addFilename (\@files, "PPIMAGE.OUTPUT.WEIGHT", $path_base, $class_id);
    64     addFilename (\@files, "PPIMAGE.CHIP", $path_base, $class_id);
    65     addFilename (\@files, "PPIMAGE.CHIP.MASK", $path_base, $class_id);
    66     addFilename (\@files, "PPIMAGE.CHIP.WEIGHT", $path_base, $class_id);
    67     if ($mode eq "purge") {
    68         # additional files to remove for 'purge' mode
    69         addFilename (\@files, "PPIMAGE.OUTPUT.FPA1", $path_base, $class_id);
    70         addFilename (\@files, "PPIMAGE.OUTPUT.FPA2", $path_base, $class_id);
    71         addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id);
    72         addFilename (\@files, "PPIMAGE.BIN2", $path_base, $class_id);
    73         addFilename (\@files, "PPIMAGE.JPEG1", $path_base, $class_id);
    74         addFilename (\@files, "PPIMAGE.JPEG", $path_base, $class_id);
    75         addFilename (\@files, "PPIMAGE.STATS", $path_base, $class_id);
     61   
     62    # select the imfiles for this entry
     63    # dettool -pendingcleanupimfile -chip_id $stage_id
     64
     65    # Get list of component files
     66    my $imfiles;                      # Array of component files
     67    my $command = "$dettool -pendingcleanupimfile -chip_id $stage_id"; # Command to run
     68    $command .= " -dbname $dbname" if defined $dbname;
     69    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $verbose);
     70    unless ($success) {
     71        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     72        &my_die("Unable to perform camtool: $error_code", $cam_id, $error_code);
    7673    }
    77     delete_files (\@files);
    78    
    79     # need to run command "chiptool -donecleanup"
     74    my $metadata = $mdcParser->parse(join "", @$stdout_buf) or
     75        &my_die("Unable to parse metadata config doc", $cam_id, $PS_EXIT_PROG_ERROR);
     76
     77    # extract the metadata for the files into a hash list
     78    $imfiles = parse_md_list($metadata) or
     79        &my_die("Unable to parse metadata list", $cam_id, $PS_EXIT_PROG_ERROR);
     80
     81    # loop over all of the imfiles, determine the path_base and class_id for each
     82    foreach my $imfile (@$imfiles) {
     83        my $class_id = $imfile->{class_id};
     84        my $path_base = $imfile->{path_base};
     85
     86        # array of actual filenames to delete
     87        my @files = ();
     88
     89        # delete the temporary image datafiles
     90        addFilename (\@files, "PPIMAGE.OUTPUT", $path_base, $class_id);
     91        addFilename (\@files, "PPIMAGE.OUTPUT.MASK", $path_base, $class_id);
     92        addFilename (\@files, "PPIMAGE.OUTPUT.WEIGHT", $path_base, $class_id);
     93        addFilename (\@files, "PPIMAGE.CHIP", $path_base, $class_id);
     94        addFilename (\@files, "PPIMAGE.CHIP.MASK", $path_base, $class_id);
     95        addFilename (\@files, "PPIMAGE.CHIP.WEIGHT", $path_base, $class_id);
     96        if ($mode eq "purge") {
     97            # additional files to remove for 'purge' mode
     98            addFilename (\@files, "PPIMAGE.OUTPUT.FPA1", $path_base, $class_id);
     99            addFilename (\@files, "PPIMAGE.OUTPUT.FPA2", $path_base, $class_id);
     100            addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id);
     101            addFilename (\@files, "PPIMAGE.BIN2", $path_base, $class_id);
     102            addFilename (\@files, "PPIMAGE.JPEG1", $path_base, $class_id);
     103            addFilename (\@files, "PPIMAGE.JPEG", $path_base, $class_id);
     104            addFilename (\@files, "PPIMAGE.STATS", $path_base, $class_id);
     105        }
     106       
     107        # actual command to delete the files
     108        $status = &delete_files (\@files);
     109
     110        if (! $status)  {
     111            my $command = "$dettool -updateimfile -chip_id $stage_id -class_id $class_id -code 55"; # Command to run
     112            $command .= " -dbname $dbname" if defined $dbname;
     113            # call the command
     114            $fault = 1;
     115        }
     116    }
     117
     118    if (! $fault) {
     119        my $command = "$dettool -updaterun -chip_id $chip_id -state clean";; # Command to run
     120        $command .= " -dbname $dbname" if defined $dbname;
     121        # need to run command "chiptool -donecleanup"
     122    }
    80123    exit 0;
    81124}
Note: See TracChangeset for help on using the changeset viewer.