IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36434


Ignore:
Timestamp:
Jan 8, 2014, 5:33:01 PM (12 years ago)
Author:
watersc1
Message:

Add alternate search method that seems to help ipp038 and ipp048. This is similar to what Gene suggested, but uses the fact that we now know the max_ins_id, and so can do better stopping checks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/neb_rawOTA_host_scan.pl

    r36337 r36434  
    2121    ) or die "Unable to connect to database $DBI::errstr\n";
    2222
    23 my ($host,$min_ins_id,$verbose,$limit,$continue);
     23my ($host,$min_ins_id,$verbose,$limit,$continue,$alt);
    2424$min_ins_id = 0;
    2525$verbose = 0;
    2626$limit = 10000;
    2727$continue = 0;
     28$alt = 0;
    2829
    2930GetOptions(
     
    3334    'limit|l=s'     => \$limit,
    3435    'continue|c'    => \$continue,
     36    'alternate|a'   => \$alt,
    3537    ) or pod2usage( 2 );
    3638pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
     
    5052my $vol_id = shift( @{ ${ $r_vol }[0] });
    5153
     54# Get max ins_id
     55my $max_id_sth = "SELECT ins_id FROM instance WHERE vol_id = $vol_id ORDER BY ins_id DESC limit 1";
     56my $r_max_id   = $db->selectall_arrayref( $max_id_sth );
     57unless (defined(${ $r_max_id }[0])) {
     58    die "Cannot find max_id";
     59}
     60my $max_ins_id = shift( @{ ${ $r_max_id }[0] });
     61
    5262if ($verbose) {
    53     print "$host $volume $vol_id $min_ins_id\n";
     63    print "$host $volume $vol_id $min_ins_id $max_ins_id\n";
    5464}
    5565
     
    7080my $number = 0;
    7181do {
    72     my $ins_id_sth = "SELECT ins_id,so_id,uri FROM instance WHERE vol_id = ${vol_id} AND ins_id > $min_ins_id LIMIT $limit";
     82    my $ins_id_sth = "SELECT ins_id,so_id,uri FROM instance WHERE vol_id = ${vol_id} AND ins_id > $min_ins_id AND ins_id <= $max_ins_id  LIMIT $limit";
     83    if ($alt) {
     84        $ins_id_sth = "SELECT ins_id,so_id,uri,vol_id FROM instance WHERE ins_id > $min_ins_id AND ins_id <= $max_ins_id  LIMIT $limit";
     85    }
    7386    my $r_ins      = $db->selectall_arrayref( $ins_id_sth );
    7487    my $last_ins_id = 0;
    7588    $number = 0;
    7689    foreach $rr (@{ $r_ins }) {
    77         my ($ins_id,$so_id,$uri) = @{ $rr };
     90        my ($ins_id,$so_id,$uri,$v_id) = @{ $rr };
    7891        if ($verbose) {
    7992#       print ("  $ins_id $so_id $uri\n");
     
    8194        $number++;
    8295        $last_ins_id = $ins_id;
     96        if ($alt) {
     97            if ($v_id != $vol_id) { next; }
     98        }
    8399        if ($uri !~ /ota...fits/) { next; }
    84100        my $have_b_node = 0;
     
    138154        $min_ins_id = $last_ins_id;
    139155    }
    140 } while ($continue && $number != 0);
     156} while (($continue && $number != 0) || ($min_ins_id <= $max_ins_id));
Note: See TracChangeset for help on using the changeset viewer.