Subversion Repositories DevTools

Rev

Rev 908 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 908 Rev 916
Line 56... Line 56...
56
 
56
 
57
    while(!exit)
57
    while(!exit)
58
    {
58
    {
59
      try
59
      try
60
      {
60
      {
-
 
61
        mLogger.fatal("run calling sleepCheck");
61
        sleepCheck();
62
        sleepCheck();
-
 
63
        mLogger.fatal("run calling rippleEngine.collectMetaData");
62
        rippleEngine.collectMetaData();
64
        rippleEngine.collectMetaData();
63
        
65
        
64
        if ( Thread.currentThread().isInterrupted() )
66
        if ( Thread.currentThread().isInterrupted() )
65
        {
67
        {
66
          mLogger.warn("run is interrupted");
68
          mLogger.warn("run is interrupted");
Line 86... Line 88...
86
              // coordinate slave threads
88
              // coordinate slave threads
87
              mLogger.warn("run coordinate slave threads");
89
              mLogger.warn("run coordinate slave threads");
88
 
90
 
89
              mRunLevel = RunLevel.WAITING;
91
              mRunLevel = RunLevel.WAITING;
90
              mLogger.warn("run changing run level to WAITING for rcon_id " + mRconId);
92
              mLogger.warn("run changing run level to WAITING for rcon_id " + mRconId);
-
 
93
              mLogger.fatal("run calling mRunLevel.persistNew to set WAITING");
91
              mRunLevel.persistNew(mReleaseManager, mRconId);
94
              mRunLevel.persistNew(mReleaseManager, mRconId);
92
 
95
 
93
              boolean allSlaveThreadsWaiting = false;
96
              boolean allSlaveThreadsWaiting = false;
94
              boolean logWarning = true;
97
              boolean logWarning = true;
95
              boolean logWarning2 = true;
98
              boolean logWarning2 = true;
96
              
99
              
97
              while ( !allSlaveThreadsWaiting )
100
              while ( !allSlaveThreadsWaiting )
98
              {
101
              {
-
 
102
                mLogger.fatal("run calling mReleaseManager.queryRunLevel");
99
                mReleaseManager.queryRunLevel(mRtagId);
103
                mReleaseManager.queryRunLevel(mRtagId);
100
                
104
                
101
                // anything but WAITING or PAUSED
105
                // anything but WAITING or PAUSED
102
                current_run_level.value = ReleaseManager.DB_IDLE;
106
                current_run_level.value = ReleaseManager.DB_IDLE;
-
 
107
                mLogger.fatal("run calling mReleaseManager.getFirstRunLevel");
103
                boolean moreRunLevelsConfigured = mReleaseManager.getFirstRunLevel(rconId, current_run_level);
108
                boolean moreRunLevelsConfigured = mReleaseManager.getFirstRunLevel(rconId, current_run_level);
104
                  
109
                  
105
                // attempt to exit loop
110
                // attempt to exit loop
106
                allSlaveThreadsWaiting = true;
111
                allSlaveThreadsWaiting = true;
107
            
112
            
Line 125... Line 130...
125
                      }
130
                      }
126
                      allSlaveThreadsWaiting = false;
131
                      allSlaveThreadsWaiting = false;
127
                    }
132
                    }
128
                    else
133
                    else
129
                    {
134
                    {
-
 
135
                      mLogger.fatal("run calling mReleaseManager.getNextRunLevel");
130
                      moreRunLevelsConfigured = mReleaseManager.getNextRunLevel(rconId, current_run_level);
136
                      moreRunLevelsConfigured = mReleaseManager.getNextRunLevel(rconId, current_run_level);
131
                    }
137
                    }
132
                  }
138
                  }
133
                }
139
                }
134
                while (moreRunLevelsConfigured && allSlaveThreadsWaiting);
140
                while (moreRunLevelsConfigured && allSlaveThreadsWaiting);
Line 149... Line 155...
149
                    }
155
                    }
150
                    else
156
                    else
151
                    {
157
                    {
152
                      mLogger.info("run sleeping 3 secs waiting for slave threads");
158
                      mLogger.info("run sleeping 3 secs waiting for slave threads");
153
                    }
159
                    }
-
 
160
                    mLogger.fatal("run calling Thread.sleep for 3 secs");
