Changeset 1578:75312c1cab05
- Timestamp:
- 10/28/08 10:55:39
(2 months ago)
- Author:
- Greg Von Kuster <greg@bx.psu.edu>
- branch:
- default
- Message:
Tweaks to my last commit - only persist job states defined in model, not job.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r1577 |
r1578 |
|
| 118 | 118 | try: |
|---|
| 119 | 119 | self.monitor_step() |
|---|
| 120 | | except: |
|---|
| 121 | | log.exception( "Exception in monitor_step" ) |
|---|
| | 120 | except Exception, e: |
|---|
| | 121 | log.exception( "Exception in monitor_step: %s" % str( e ) ) |
|---|
| 122 | 122 | # Sleep |
|---|
| 123 | 123 | self.sleeper.sleep( 1 ) |
|---|
| … | … | |
| 309 | 309 | return extra_filenames |
|---|
| 310 | 310 | |
|---|
| 311 | | def fail( self, message, state=None, exception=False ): |
|---|
| | 311 | def fail( self, message, exception=False ): |
|---|
| 312 | 312 | """ |
|---|
| 313 | 313 | Indicate job failure by setting state and message on all output |
|---|
| … | … | |
| 317 | 317 | job.refresh() |
|---|
| 318 | 318 | # if the job was deleted, don't fail it |
|---|
| 319 | | if not job.state == job.states.DELETED: |
|---|
| | 319 | if not job.state == model.Job.states.DELETED: |
|---|
| 320 | 320 | for dataset_assoc in job.output_datasets: |
|---|
| 321 | 321 | dataset = dataset_assoc.dataset |
|---|
| … | … | |
| 326 | 326 | dataset.set_size() |
|---|
| 327 | 327 | dataset.flush() |
|---|
| 328 | | if state is not None: |
|---|
| 329 | | job.state = state |
|---|
| 330 | | else: |
|---|
| 331 | | job.state = model.Job.states.ERROR |
|---|
| | 328 | job.state = model.Job.states.ERROR |
|---|
| 332 | 329 | job.command_line = self.command_line |
|---|
| 333 | 330 | job.info = message |
|---|
| … | … | |
| 386 | 383 | # don't run jobs for which the input dataset was deleted |
|---|
| 387 | 384 | if idata.deleted: |
|---|
| 388 | | msg = "input data %d was deleted before this job started" % idata.hid |
|---|
| 389 | | self.fail( msg, state=JOB_INPUT_DELETED ) |
|---|
| | 385 | self.fail( "input data %d was deleted before this job started" % idata.hid ) |
|---|
| 390 | 386 | return JOB_INPUT_DELETED |
|---|
| 391 | 387 | # an error in the input data causes us to bail immediately |
|---|
| 392 | 388 | elif idata.state == idata.states.ERROR: |
|---|
| 393 | | msg = "input data %d is in an error state" % idata.hid |
|---|
| 394 | | self.fail( msg, state=JOB_INPUT_ERROR ) |
|---|
| | 389 | self.fail( "input data %d is in an error state" % idata.hid ) |
|---|
| 395 | 390 | return JOB_INPUT_ERROR |
|---|
| 396 | 391 | elif idata.state != idata.states.OK: |
|---|
| … | … | |
| 579 | 574 | try: |
|---|
| 580 | 575 | self.monitor_step() |
|---|
| 581 | | except: |
|---|
| 582 | | log.exception( "Exception in monitor_step" ) |
|---|
| | 576 | except Exception, e: |
|---|
| | 577 | log.exception( "Exception in monitor_step: %s" % str( e ) ) |
|---|
| 583 | 578 | # Sleep |
|---|
| 584 | 579 | self.sleeper.sleep( 1 ) |
|---|