def projects_notebook_start(notebook_job_id): notebook_job = get_valid_notebook(notebook_job_id=notebook_job_id) if not notebook_job: return None if not JobLifeCycle.can_transition(status_from=notebook_job.last_status, status_to=JobLifeCycle.SCHEDULED): _logger.info('Notebook `%s` cannot transition from `%s` to `%s`.', notebook_job.unique_name, notebook_job.last_status, JobLifeCycle.SCHEDULED) notebook_scheduler.start_notebook(notebook_job)
def projects_notebook_start(notebook_job_id): notebook_job = get_valid_notebook(notebook_job_id=notebook_job_id) if not notebook_job: _logger.warning('Notebook %s does not exist anymore.', notebook_job_id) return None if not JobLifeCycle.can_transition(status_from=notebook_job.last_status, status_to=JobLifeCycle.SCHEDULED): _logger.info('Notebook `%s` cannot transition from `%s` to `%s`.', notebook_job.unique_name, notebook_job.last_status, JobLifeCycle.SCHEDULED) notebook_scheduler.start_notebook(notebook_job)
def projects_notebook_start(project_id): project = get_valid_project(project_id=project_id) if not project or not project.notebook: _logger.warning('Project does not have a notebook.') return None if project.notebook.last_status == JobLifeCycle.RUNNING: _logger.warning('Tensorboard is already running.') return None try: image_name, image_tag = get_notebook_image_info(project=project, job=project.notebook) except ValueError as e: _logger.warning('Could not start the notebook, %s', e) return job_docker_image = '{}:{}'.format(image_name, image_tag) _logger.info('Start notebook with built image `%s`', job_docker_image) notebook_scheduler.start_notebook(project.notebook, image=job_docker_image)