154
                    Thread.sleep(3000);
161
                    Thread.sleep(3000);
155
                    mLogger.info("run sleep returned");
162
                    mLogger.info("run sleep returned");
156
                  }
163
                  }
157
                }
164
                }
158
              }
165
              }
Line 163... Line 170...
163
              }
170
              }
164
              
171
              
165
              // DEVI 50527
172
              // DEVI 50527
166
              mRunLevel = RunLevel.PUBLISHING;
173
              mRunLevel = RunLevel.PUBLISHING;
167
              mLogger.warn("run changing run level to PUBLISHING for rcon_id " + mRconId);
174
              mLogger.warn("run changing run level to PUBLISHING for rcon_id " + mRconId);
-
 
175
              mLogger.fatal("run calling mRunLevel.persist to set PUBLISHING");
168
              mRunLevel.persist(mReleaseManager, mRconId);
176
              mRunLevel.persist(mReleaseManager, mRconId);
169
              
177
              
-
 
178
              mLogger.fatal("run calling deliverChange on AbtPublish");
170
              deliverChange(null, "AbtPublish", false);
179
              deliverChange(null, "AbtPublish", false);
171
              // preserve 
180
              // preserve 
172
              String reportingFullyPublished = mReportingFullyPublished;
181
              String reportingFullyPublished = mReportingFullyPublished;
173
              String reportingNewLabel = mReportingNewLabel;
182
              String reportingNewLabel = mReportingNewLabel;
-
 
183
              mLogger.fatal("run calling deliverChange on AbtTearDown");
174
              deliverChange(null, "AbtTearDown", false);
184
              deliverChange(null, "AbtTearDown", false);
175
              
185
              
176
              // DEVI 47395 delete the build file now
186
              // DEVI 47395 delete the build file now
177
              // this will prevent any chance of multiply publishing a package version
187
              // this will prevent any chance of multiply publishing a package version
178
              File buildFile = new File(mRtagId + "build.xml");
188
              File buildFile = new File(mRtagId + "build.xml");
Line 207... Line 217...
207
                      if ( reportingFullyPublished != null && reportingFullyPublished.compareTo("yes") == 0 )
217
                      if ( reportingFullyPublished != null && reportingFullyPublished.compareTo("yes") == 0 )
208
                      {
218
                      {
209
                        success = true;
219
                        success = true;
210
                      }
220
                      }
211
                      
221
                      
-
 
222
                      mLogger.fatal("run calling p.completeTestBuild");                      
212
                      p.completeTestBuild(rippleEngine.mMailServer, rippleEngine.mMailSender, mReleaseManager, rippleEngine.mBaselineName, success);
223
                      p.completeTestBuild(rippleEngine.mMailServer, rippleEngine.mMailSender, mReleaseManager, rippleEngine.mBaselineName, success);
213
                    }
224
                    }
214
                      
225
                      
215
                    // ... and clean up the mess in the archive
226
                    // ... and clean up the mess in the archive
216
                    throw new Exception();                    
227
                    throw new Exception();                    
Line 225... Line 236...
225
                      Integer rtagId = new Integer(mRtagId);
236
                      Integer rtagId = new Integer(mRtagId);
226
                      
237
                      
227
                      if ( mGbeGatherMetricsOnly == null )
238
                      if ( mGbeGatherMetricsOnly == null )
228
                      {
239
                      {
229
                        // publish to release manager
240
                        // publish to release manager
-
 
241
                        mLogger.fatal("run calling mReleaseManager.autoMakeRelease");                      
230
                        mReleaseManager.autoMakeRelease(rtagId.toString(), mReportingPackageName, mReportingPackageExtension, mReportingPackageVersion, reportingNewLabel, mReportingPackageDepends, mReportingIsRipple);
242
                        mReleaseManager.autoMakeRelease(rtagId.toString(), mReportingPackageName, mReportingPackageExtension, mReportingPackageVersion, reportingNewLabel, mReportingPackageDepends, mReportingIsRipple);
231
                      }
243
                      }
232
                      
244
                      
233
                      FileInputStream abtmetrics = new FileInputStream( rtagId.toString() + "abtmetrics.txt" );
245
                      FileInputStream abtmetrics = new FileInputStream( rtagId.toString() + "abtmetrics.txt" );
