IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 28106


Ignore:
Timestamp:
May 26, 2010, 9:12:02 AM (16 years ago)
Author:
bills
Message:

Get the 'webrequest number' frm the database

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/dbconfig/pstamp.md

    r27874 r28106  
    5959    fault       S16         0
    6060END
     61
     62pstampWebRequest METADATA
     63    num         S64         0    # Primary Key AUTO_INCREMENT
     64END
  • trunk/ippTools/share/pxadmin_create_tables.sql

    r28096 r28106  
    14011401) ENGINE=innodb DEFAULT CHARSET=latin1;
    14021402
     1403CREATE TABLE pstampWebRequest (
     1404        num BIGINT AUTO_INCREMENT,
     1405        PRIMARY KEY(num)
     1406) ENGINE=innodb DEFAULT CHARSET=latin1;
     1407
    14031408CREATE TABLE distTarget (
    14041409    target_id   BIGINT AUTO_INCREMENT,
  • trunk/ippTools/src/pstamptool.c

    r27969 r28106  
    5353static bool updatedependentMode(pxConfig *config);
    5454static bool revertdependentMode(pxConfig *config);
     55static bool getwebrequestnumMode(pxConfig *config);
    5556
    5657# define MODECASE(caseName, func) \
     
    9596        MODECASE(PSTAMPTOOL_MODE_UPDATEDEPENDENT, updatedependentMode);
    9697        MODECASE(PSTAMPTOOL_MODE_REVERTDEPENDENT, revertdependentMode);
     98        MODECASE(PSTAMPTOOL_MODE_GETWEBREQUESTNUM, getwebrequestnumMode);
    9799        default:
    98100            psAbort("invalid option (this should not happen)");
     
    13341336    return true;
    13351337}
     1338
     1339static bool getwebrequestnumMode(pxConfig *config)
     1340{
     1341    PS_ASSERT_PTR_NON_NULL(config, false);
     1342
     1343    if (!pstampWebRequestInsert(config->dbh, 0 )) {
     1344        psError(PS_ERR_UNKNOWN, false, "failed to insert pstampWebRequest");
     1345        return false;
     1346    }
     1347
     1348    psS64 req_id = psDBLastInsertID(config->dbh);
     1349
     1350    printf("%" PRId64 "\n", req_id);
     1351
     1352    return true;
     1353}
  • trunk/ippTools/src/pstamptool.h

    r27874 r28106  
    4848    PSTAMPTOOL_MODE_UPDATEDEPENDENT,
    4949    PSTAMPTOOL_MODE_REVERTDEPENDENT,
     50    PSTAMPTOOL_MODE_GETWEBREQUESTNUM,
    5051} pstamptoolMode;
    5152
  • trunk/ippTools/src/pstamptoolConfig.c

    r27874 r28106  
    235235    psMetadataAddBool(projectArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
    236236
     237    // -getwebrequestnum
     238    psMetadata *getwebrequestnumArgs = psMetadataAlloc();
     239
    237240    psMetadata *argSets = psMetadataAlloc();
    238241    psMetadata *modes = psMetadataAlloc();
     
    264267    PXOPT_ADD_MODE("-modproject",      "", PSTAMPTOOL_MODE_MODPROJECT, modprojectArgs);
    265268    PXOPT_ADD_MODE("-project",         "", PSTAMPTOOL_MODE_PROJECT,    projectArgs);
     269    PXOPT_ADD_MODE("-getwebrequestnum","", PSTAMPTOOL_MODE_GETWEBREQUESTNUM,   getwebrequestnumArgs);
    266270
    267271    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
  • trunk/pstamp/scripts/pstamp_insert_request.pl

    r27211 r28106  
    114114
    115115exit 0;
    116 
    117 # Temporary hack
    118 # webrequest number is stored in a file in the current directory
    119 #
    120 # get this number from the database
     116# Ask the database for the next web request number
    121117sub get_webreq_num
    122118{
    123     my $filename = "$workdir/webreq_num.txt";
    124     if (! open IN, "+< $filename" ) {
    125         my $initial_num = 1;
    126         open IN, "> $filename" or die "can't open $filename";
    127         print IN "$initial_num\n" or die "failed to initialize $filename";
    128         close IN;
    129         return $initial_num;
     119    my $command = "$pstamptool -getwebrequestnum";
     120    $command .= " -dbname $dbname" if $dbname;
     121    $command .= " -dbserver $dbserver" if $dbserver;
     122    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     123        run(command => $command, verbose => $verbose);
     124    unless ($success) {
     125        print STDERR @$stderr_buf;
     126        die("Unable to perform pstamptool -getwebrequestnum: $error_code");
     127    }
     128    my $webreq_num = ${$stdout_buf}[0];
     129    chomp $webreq_num;
     130
     131    if (!$webreq_num) {
     132        die("pstamptool -getwebreqnum returned no value");
    130133    }
    131134
    132     my $webreq_num = <IN>;
    133     chomp $webreq_num;
     135    # print STDERR "webreq_num $webreq_num\n";
    134136
    135     print STDERR "$webreq_num\n" if $verbose;
    136 
    137     my $next = $webreq_num + 1;
    138     truncate IN, 0;
    139     seek IN, 0, 0;
    140     print IN "$next\n";
    141 
    142     close IN;
    143137    return $webreq_num;
    144138}
  • trunk/pstamp/scripts/pstamp_webrequest.pl

    r27355 r28106  
    2323
    2424my $host = hostname();
    25 my $verbose = 0;
     25my $verbose = 1;
    2626my $dbname;
    2727my $dbserver;
     
    152152exit 0;
    153153
    154 # Temporary hack
    155 # webrequest number is stored in a file in the current directory
    156 #
     154# Ask the database for the next web request number
    157155sub get_webreq_num
    158156{
    159     my $filename = "webreq_num.txt";
    160     if (! open IN, "+< $filename" ) {
    161         my $initial_num = 1;
    162         open IN, "> $filename" or die "can't open $filename";
    163         print IN "$initial_num\n" or die "failed to initialize $filename";
    164         close IN;
    165         return $initial_num;
     157    my $command = "$pstamptool -getwebrequestnum";
     158    $command .= " -dbname $dbname" if $dbname;
     159    $command .= " -dbserver $dbserver" if $dbserver;
     160    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     161        run(command => $command, verbose => $verbose);
     162    unless ($success) {
     163        print STDERR @$stderr_buf;
     164        die("Unable to perform pstamptool -getwebrequestnum: $error_code");
     165    }
     166    my $webreq_num = ${$stdout_buf}[0];
     167    chomp $webreq_num;
     168
     169    if (!$webreq_num) {
     170        die("pstamptool -getwebreqnum returned no value");
    166171    }
    167172
    168     my $webreq_num = <IN>;
    169     chomp $webreq_num;
     173    # print STDERR "webreq_num $webreq_num\n";
    170174
    171     print STDERR "$webreq_num\n" if $verbose;
    172 
    173     my $next = $webreq_num + 1;
    174     truncate IN, 0;
    175     seek IN, 0, 0;
    176     print IN "$next\n";
    177 
    178     close IN;
    179175    return $webreq_num;
    180176}
Note: See TracChangeset for help on using the changeset viewer.