Subversion Repositories DevTools

Rev

Rev 7081 | Rev 7097 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7081 Rev 7093
Line 56... Line 56...
56
     * The character code is inserted directly into the Release Manager Database
56
     * The character code is inserted directly into the Release Manager Database
57
     * 
57
     * 
58
     */
58
     */
59
    public enum BuildReason {
59
    public enum BuildReason {
60
        
60
        
61
        Ripple('R'),
61
        Ripple('R'),            // Caused by mismatched dependencies
62
        Test('T'),
62
        Test('T'),              // A test request via a daemon instruction
63
        NewVersion('N'),
63
        NewVersion('N'),        // A user WIP will create a new version of a package
64
        Restore('P');
64
        Restore('P'),           // Package not present in dpkg_archive and must be rebuilt
-
 
65
        Forced('F');            // Forced Ripple Request via a daemon instruction
65
        
66
        
66
        private char reason;
67
        private char reason;
67
        private BuildReason(char reason) { this.reason = reason; }
68
        private BuildReason(char reason) { this.reason = reason; }
68
        @Override
69
        @Override
69
        public  String toString() { return String.valueOf(reason); }
70
        public  String toString() { return String.valueOf(reason); }
Line 1106... Line 1107...
1106
        if ( mUseDatabase )
1107
        if ( mUseDatabase )
1107
        {
1108
        {
1108
            try
1109
            try
1109
            {
1110
            {
1110
                connect();
1111
                connect();
1111
 
-
 
-
 
1112
// TODO What will the 'Forced' ripple do
1112
                CallableStatement stmt = mConnection.prepareCall("begin ? := PK_RMAPI.new_build_instance(?,?,?); end;");
1113
                CallableStatement stmt = mConnection.prepareCall("begin ? := PK_RMAPI.new_build_instance(?,?,?); end;");
1113
                stmt.registerOutParameter( 1, Types.INTEGER);
1114
                stmt.registerOutParameter( 1, Types.INTEGER);
1114
                stmt.setLong( 2,rtagId );
1115
                stmt.setLong( 2,rtagId );
1115
                stmt.setLong( 3,pvId );
1116
                stmt.setLong( 3,pvId );
1116
                stmt.setString( 4,reason.toString() );
1117
                stmt.setString( 4,reason.toString() );
Line 2880... Line 2881...
2880
 
2881
 
2881
            while( rset1.next() )
2882
            while( rset1.next() )
2882
            {
2883
            {
2883
                int pvId = rset1.mustGetKeyInt("pv_id");
2884
                int pvId = rset1.mustGetKeyInt("pv_id");
2884
                
2885
                
2885
                Package p = getPackageInfo(pvId, rippleEngine);
2886
                Package p = getPackageInfo(pvId, rippleEngine, true);
2886
                if ( p != NULL_PACKAGE)
2887
                if ( p != NULL_PACKAGE)
2887
                {
2888
                {
2888
                    p.mIsNotReleased = true;
2889
                    p.mIsNotReleased = true;
2889
                    p.mDirectlyPlanned = true;
2890
                    p.mDirectlyPlanned = true;
2890
                    p.mBuildReason = BuildReason.NewVersion;
2891
                    p.mBuildReason = BuildReason.NewVersion;
Line 2989... Line 2990...
2989
            DaemonInstruction di = new DaemonInstruction( baseline, 1, true);
2990
            DaemonInstruction di = new DaemonInstruction( baseline, 1, true);
2990
            while ( getDaemonInst( di ) )
2991
            while ( getDaemonInst( di ) )
2991
            {
2992
            {
2992
                mLogger.info("queryPackageVersions test build data {}", di.pvId);
2993
                mLogger.info("queryPackageVersions test build data {}", di.pvId);
2993
 
2994
 
2994
                Package p = getPackageInfo(di.pvId, rippleEngine);
2995
                Package p = getPackageInfo(di.pvId, rippleEngine, false);
2995
                if ( p == NULL_PACKAGE )
2996
                if ( p == NULL_PACKAGE )
2996
                {
2997
                {
2997
                    mLogger.error("queryTest rset15 no data found {}", di.instruction);
2998
                    mLogger.error("queryTest rset15 no data found {}", di.instruction);
2998
                    markDaemonInstCompleted( di.instruction );
2999
                    markDaemonInstCompleted( di.instruction );
2999
                    
3000
                    
Line 3049... Line 3050...
3049
 
3050
 
3050
            phase.setPhase("getDaemonInstructions1");
3051
            phase.setPhase("getDaemonInstructions1");
3051
            DaemonInstruction di = new DaemonInstruction( baseline, 0, true);
3052
            DaemonInstruction di = new DaemonInstruction( baseline, 0, true);
3052
            while ( getDaemonInst( di ) )
3053
            while ( getDaemonInst( di ) )
3053
            {
3054
            {
3054
                Package p = getPackageInfo(di.pvId, rippleEngine);
3055
                Package p = getPackageInfo(di.pvId, rippleEngine, false);
3055
                if ( p != NULL_PACKAGE )
3056
                if ( p != NULL_PACKAGE )
3056
                {
3057
                {
3057
                    mLogger.info("queryPackageVersions forced ripple data {}", di.pvId);
3058
                    mLogger.info("queryPackageVersions forced ripple data {}", di.pvId);
3058
                    packageCollection.add(p);
3059
                    packageCollection.add(p);
3059
                    p.mForcedRippleInstruction = di.instruction;
3060
                    p.mForcedRippleInstruction = di.instruction;
3060
                    p.addEmail(di.userEmail);
3061
                    p.addEmail(di.userEmail);
3061
                    p.mBuildReason = BuildReason.Ripple;
3062
                    p.mBuildReason = BuildReason.Forced;
3062
                    p.mIsNotReleased = true;
3063
                    p.mIsNotReleased = true;
3063
                }
3064
                }
3064
                else
3065
                else
3065
                {
3066
                {
3066
                    // discard
3067
                    // discard
Line 3083... Line 3084...
3083
     *      mBuildReason
3084
     *      mBuildReason
3084
     *      mDirectlyPlanned
3085
     *      mDirectlyPlanned
3085
     *  
3086
     *  
3086
     *  @param  pvId    - Package to process
3087
     *  @param  pvId    - Package to process
3087
     * @param rippleEngine - Ripple engine associated wit the Release
3088
     * @param rippleEngine - Ripple engine associated wit the Release
-
 
3089
     * @param useChangeType - true: For a WIP, the change type is significant
3088
     * @throws Exception 
3090
     * @throws Exception 
3089
     *  
3091
     *  
3090
     *  @returns a package - May be null, but this is not good
3092
     *  @returns a package - May be null, but this is not good
3091
     */
3093
     */
3092
    Package getPackageInfo(int pvId, RippleEngine rippleEngine) throws Exception
3094
    Package getPackageInfo(int pvId, RippleEngine rippleEngine, boolean useChangeType) throws Exception
3093
    {
3095
    {
3094
        Package p = NULL_PACKAGE;
3096
        Package p = NULL_PACKAGE;
3095
        
3097
        
3096
        try
3098
        try
3097
        {
3099
        {
Line 3163... Line 3165...
3163
            int major_limit = rset1.getInt("major_limit", 0);
3165
            int major_limit = rset1.getInt("major_limit", 0);
3164
            int minor_limit = rset1.getInt("minor_limit",0);
3166
            int minor_limit = rset1.getInt("minor_limit",0);
3165
            int patch_limit = rset1.getInt("patch_limit",0);
3167
            int patch_limit = rset1.getInt("patch_limit",0);
3166
            int build_number_limit = rset1.getInt("build_number_limit",0);
3168
            int build_number_limit = rset1.getInt("build_number_limit",0);
3167
            String vcs_tag = rset1.getString("vcsTag", "");
3169
            String vcs_tag = rset1.getString("vcsTag", "");
3168
 
3170
            
-
 
3171
            if ( useChangeType ) {
-
 
3172
                p = new Package(pkg_id, pv_id, pkg_name, pkg_version, v_ext, pkg_name + v_ext, vcs_tag, ripple_field.charAt(0), ct);                
-
 
3173
            } else {
3169
            p = new Package(pkg_id, pv_id, pkg_name, pkg_version, v_ext, pkg_name + v_ext, vcs_tag, ripple_field.charAt(0), ct);
3174
                p = new Package(pkg_id, pv_id, pkg_name, pkg_version, v_ext, pkg_name + v_ext, vcs_tag, ripple_field.charAt(0));
-
 
3175
            }
3170
            p.mMajorLimit = major_limit;
3176
            p.mMajorLimit = major_limit;
3171
            p.mMinorLimit = minor_limit;
3177
            p.mMinorLimit = minor_limit;
3172
            p.mPatchLimit = patch_limit;
3178
            p.mPatchLimit = patch_limit;
3173
            p.mBuildLimit = build_number_limit;
3179
            p.mBuildLimit = build_number_limit;
3174
            p.mPrevVersion = pkg_prevVersion;
3180
            p.mPrevVersion = pkg_prevVersion;
Line 3178... Line 3184...
3178
            stmt1.close();
3184
            stmt1.close();
3179
 
3185
 
3180
            // get Package dependency info
3186
            // get Package dependency info
3181
            mLogger.debug("getPackageInfo: stmt2");
3187
            mLogger.debug("getPackageInfo: stmt2");
3182
            PreparedStatement stmt2 = mConnection.prepareStatement(
3188
            PreparedStatement stmt2 = mConnection.prepareStatement(
3183
                    "select dpv.v_ext, dpv.pv_id" +
3189
                    "select p.pkg_name, dpv.v_ext, dpv.pv_id" +
3184
                            " from " +
3190
                            " from " +
3185
                            "     release_manager.package_versions pv,"+
3191
                            "     release_manager.package_versions pv,"+
3186
                            "     release_manager.package_dependencies pd," +
3192
                            "     release_manager.package_dependencies pd," +
3187
                            "     release_manager.package_versions dpv"+
3193
                            "     release_manager.package_versions dpv,"+
-
 
3194
                            "     release_manager.packages p" +
3188
                            " where pv.pv_id=" + pvId + 
3195
                            " where pv.pv_id=" + pvId + 
3189
                            "  and pd.pv_id=pv.pv_id"+
3196
                            "  and pd.pv_id=pv.pv_id"+
3190
                            "  and dpv.pv_id=pd.dpv_id"
3197
                            "  and dpv.pv_id=pd.dpv_id" +
-
 
3198
                            "  and pd.dpkg_id = p.pkg_id"
3191
                    );
3199
                    );
3192
            stmt2.setFetchSize(500);
3200
            stmt2.setFetchSize(500);
3193
            RmResultSet rset2 = new RmResultSet(stmt2.executeQuery(), "getPackageInfo rset2");
3201
            RmResultSet rset2 = new RmResultSet(stmt2.executeQuery(), "getPackageInfo rset2");
3194
 
3202
 
3195
            while ( rset2.next() )
3203
            while ( rset2.next() )
3196
            {
3204
            {
-
 
3205
                String dpv_name = rset2.mustGetKeyString("pkg_name");
3197
                String dpv_ext = rset2.mustGetKeyString("v_ext");
3206
                String dpv_ext = rset2.mustGetString("v_ext");
3198
                int    dpvId = rset2.mustGetInt("pv_id");
3207
                int    dpvId = rset2.mustGetInt("pv_id");
3199
                
3208
                
3200
                p.mDependencyCollection.add(pkg_name + dpv_ext);
3209
                p.mDependencyCollection.add(dpv_name + dpv_ext);
3201
                p.mDependencyIDCollection.add(dpvId);
3210
                p.mDependencyIDCollection.add(dpvId);
3202
            }
3211
            }
3203
 
3212
 
3204
            rset2.close();
3213
            rset2.close();
3205
            stmt2.close();
3214
            stmt2.close();