Last active
April 5, 2019 16:46
-
-
Save b0noI/0b7da37bb63ebfe984c0699bebb81603 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| if lspci -vnn | grep NVIDIA > /dev/null 2>&1; then | |
| # Nvidia card found, need to check if driver is up | |
| if ! nvidia-smi > /dev/null 2>&1; then | |
| echo "Installing driver" | |
| /opt/deeplearning/install-driver.sh | |
| fi | |
| fi | |
| readonly INPUT_NOTEBOOK_GCS_FILE=$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/input_notebook -H "Metadata-Flavor: Google") | |
| readonly OUTPUT_NOTEBOOK_GCS_FOLDER=$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/output_notebook -H "Metadata-Flavor: Google") | |
| readonly PARAMETERS_GCS_FILE=$(curl --fail http://metadata.google.internal/computeMetadata/v1/instance/attributes/parameters_file -H "Metadata-Flavor: Google") | |
| readonly TEMPORARY_NOTEBOOK_FOLDER="/tmp/notebook" | |
| mkdir "${TEMPORARY_NOTEBOOK_FOLDER}" | |
| readonly OUTPUT_NOTEBOOK_NAME=$(basename ${INPUT_NOTEBOOK_GCS_FILE}) | |
| readonly OUTPUT_NOTEBOOK_CLEAN_NAME="${OUTPUT_NOTEBOOK_NAME%.ipynb}-clean" | |
| readonly TEMPORARY_NOTEBOOK_PATH="${TEMPORARY_NOTEBOOK_FOLDER}/${OUTPUT_NOTEBOOK_NAME}" | |
| PAPERMILL_EXIT_CODE=0 | |
| if [[ -z "${PARAMETERS_GCS_FILE}" ]]; then | |
| echo "No input parameters present" | |
| papermill "${INPUT_NOTEBOOK_GCS_FILE}" "${TEMPORARY_NOTEBOOK_PATH}" --log-output | |
| else | |
| echo "input parameters present" | |
| echo "GCS file with parameters: ${PARAMETERS_GCS_FILE}" | |
| gsutil cp "${PARAMETERS_GCS_FILE}" params.yaml | |
| papermill "${INPUT_NOTEBOOK_GCS_FILE}" "${TEMPORARY_NOTEBOOK_PATH}" -f params.yaml --log-output | |
| fi | |
| PAPERMILL_EXIT_CODE=$? | |
| echo "Papermill exit code is: ${PAPERMILL_EXIT_CODE}" | |
| if [[ "${PAPERMILL_EXIT_CODE}" -ne 0 ]]; then | |
| echo "Unable to execute notebook. Exit code: ${PAPERMILL_EXIT_CODE}" | |
| touch "${TEMPORARY_NOTEBOOK_FOLDER}/FAILED" | |
| else | |
| cd "${TEMPORARY_NOTEBOOK_FOLDER}" | |
| jupyter nbconvert "${TEMPORARY_NOTEBOOK_PATH}" | |
| jupyter nbconvert "${TEMPORARY_NOTEBOOK_PATH}" --output "${OUTPUT_NOTEBOOK_CLEAN_NAME}" --TemplateExporter.exclude_input=True | |
| fi | |
| gsutil rsync -r "${TEMPORARY_NOTEBOOK_FOLDER}" "${OUTPUT_NOTEBOOK_GCS_FOLDER}" | |
| readonly INSTANCE_NAME=$(curl http://metadata.google.internal/computeMetadata/v1/instance/name -H "Metadata-Flavor: Google") | |
| INSTANCE_ZONE="/"$(curl http://metadata.google.internal/computeMetadata/v1/instance/zone -H "Metadata-Flavor: Google") | |
| INSTANCE_ZONE="${INSTANCE_ZONE##/*/}" | |
| readonly INSTANCE_PROJECT_NAME=$(curl http://metadata.google.internal/computeMetadata/v1/project/project-id -H "Metadata-Flavor: Google") | |
| gcloud --quiet compute instances delete "${INSTANCE_NAME}" --zone "${INSTANCE_ZONE}" --project "${INSTANCE_PROJECT_NAME}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment