Ejemplo n.º 1
0
def pipeline_raw_api(pipeline_id):
    if not pipeline_id.startswith('./'):
        pipeline_id = './' + pipeline_id
    pipeline_status = status.get_status(pipeline_id)
    if pipeline_status is None:
        abort(404)
    return jsonify(pipeline_status)
Ejemplo n.º 2
0
def calculate_dirty(spec):
    pipeline_status = status.get_status(spec.pipeline_id) or {}
    dirty = pipeline_status.get('cache_hash', '') != spec.cache_hash
    dirty = dirty or pipeline_status.get('state') != 'SUCCEEDED'
    dirty = dirty and len(spec.errors) == 0

    spec.dirty = dirty
Ejemplo n.º 3
0
def execute_pipeline_task(pipeline_id, pipeline_details, pipeline_cwd, trigger,
                          queue_time):

    last_queue_time = status.get_status(pipeline_id).get('queued')
    if queue_time in {0, last_queue_time}:
        spec = PipelineSpec(pipeline_id=pipeline_id,
                            pipeline_details=pipeline_details,
                            path=pipeline_cwd)
        success, _ = \
            execute_pipeline(spec,
                             trigger,
                             False)

        if success:
            trigger_dirties(pipeline_id, trigger)
def execute_pipeline_task(pipeline_id, pipeline_details, pipeline_cwd, trigger,
                          queue_time):

    last_queue_time = status.get_status(pipeline_id).get('queued')
    if queue_time in {0, last_queue_time}:
        spec = PipelineSpec(pipeline_id=pipeline_id,
                            pipeline_details=pipeline_details,
                            path=pipeline_cwd)
        success, _, _ = \
            execute_pipeline(spec,
                             trigger,
                             False)

        if success:
            update_pipelines.delay('complete', pipeline_id, trigger)
            update_pipelines.delay('update', None, None)
Ejemplo n.º 5
0
def pipeline_api(field, pipeline_id):
    fields = {'log': 'reason', 'pipeline': 'pipeline', 'source': 'source'}
    field = fields.get(field)
    if not pipeline_id.startswith('./'):
        pipeline_id = './' + pipeline_id
    pipeline_status = status.get_status(pipeline_id)
    if pipeline_status is None or field is None:
        abort(404)
    ret = pipeline_status[field]
    if ret is not None:
        if field != 'reason':
            ret = yamlize(ret)
    else:
        ret = ''
    ret = ret.split('\n')
    ret = {'text': ret}
    return jsonify(ret)
Ejemplo n.º 6
0
def badge(pipeline_id):
    if not pipeline_id.startswith('./'):
        pipeline_id = './' + pipeline_id
    pipeline_status = status.get_status(pipeline_id)
    if pipeline_status is None:
        abort(404)
    status_text = pipeline_status.get('message')
    success = pipeline_status.get('success')
    if success is True:
        record_count = pipeline_status.get('stats', {}).get('total_row_count')
        if record_count is not None:
            status_text += ' (%d records)' % record_count
        status_color = 'brightgreen'
    elif success is False:
        status_color = 'red'
    else:
        status_color = 'lightgray'
    return redirect('https://img.shields.io/badge/{}-{}-{}.svg'.format(
        'pipeline', status_text, status_color))