234
                      DataInputStream din = new DataInputStream( abtmetrics );
246
                      DataInputStream din = new DataInputStream( abtmetrics );
Line 238... Line 250...
238
                      mLogger.warn( "execute read metrics string " + metrics );
250
                      mLogger.warn( "execute read metrics string " + metrics );
239
                      br.close();
251
                      br.close();
240
                      isr.close();
252
                      isr.close();
241
                      din.close();
253
                      din.close();
242
  
254
  
-
 
255
                      mLogger.fatal("run calling mReleaseManager.insertPackageMetrics");                      
243
                      mReleaseManager.insertPackageMetrics(rtagId.toString(), mReportingPackageName, mReportingPackageExtension, metrics );
256
                      mReleaseManager.insertPackageMetrics(rtagId.toString(), mReportingPackageName, mReportingPackageExtension, metrics );
244
                    }
257
                    }
245
                    else
258
                    else
246
                    {
259
                    {
247
                      mLogger.info("run package not labelled in ClearCase on " + mReportingPackageName + mReportingPackageVersion);
260
                      mLogger.info("run package not labelled in ClearCase on " + mReportingPackageName + mReportingPackageVersion);
Line 270... Line 283...
270
                  if ( dpkgArchiveEntryFile.exists() )
283
                  if ( dpkgArchiveEntryFile.exists() )
271
                  {
284
                  {
272
                    if ( dpkgArchiveEntryFile.isDirectory() )
285
                    if ( dpkgArchiveEntryFile.isDirectory() )
273
                    {
286
                    {
274
                      mLogger.warn("run deleting " + dpkgArchiveEntryFile.getName());
287
                      mLogger.warn("run deleting " + dpkgArchiveEntryFile.getName());
-
 
288
                      mLogger.fatal("run calling deleteDirectory on " + dpkgArchiveEntryFile);                      
275
                      deleteDirectory(dpkgArchiveEntryFile);
289
                      deleteDirectory(dpkgArchiveEntryFile);
276
                    }
290
                    }
277
                  }
291
                  }
278
                  else
292
                  else
279
                  {
293
                  {
Line 284... Line 298...
284
                    if ( dplyArchiveEntryFile.exists() )
298
                    if ( dplyArchiveEntryFile.exists() )
285
                    {
299
                    {
286
                      if ( dplyArchiveEntryFile.isDirectory() )
300
                      if ( dplyArchiveEntryFile.isDirectory() )
287
                      {
301
                      {
288
                        mLogger.warn("run deleting " + dplyArchiveEntryFile.getName());
302
                        mLogger.warn("run deleting " + dplyArchiveEntryFile.getName());
-
 
303
                        mLogger.fatal("run calling deleteDirectory on " + dplyArchiveEntryFile);                      
289
                        deleteDirectory(dplyArchiveEntryFile);
304
                        deleteDirectory(dplyArchiveEntryFile);
290
                      }
305
                      }
291
                    }
306
                    }
292
                  }
307
                  }
293
                  
308
                  
Line 303... Line 318...
303
                      testBuildInstruction = Integer.parseInt( mReportingTestBuild );
318
                      testBuildInstruction = Integer.parseInt( mReportingTestBuild );
304
                    }
319
                    }
305
                    catch( NumberFormatException nfe )
320
                    catch( NumberFormatException nfe )
306
                    {
321
                    {
307
                    }
322
                    }
-
 
323
                    mLogger.fatal("run calling excludeFromBuild");                      
308
                    mReleaseManager.excludeFromBuild(mReportingPackageVersionId, null, rtagId.toString(), null, rootCause, null, false, testBuildInstruction);
324
                    mReleaseManager.excludeFromBuild(mReportingPackageVersionId, null, rtagId.toString(), null, rootCause, null, false, testBuildInstruction);
309
                    throw new Exception("an error occurred publishing to ClearCase or Release Manager");
325
                    throw new Exception("an error occurred publishing to ClearCase or Release Manager");
310
                  }
326
                  }
311
                  
327
                  
312
                  // DEVI 55364
328
                  // DEVI 55364
Line 325... Line 341...
325
                    testBuildInstruction = Integer.parseInt( mReportingTestBuild );
