Subversion Repositories DevTools

Rev

Rev 227 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#! perl
########################################################################
# Copyright ( C ) 2004 ERG Limited, All rights reserved
#
# Module name   : jats.sh
# Module type   : Makefile system
# Compiler(s)   : n/a
# Environment(s): jats
#
# Description   : Display the currently released version of ALL packages
#                 that are a part of a given release
#
#                 Currently hard coded to Sydney Legacy
#                 Appears to be an OLD version of play5
#
# Usage:
#
# Version   Who      Date        Description
#
#......................................................................#

require 5.006_001;
use strict;
use warnings;
use JatsError;
use JatsRmApi;

#use Data::Dumper;
use Cwd;
use DBI;
my $GBE_PERL     = $ENV{'GBE_PERL'};        # Essential ENV variables
my $GBE_CORE     = $ENV{'GBE_CORE'};
my $opt_verbose = 0;


my $RM_DB;

our %CM_DATA = (
    _CQ_DB                      => "dbi:ODBC:DEVI",
    _CQ_USER                    => "release_manager",
    _CQ_PASS                    => "release_manager",
    _CQ_CONN                    => undef,
);

#==============================================================================
# connectCQ
# Connects the DBI to Clear Quest if not connected
#==============================================================================
sub connectCQ
{
    my $globals = \%CM_DATA;

    if ( ! defined($globals->{_CQ_CONN}) )
    {
        $globals->{_CQ_CONN} = DBI->connect($globals->{_CQ_DB}, $globals->{_CQ_USER}, $globals->{_CQ_PASS});

        if ( ! defined($globals->{_CQ_CONN}) )
        {
            Error("connectCQ Failed to connect to database [$globals->{_CQ_DB}]. [$DBI::errstr].");
            return 0;
        }
        else
        {
            Message("connectCQ Connected to database [$globals->{_CQ_DB}].");
        }
    }
    return 1;
}   # _connectCQ


my @GDATA;
sub getPkgDetailsByRTAG_ID
{
    print "Test:1\n";
    my ($RTAG_ID) = @_;
    my $foundDetails = 0;
    my (@row);
    my $row_count = 0;

    # First get details from pv_id

    my $m_sqlstr = "SELECT pv.PV_ID, pkg.PKG_NAME, pv.PKG_VERSION FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv, PACKAGES pkg WHERE rc.RTAG_ID = $RTAG_ID AND rc.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID";
    print "--- Prepare\n";
    my $sth = $RM_DB->prepare($m_sqlstr);
    if ( defined($sth) )
    {
        print "--- Execute\n";
        if ( $sth->execute( ) )
        {
            print "--- Test Rows\n";
            if ( $sth->rows )
            {
                print "--- Fetch Rows\n";
                while ( @row = $sth->fetchrow_array )
                {
                    my %DATA;
                    $DATA{pv_id}            = $row[0];
                    $DATA{name}             = $row[1];
                    $DATA{version}          = $row[2];
                    push @GDATA, (\%DATA);
                    $row_count++;
                }
            }
            print "--- Finish: $row_count rows extracted\n";
            $sth->finish();
        }
        else
        {
            Warning("Execute failure: " . $sth->errstr );
        }
    }
    else
    {
        Warning("Prepare failure" );
    }
}


sub test_2
{
    print "Test:2\n";

    my $foundPkg = 0;
    my $pkg = 'mos_api';
    my @row;
    my ($m_sqlstr ) = "SELECT pkg_id, pkg_name FROM PACKAGES WHERE pkg_name=?";
    my ($sth )  = $RM_DB->prepare($m_sqlstr);
    if ( defined($sth) )
    {
        if ( $sth->execute( $pkg ) )
        {
            if ( $sth->rows )
            {
                while ( @row = $sth->fetchrow_array )
                {
                    print "---- @row\n";
                    $foundPkg = 1;
                    last;
                }
            }
            $sth->finish();
            if ( ! $foundPkg )
            {
                Warning("Unable to find Package [$pkg]");
            }
        }
        else
        {
            Warning("executing query [$m_sqlstr] : " . $sth->errstr);
        }
    }
    else
    {
        Warning("Unable to prepare SQL Statement [$m_sqlstr] : " . $RM_DB->errstr);
    }

}

sub test_3
{
    print "Test:3\n";

    my $m_sqlstr = "BEGIN PK_BUILDAPI.Remove_All_Product_Components(?,?); END;";

    my $sth = $RM_DB->prepare($m_sqlstr);
    if ( defined($sth) )
    {
        if ( ! $sth->execute( 12,  'SomePlatform' ) )
        {
            Warning("Expected Error executing query [$m_sqlstr] : " . $sth->errstr);
        }
        else
        {
            Warning("Expected error, but got a good result");
        }
    }
    else
    {
        Warning("Unable to prepare SQL Statement [$m_sqlstr] : " . $RM_DB->errstr);
    }
    
}

#-------------------------------------------------------------------------------
# Function        : Main
#
# Description     :
#
# Inputs          :
#
# Returns         :
#

ErrorConfig( 'name'    =>'TEST' );

connectRM( \$RM_DB);
#connectCQ();
getPkgDetailsByRTAG_ID(1861);               # Sydney Legacy
test_2();
test_3();
#DebugDumpData("GDATA", \@GDATA);
print "End of tests\n";
exit;

connectRM();
print "Connecting: $CM_DATA{_CQ_CONN}\n";