Commit 257a7389 authored by Sofiane Bendoukha's avatar Sofiane Bendoukha
Browse files

Added first support for singularity.

parent 6c86102e
......@@ -93,6 +93,11 @@ SJ_INCFILE=""
# where jupyter is running need a shared home file system.
readonly SJ_FRONTEND_HOST="mistralpp.dkrz.de"
# Image
#
# start the jupyter notebook in a singularity container from a given
# image name.
SJ_IMAGE=""
function clean_up () {
trap - ERR EXIT
......@@ -136,13 +141,14 @@ Available values for OPTION include:
-p partition run job on partition
-t time job runtime
-u username use username for login
-s image singularity image
EOF
}
function parse_options () {
local option
while getopts 'A:c:di:n:p:t:u:' option; do
while getopts 'A:c:di:n:p:t:u:s:' option; do
case ${option} in
A) SJ_ACCTCODE="$OPTARG"
;;
......@@ -160,6 +166,8 @@ function parse_options () {
;;
u) SJ_USERNAME="$OPTARG"
;;
s) SJ_IMAGE="$OPTARG"
;;
?) usage
exit 1
;;
......@@ -173,6 +181,7 @@ function parse_options () {
readonly SJ_PARTITION
readonly SJ_RUNTIME
readonly SJ_USERNAME
readonly SJ_IMAGE
}
function ssh_frontend () {
......@@ -206,16 +215,19 @@ function which_jupyter() {
local which
which="$(source_incfile "which jupyter")"
ssh_frontend "/bin/bash -lc \"${which}\""
}
}
function assemble_commandline () {
local logfile="$1"
local commandline="jupyter ${SJ_COMMAND} --no-browser 2>> ${logfile}"
local commandline="jupyter ${SJ_COMMAND} --no-browser 2>> ${logfile}"
# If we are not running a job, we have to perform our own scheduling
if [[ -z ${SJ_ACCTCODE} ]]; then
commandline="nohup ${commandline} > /dev/null & echo \$!"
fi
if [[ -n ${SJ_IMAGE} ]]; then
commandline="singularity exec ${SJ_IMAGE} ${commandline}"
fi
commandline="$(source_incfile "${commandline}")"
echo "${commandline}"
}
......@@ -342,6 +354,7 @@ function main () {
trap clean_up INT QUIT TERM ERR EXIT
echo "Establishing ssh master connection."
set -x
# Set up control master for connection sharing
mkdir -p "${HOME}/.ssh"
ssh_socket_dir="$(mktemp -d "${HOME}/.ssh/socket.XXXXX")"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment