def extract_text_log_artifacts(project, log_url, job_guid): """Generate a summary artifact for the raw text log.""" # parse a log given its url artifact_bc = ArtifactBuilderCollection(log_url) artifact_bc.parse() artifact_list = [] for name, artifact in artifact_bc.artifacts.items(): if name == 'Job Info': for detail in artifact['job_details']: if ('title' in detail and detail['title'] == 'artifact uploaded' and detail['value'].endswith('_errorsummary.log')): # using .send_task to avoid an import loop. celery_app.send_task('store-error-summary', [project, detail['url'], job_guid], routing_key='store_error_summary') artifact_list.append({ "job_guid": job_guid, "name": name, "type": 'json', "blob": json.dumps(artifact) }) artifact_list.extend(get_error_summary_artifacts(artifact_list)) return artifact_list
def autoclassify(project, job_guid): newrelic.agent.add_custom_parameter("project", project) newrelic.agent.add_custom_parameter("job_guid", job_guid) logger.info('Running autoclassify') call_command('autoclassify', project, job_guid) celery_app.send_task('detect-intermittents', [project, job_guid], routing_key='detect_intermittents')
def autoclassify(project, job_guid): try: logger.info('Running autoclassify') call_command('autoclassify', project, job_guid) celery_app.send_task('detect-intermittents', [project, job_guid], routing_key='detect_intermittents') except Exception as e: autoclassify.retry(exc=e, countdown=(1 + autoclassify.request.retries) * 60)
def autoclassify(project, job_guid): try: logger.info('Running autoclassify') call_command('autoclassify', job_guid, project) celery_app.send_task('detect-intermittents', [project, job_guid], routing_key='detect_intermittents') except Exception as e: autoclassify.retry(exc=e, countdown=(1 + autoclassify.request.retries) * 60)
def autoclassify(job_id): newrelic.agent.add_custom_parameter("job_id", job_id) logger.info('Running autoclassify') job = Job.objects.select_related("repository").get(id=job_id) match_errors(job) if settings.DETECT_INTERMITTENTS: celery_app.send_task('detect-intermittents', [job_id], routing_key='detect_intermittents')
def store_error_summary(project, job_log_url, job_guid): """This task is a wrapper for the store_error_summary command.""" try: logger.info('Running store_error_summary') call_command('store_error_summary', job_log_url, job_guid, project) celery_app.send_task('autoclassify', [project, job_guid], routing_key='autoclassify') except Exception, e: store_error_summary.retry(exc=e, countdown=(1 + store_error_summary.request.retries) * 60)
def autoclassify(project, job_guid): newrelic.agent.add_custom_parameter("project", project) newrelic.agent.add_custom_parameter("job_guid", job_guid) try: logger.info('Running autoclassify') call_command('autoclassify', project, job_guid) celery_app.send_task('detect-intermittents', [project, job_guid], routing_key='detect_intermittents') except Exception as e: autoclassify.retry(exc=e, countdown=(1 + autoclassify.request.retries) * 60)