コード例 #1
0
def _find_all_courses(**kwargs):
    # get all courses using task, saving to a temp file
    with tempfile.NamedTemporaryFile() as temp:
        with logging_streams_on_failure('Find All Courses') as (output_file,
                                                                error_file):
            try:
                FindAllCoursesTask.run(temp.name,
                                       stderr_file=error_file,
                                       stdout_file=output_file,
                                       **kwargs)
            except:  # pylint: disable=bare-except
                courses = []
                log.warning('Failed to retrieve list of all courses.',
                            exc_info=True)
            else:
                temp.seek(0)
                lines = (line.strip() for line in temp.readlines())
                courses = [line.decode('utf-8') for line in lines if line]
                log.debug("Found courses: %s", courses)
    return courses
コード例 #2
0
def _run_task(task, **kwargs):
    log.info("Running task %s", task.__name__)
    filename = task.get_filename(**kwargs)
    try:
        with collect_elapsed_time(task, **kwargs), \
             logging_streams_on_failure(task.__name__) as (output_file, error_file):
            task.run(filename,
                     stderr_file=error_file,
                     stdout_file=output_file,
                     **kwargs)
            log.info('Saving task results to %s', filename)
            return filename
    except FatalTaskError:
        log.exception('Task %s failed fatally to write to %s', task.__name__,
                      filename)
        raise
    except Exception:  # pylint: disable=broad-except
        failed_filename = task.write_failed_file(**kwargs)
        log.exception('Task %s failed fatally, writing failure file %s',
                      task.__name__, failed_filename)
        return failed_filename