~cprov/uci-engine/transient-check

« back to all changes in this revision

Viewing changes to ci-utils/ci_utils/amqp_worker.py

  • Committer: Ubuntu CI Bot
  • Author(s): Joe Talbott
  • Date: 2015-01-09 14:24:43 UTC
  • mfrom: (915.3.2 split_infra_failures)
  • Revision ID: ubuntu_ci_bot-20150109142443-8y3ybi94bbngyvns
amqp_worker - Treat DataStoreExceptions as infrastructure failures. [r=Paul Larson, Francis Ginther, Vincent Ladeuil, Larry E Works]

Show diffs side-by-side

added added

removed removed

Lines of Context:
213
213
        return t
214
214
 
215
215
    def _handle_exception(self, e, store, trigger, logger, ret):
 
216
        error = False
216
217
        try:
217
218
            err = 'Unexpected exception occurred'
218
219
            if isinstance(e, KeyboardInterrupt):
219
220
                err = 'Worker terminated'
220
221
            elif isinstance(e, subprocess.CalledProcessError) and logger:
221
222
                err = 'error running {}: {}'.format(e.cmd, e.output)
 
223
                error = True
 
224
            # All exceptions except those that get whitelisted here are
 
225
            # considered infrastructure failures.
 
226
            else:
 
227
                error = True
222
228
            ret['error_message'] = err
223
229
            ret['traceback'] = traceback.format_exc()
224
230
            if logger:
226
232
            self._store_worker_log(store, logger, ret)
227
233
        finally:
228
234
            if trigger:
229
 
                amqp_utils.progress_failed(trigger, ret)
 
235
                if error:
 
236
                    amqp_utils.progress_errored(trigger, ret)
 
237
                else:
 
238
                    amqp_utils.progress_failed(trigger, ret)
230
239
 
231
240
    def _on_message(self, msg):
232
241
        log.info('on_message: %s', msg.body)