示例#1
0
def process_experiment_jobs_logs(experiment, temp=True):
    k8s_manager = K8SManager(namespace=conf.get('K8S_NAMESPACE'),
                             in_cluster=True)
    for experiment_job in experiment.jobs.all():
        process_experiment_job_logs(experiment_job=experiment_job,
                                    temp=temp,
                                    k8s_manager=k8s_manager)
示例#2
0
def logs_collect_experiment_job(experiment_job_uuid):
    try:
        experiment_job = ExperimentJob.objects.filter(
            uuid=experiment_job_uuid).select_related('experiment').get()
        experiment = experiment_job.experiment
    except (ExperimentJob.DoesNotExist, Experiment.DoesNotExist):
        return

    if experiment.jobs.count() > 1:
        process_experiment_job_logs(experiment_job=experiment_job, temp=False)
    else:
        process_experiment_logs(experiment=experiment, temp=False)
示例#3
0
def get_experiment_job_logs_path(experiment: Experiment, job: ExperimentJob) -> Optional[str]:
    if not job:
        return None
    job_name = job.unique_name
    if experiment.is_done:
        log_path = stores.get_experiment_job_logs_path(experiment_job_name=job_name, temp=False)
        logs_path = archive_logs_file(
            log_path=log_path,
            namepath=job_name)
    elif experiment.is_managed:
        process_experiment_job_logs(experiment_job=job, temp=True)
        logs_path = stores.get_experiment_job_logs_path(experiment_job_name=job_name, temp=True)
    else:
        logs_path = None

    return logs_path
示例#4
0
def process_experiment_jobs_logs(experiment: 'Experiment', temp: bool = True) -> None:
    k8s_manager = K8SManager(namespace=conf.get(K8S_NAMESPACE), in_cluster=True)
    for experiment_job in experiment.jobs.all():
        process_experiment_job_logs(experiment_job=experiment_job,
                                    temp=temp,
                                    k8s_manager=k8s_manager)