Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
392 dpurdie 1
#! perl
2
########################################################################
5710 dpurdie 3
# Copyright (c) VIX TECHNOLOGY (AUST) LTD
392 dpurdie 4
#
5
# Module name   : jats.sh
6
# Module type   : Makefile system
7
# Compiler(s)   : n/a
8
# Environment(s): jats
9
#
10
# Description   : Display the currently released version of ALL packages
11
#                 that are a part of a given release
12
#
13
#                 Currently hard coded to Sydney Release-1
14
#                 Currently will extract information on COTS packages
15
#
16
# Usage:
17
#
18
# Version   Who      Date        Description
19
#
20
#......................................................................#
21
 
22
require 5.006_001;
23
use strict;
24
use warnings;
25
use JatsError;
26
use JatsRmApi;
27
 
28
#use Data::Dumper;
29
use DBI;
30
use Cwd;
31
 
32
my $GBE_PERL     = $ENV{'GBE_PERL'};        # Essential ENV variables
33
my $GBE_CORE     = $ENV{'GBE_CORE'};
34
my $opt_verbose = 1;
35
my $RM_DB;
36
my @GDATA;
37
 
38
sub getPkgDetailsByRTAG_ID
39
{
40
    my ($RTAG_ID) = @_;
41
    my $foundDetails = 0;
42
    my (@row);
43
    my %dnr;
44
 
45
    # if we are not or cannot connect then return 0 as we have not found anything
46
    connectRM(\$RM_DB) unless ( $RM_DB );
47
 
48
    #
49
    #   Get do not ripple info
50
    #
51
    my $m_sqlstr1 = "SELECT dnr.PV_ID" .
52
                    " FROM DO_NOT_RIPPLE dnr" .
53
                    " WHERE dnr.RTAG_ID = $RTAG_ID";
54
    my $sth1 = $RM_DB->prepare($m_sqlstr1);
55
    if ( defined($sth1) )
56
    {
57
        if ( $sth1->execute( ) )
58
        {
59
            if ( $sth1->rows )
60
            {
61
                while ( @row = $sth1->fetchrow_array )
62
                {
63
                    $dnr{ $row[0] } = 1;
64
#print "Do not ripple: " . $row[0] . "\n";
65
                }
66
            }
67
            $sth1->finish();
68
        }
69
    }
70
    else
71
    {
72
        Error("Prepare failure" );
73
    }
74
 
75
 
76
 
77
    # First get details from pv_id
78
 
79
    my $m_sqlstr = "SELECT pv.PV_ID, pkg.PKG_NAME, pv.PKG_VERSION, pv.PKG_LABEL, pv.SRC_PATH, pv.BUILD_TYPE, pv.BS_ID, pbi.BSA_ID" .
80
                    " FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv, PACKAGES pkg, PACKAGE_BUILD_INFO pbi" .
81
                    " WHERE rc.RTAG_ID = $RTAG_ID AND rc.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID AND pv.PV_ID = pbi.PV_ID(+)"
82
                    ;
83
    my $sth = $RM_DB->prepare($m_sqlstr);
84
    if ( defined($sth) )
85
    {
86
        if ( $sth->execute( ) )
87
        {
88
            if ( $sth->rows )
89
            {
90
                while ( @row = $sth->fetchrow_array )
91
                {
92
                    my %DATA;
93
                    $DATA{pv_id}            = $row[0];
94
                    my $name = $DATA{name}             = $row[1];
95
                    my $ver = $DATA{version}          = $row[2];
96
                    my $label =                     $row[3] || '';
97
                    my $path = $row[4] || '';
98
                    my $bt = $row[5] || '?';
99
                    my $bs = $row[6] || '?';
100
                    my $be = $row[7] || '?';
101
 
102
                    my $ripple = 'Y';
103
                    $ripple = 'N' if ( exists  $dnr{ $row[0] } );
104
 
105
#                    next if ( $ver =~ /syd$/i );
106
#                    next if ( $ver =~ /cr$/i );
107
#                    next if ( $ver =~ /mas$/i );
108
#                    next unless ( $ver =~ /cots$/i );
109
 
110
                    $path =~ tr~\\/~/~s;
111
#                    next if ( $path =~ m~^/~  );
112
 
113
                    my $buildable = 'Y';
114
                    $buildable = 'N' unless ( $label );
115
                    $buildable = 'N' unless ( $path =~ m~^/~);
116
                    $buildable = 'N' if ( $path =~ m~deployarchive~);
117
                    $buildable = 'N' if ( $path =~ m~dpkg_archive~);
118
                    $buildable = 'N' if ( $path =~ m~deploy_archive~);
119
                    $buildable = 'N' if ( $bs eq '?' || $bs == 3);
120
 
121
#print "Ripple:$ripple,";
122
#print "BuildType:$row[5],";
123
print "Buildable:$buildable --";
124
print "BS:$bs,$bt,$be --";
125
printf ( "%40s %15s %50s %s\n",  $name, $ver, $label, $path);
126
#printf ( "copy e:\\%s\\%s .\n",  $name, $ver, $label, $path);
127
 
128
                    push @GDATA, (\%DATA);
129
                }
130
            }
131
            $sth->finish();
132
        }
133
    }
134
    else
135
    {
136
        Error("Prepare failure" );
137
    }
138
 
139
    $RM_DB->disconnect() || Error ("Disconnect failed");
140
 
141
 
142
}
143
 
144
#-------------------------------------------------------------------------------
145
# Function        : getRtagId
146
#
147
# Description     : Given a release name, determine the RTAG_ID
148
#
149
# Inputs          :
150
#
151
# Returns         :
152
#
153
sub getRtagId
154
{
155
    my ($RTAG_ID) = @_;
156
    my $foundDetails = 0;
157
    my (@row);
158
 
159
    # if we are not or cannot connect then return 0 as we have not found anything
160
    connectRM(\$RM_DB) unless ( $RM_DB );
161
 
162
    # First get details from pv_id
163
 
164
    my $m_sqlstr = "SELECT rt.RTAG_ID, rt.RTAG_NAME, rt.DESCRIPTION, pj.PROJ_ID, pj.PROJ_NAME, rt.OFFICIAL FROM RELEASE_TAGS rt, PROJECTS pj WHERE rt.PROJ_ID = pj.PROJ_ID ORDER BY pj.PROJ_NAME";
165
    my $sth = $RM_DB->prepare($m_sqlstr);
166
    if ( defined($sth) )
167
    {
168
        if ( $sth->execute( ) )
169
        {
170
            if ( $sth->rows )
171
            {
172
                while ( @row = $sth->fetchrow_array )
173
                {
174
                    printf "%20s, %8s(%s), %40s\n", $row[4], $row[0], $row[5], $row[1];
175
                }
176
            }
177
            $sth->finish();
178
        }
179
    }
180
    else
181
    {
182
        Error("Prepare failure" );
183
    }
184
 
185
    $RM_DB->disconnect() || Error ("Disconnect failed");
186
 
187
    exit;
188
}
189
 
190
#-------------------------------------------------------------------------------
191
# Function        : Main
192
#
193
# Description     :
194
#
195
# Inputs          :
196
#
197
# Returns         :
198
#
199
 
200
ErrorConfig( 'name'    =>'PLAY7' );
201
 
202
 
203
#getRtagId();
204
 
205
#getPkgDetailsByRTAG_ID(5143);           # 2301 : Seattle I8
206
#getPkgDetailsByRTAG_ID(2301);           # 2301 : Seattle I7
207
getPkgDetailsByRTAG_ID(2362);           # 2362 : Syd Release 1
208
#getPkgDetailsByRTAG_ID(1861);           # 1861 : Syd Release Legacy
209
#getPkgDetailsByRTAG_ID(3462);           # 3462 : Beijing Release 1
210
#getPkgDetailsByRTAG_ID(2641);           # 2641 : NZS Phase-1
211
 
212
#DebugDumpData("GDATA", \@GDATA);
213
exit;
214
 
215