IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20926


Ignore:
Timestamp:
Dec 7, 2008, 2:31:03 PM (17 years ago)
Author:
eugene
Message:

add source_id method to lookup database id from ippadmin and merge with table id

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/PS-IPP-Config/lib/PS/IPP/Config.pm

    r20503 r20926  
    11# Copyright (c) 2006  Paul Price, Joshua Hoblitt
    22#
    3 # $Id: Config.pm,v 1.93 2008-11-01 03:17:48 bills Exp $
     3# $Id: Config.pm,v 1.94 2008-12-08 00:31:03 eugene Exp $
    44
    55package PS::IPP::Config;
     
    1010our $VERSION = '1.01';
    1111
     12use DBI;
    1213use Carp qw( carp );
    1314use File::Basename qw( basename dirname );
     
    3132                    $PS_EXIT_DATA_ERROR
    3233                    $PS_EXIT_TIMEOUT_ERROR
     34                    $PS_TABLE_ID_CHIP
     35                    $PS_TABLE_ID_WARP
     36                    $PS_TABLE_ID_STACK
     37                    $PS_TABLE_ID_DIFF
    3338                    metadataLookupStr
    3439                    metadataLookupMD
     
    4651our $PS_EXIT_DATA_ERROR = 5;
    4752our $PS_EXIT_TIMEOUT_ERROR = 6;
     53
     54our $PS_TABLE_ID_CHIP = 1;
     55our $PS_TABLE_ID_WARP = 2;
     56our $PS_TABLE_ID_STACK = 3;
     57our $PS_TABLE_ID_DIFF = 4;
    4858
    4959our $parser = PS::IPP::Metadata::Config->new; # Metadata parser
     
    223233    }
    224234
    225     # XXX why isn't just $self being returned here? -JH
    226235    return $self;
    227236}
     
    328337
    329338    return $pathname;
     339}
     340
     341# convert the database name and the table ID to a image source id
     342sub source_id
     343{
     344    my $self = shift;
     345    my $dbname = shift;
     346    my $table = shift;
     347
     348    my $dbserver = metadataLookupStr($self->{_siteConfig}, "DBSERVER");
     349    my $dbuser = metadataLookupStr($self->{_siteConfig}, "DBUSER");
     350    my $dbpassword = metadataLookupStr($self->{_siteConfig}, "DBPASSWORD");
     351    my $admindb = "ippadmin";
     352
     353    die "database configuration set up" unless defined($dbserver);
     354    die "database configuration set up" unless defined($dbuser);
     355    die "database configuration set up" unless defined($dbpassword);
     356
     357    my $dsn = "DBI:mysql:host=$dbserver;database=$admindb";
     358    my $dbh = DBI->connect($dsn, $dbuser, $dbpassword) or die "Cannot connect to database.\n";
     359
     360    my $query = "SELECT proj_id FROM projects WHERE projname = \'$dbname\'";
     361    my $stmt = $dbh->prepare($query);
     362    $stmt->execute();
     363    my $ref = $stmt->fetchrow_hashref();
     364    die "ippdb $dbname not found" unless ($ref);
     365
     366    my $proj_id = $ref->{proj_id};
     367    $stmt->finish();
     368
     369    my $source_id = ($proj_id << 3) & $table;
     370    return $source_id;
    330371}
    331372
Note: See TracChangeset for help on using the changeset viewer.