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)
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
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)
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)
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))