341
                    testBuildInstruction = Integer.parseInt( mReportingTestBuild );
326
                  }
342
                  }
327
                  catch( NumberFormatException nfe )
343
                  catch( NumberFormatException nfe )
328
                  {
344
                  {
329
                  }
345
                  }
-
 
346
                  mLogger.fatal("run calling excludeFromBuild");                      
330
                  mReleaseManager.excludeFromBuild(mReportingPackageVersionId, mReportingPackageVersion, rtagId.toString(), null, mReportingBuildFailureLogFile == null ? cause : null, mReportingBuildFailureLogFile, false, testBuildInstruction);
347
                  mReleaseManager.excludeFromBuild(mReportingPackageVersionId, mReportingPackageVersion, rtagId.toString(), null, mReportingBuildFailureLogFile == null ? cause : null, mReportingBuildFailureLogFile, false, testBuildInstruction);
331
                }
348
                }
332
              }
349
              }
333
              
350
              
334
              if ( mUnitTest.compareTo("unit test coordinate slave threads") == 0 )            
351
              if ( mUnitTest.compareTo("unit test coordinate slave threads") == 0 )            
Line 338... Line 355...
338
              mLogger.info("run coordinate slave threads returned");
355
              mLogger.info("run coordinate slave threads returned");
339
            }
356
            }
340
            
357
            
341
            // DEVI 51366 allowed to proceed after coordinate slave threads
358
            // DEVI 51366 allowed to proceed after coordinate slave threads
342
            mLogger.warn("run checking allowedToProceed");
359
            mLogger.warn("run checking allowedToProceed");
-
 
360
            mLogger.fatal("run calling allowedToProceed");                      
343
            allowedToProceed(true);
361
            allowedToProceed(true);
344
            mLogger.info("run allowedToProceed returned");
362
            mLogger.info("run allowedToProceed returned");
345
 
363
 
346
            if ( mUnitTest.compareTo("unit test allowed to proceed") == 0 )            
364
            if ( mUnitTest.compareTo("unit test allowed to proceed") == 0 )            
347
            {
365
            {
348
              throw new ExitException();
366
              throw new ExitException();
349
            }
367
            }
350
            
368
            
351
            // generate build files
369
            // generate build files
352
            mLogger.warn("run generating build files");
370
            mLogger.warn("run generating build files");
-
 
371
            mLogger.fatal("run calling planRelease");                      
353
            rippleEngine.planRelease();
372
            rippleEngine.planRelease();
-
 
373
            mLogger.fatal("run calling reportChange");                      
354
            rippleEngine.reportChange();
374
            rippleEngine.reportChange();
355
              
375
              
356
            // get the build file from the ripple engine
376
            // get the build file from the ripple engine
357
            rippleEngine.getFirstBuildFileContent(buildFileContent, addendum);
377
            rippleEngine.getFirstBuildFileContent(buildFileContent, addendum);
358
            
378
            
359
            if ( addendum.value.compareTo("non generic") == 0 )
379
            if ( addendum.value.compareTo("non generic") == 0 )
360
            {
380
            {
361
              // publish the build file
381
              // publish the build file
362
              mLogger.warn("run publishing build file");
382
              mLogger.warn("run publishing build file");
-
 
383
              mLogger.fatal("run calling publishBuildFile");                      
363
              mReleaseManager.publishBuildFile(mRtagId, buildFileContent.value);
384
              mReleaseManager.publishBuildFile(mRtagId, buildFileContent.value);
364
            }
385
            }
365
            else
386
            else
366
            {
387
            {
367
              // publish a dummy build file for either generic or dummy cases
388
              // publish a dummy build file for either generic or dummy cases
368
              // this results in the slave not running ant
389
              // this results in the slave not running ant
369
              mLogger.warn("run publishing dummy build file");
390
              mLogger.warn("run publishing dummy build file");
-
 
391
              mLogger.fatal("run calling publishBuildFile on dummy");                      
370
              mReleaseManager.publishBuildFile(mRtagId, mDummyBuildFileContent);
392
              mReleaseManager.publishBuildFile(mRtagId, mDummyBuildFileContent);
371
            }
393
            }
372
          }
394
          }
373
          mLogger.info("run generated build files");
395
          mLogger.info("run generated build files");
374
          
396
          
