Exemple #1
0
def build_notebook(project_id):
    project = get_valid_project(project_id)
    if not project or not project.notebook:
        return None

    job = project.notebook

    # Update job status to show that its building docker image
    job.set_status(JobLifeCycle.BUILDING, message='Building container')

    # Building the docker image
    try:
        status = notebooks_builder.build_notebook_job(project=project,
                                                      job=project.notebook)
    except DockerException as e:
        logger.warning('Failed to build notebook %s', e)
        job.set_status(JobLifeCycle.FAILED,
                       message='Failed to build image for notebook.'.format(
                           project.unique_name))
        return
    except Repo.DoesNotExist:
        logger.warning('No code was found for this project')
        job.set_status(JobLifeCycle.FAILED,
                       message='Failed to build image for notebook.'.format(
                           project.unique_name))
        return

    if not status:
        return

    # Now we can start the notebook
    start_notebook.delay(project_id=project_id)
Exemple #2
0
def build_notebook(project_id):
    project = get_valid_project(project_id)
    if not project or not project.notebook:
        return None

    # docker image
    try:
        status = notebooks_builder.build_notebook_job(project=project,
                                                      job=project.notebook)
    except DockerException:
        return
    except Repo.DoesNotExist:
        logger.warning('No code was found for this project')
        return

    if not status:
        return

    # Now we can start the notebook
    start_notebook.delay(project_id=project_id)
Exemple #3
0
def build_project_notebook(project_id):
    project = get_valid_project(project_id)
    if not project or not project.notebook:
        return None

    notebook_job = project.notebook

    # Update job status to show that its building docker image
    notebook_job.set_status(JobLifeCycle.BUILDING, message='Building container')

    # Building the docker image
    try:
        status = notebooks_builder.build_notebook_job(project=project, job=project.notebook)
    except DockerException as e:
        _logger.warning('Failed to build notebook %s', e)
        notebook_job.set_status(
            JobLifeCycle.FAILED,
            message='Failed to build image for notebook.')
        return
    except Repo.DoesNotExist:
        _logger.warning('No code was found for this project')
        notebook_job.set_status(
            JobLifeCycle.FAILED,
            message='Failed to build image for notebook.')
        return
    except Exception as e:  # Other exceptions
        _logger.warning('Failed to build notebook %s', e)
        notebook_job.set_status(JobLifeCycle.FAILED,
                                message='Failed to build image for notebook.')
        return

    if not status:
        return

    # Now we can start the notebook
    celery_app.send_task(
        SchedulerCeleryTasks.PROJECTS_NOTEBOOK_START,
        kwargs={'notebook_job_id': notebook_job.id})
Exemple #4
0
def build_project_notebook(project_id):
    project = get_valid_project(project_id)
    if not project or not project.notebook:
        return None

    job = project.notebook

    # Update job status to show that its building docker image
    job.set_status(JobLifeCycle.BUILDING, message='Building container')

    # Building the docker image
    try:
        status = notebooks_builder.build_notebook_job(project=project, job=project.notebook)
    except DockerException as e:
        _logger.warning('Failed to build notebook %s', e)
        job.set_status(
            JobLifeCycle.FAILED,
            message='Failed to build image for notebook.')
        return
    except Repo.DoesNotExist:
        _logger.warning('No code was found for this project')
        job.set_status(
            JobLifeCycle.FAILED,
            message='Failed to build image for notebook.')
        return
    except Exception as e:  # Other exceptions
        _logger.warning('Failed to build notebook %s', e)
        job.set_status(JobLifeCycle.FAILED,
                       message='Failed to build image for notebook.')
        return

    if not status:
        return

    # Now we can start the notebook
    celery_app.send_task(
        SchedulerCeleryTasks.PROJECTS_NOTEBOOK_START,
        kwargs={'project_id': project_id})