375
          if ( mGbeGatherMetricsOnly != null )
397
          if ( mGbeGatherMetricsOnly != null )
376
          {
398
          {
377
            // set view up early for metrics gathering to ensure build file is fully written before letting the slave loose
399
            // set view up early for metrics gathering to ensure build file is fully written before letting the slave loose
-
 
400
            mLogger.fatal("run calling setViewUp");                      
378
            setViewUp(buildFileContent.value, true);            
401
            setViewUp(buildFileContent.value, true);            
379
          }
402
          }
380
          
403
          
381
          // change the run level for all threads in associated with the baseline
404
          // change the run level for all threads in associated with the baseline
382
          mLogger.warn("run change the run level for all threads in associated with the baseline");
405
          mLogger.warn("run change the run level for all threads in associated with the baseline");
-
 
406
          mLogger.fatal("run calling queryReleaseConfig");                      
383
          mReleaseManager.queryReleaseConfig(mRtagId);
407
          mReleaseManager.queryReleaseConfig(mRtagId);
384
          rconId.value = -1;
408
          rconId.value = -1;
385
          boolean moreBuildThreadsConfigured = mReleaseManager.getFirstReleaseConfig(rconId);
409
          boolean moreBuildThreadsConfigured = mReleaseManager.getFirstReleaseConfig(rconId);
386
          mRunLevel = RunLevel.ACTIVE;
410
          mRunLevel = RunLevel.ACTIVE;
387
            
411
            
388
          do
412
          do
389
          {
413
          {
390
            if (moreBuildThreadsConfigured)
414
            if (moreBuildThreadsConfigured)
391
            {
415
            {
392
                mLogger.warn("run changing run level to ACTIVE for rcon_id " + rconId.value);
416
                mLogger.warn("run changing run level to ACTIVE for rcon_id " + rconId.value);
-
 
417
                mLogger.fatal("run calling mRunLevel.persist to set ACTIVE");                      
393
                mRunLevel.persist(mReleaseManager, rconId.value);
418
                mRunLevel.persist(mReleaseManager, rconId.value);
394
                moreBuildThreadsConfigured = mReleaseManager.getNextReleaseConfig(rconId);
419
                moreBuildThreadsConfigured = mReleaseManager.getNextReleaseConfig(rconId);
395
            }
420
            }
396
          }
421
          }
397
          while (moreBuildThreadsConfigured);
422
          while (moreBuildThreadsConfigured);
Line 404... Line 429...
404
        
429
        
405
        mLogger.info("run changed run levels");
430
        mLogger.info("run changed run levels");
406
        
431
        
407
        // check environment
432
        // check environment
408
        mLogger.warn("run checkEnvironment");
433
        mLogger.warn("run checkEnvironment");
-
 
434
        mLogger.fatal("run calling checkEnvironment");                      
409
        checkEnvironment();
435
        checkEnvironment();
410
        mLogger.info("run checkEnvironment returned");
436
        mLogger.info("run checkEnvironment returned");
411
        
437
        
412
        if ( mUnitTest.compareTo("unit test check environment") == 0 )
438
        if ( mUnitTest.compareTo("unit test check environment") == 0 )
413
        {
439
        {
Line 417... Line 443...
417
        // deliver change to product baseline
443
        // deliver change to product baseline
418
        mLogger.warn("run deliverChange");
444
        mLogger.warn("run deliverChange");
419
        
445
        
420
        if ( mGbeGatherMetricsOnly == null )
446
        if ( mGbeGatherMetricsOnly == null )
421
        {
447
        {
-
 
448
          mLogger.fatal("run calling setViewUp metrics only");                      
422
          setViewUp(buildFileContent.value, true);
449
          setViewUp(buildFileContent.value, true);
423
        }
450
        }
424
        
451
        
-
 
452
        mLogger.fatal("run calling deliverChange - the actual build");                      
425
        deliverChange(null, null, false);
453
        deliverChange(null, null, false);
426
        mLogger.info("run deliverChange returned");
454
        mLogger.info("run deliverChange returned");
427
        
455
        
428
        mSleep = false;
456
        mSleep = false;
429
        if ( addendum.value.compareTo("dummy") == 0 )
457
        if ( addendum.value.compareTo("dummy") == 0 )