- 前提
=======
事前に下記が実施されていることを前提とします。設定済みであれば飛ばしてOKです。
- 事前準備がなされている
- 以下で使用する変数
fileId
が設定されている
- ジョブの作成
================
1.1 スクリプトの作成
以下のスクリプトを "${script}/rescale-createJob.sh" という名前で保存します。
rescale-uploadfile.shの作成
vi ${script}/rescale-createJob.sh
source
#!/bin/sh
filename=$1
platform='https://platform.rescale.jp/'
token=${RESCALE_API_TOKEN}
_create_job()
{
rescaleJson=$1
echo $rescaleJson | jq . > _jobanalyses.json 2>/dev/null
curl -s -X POST \
-H "Authorization: Token ${token}" \
-H "Content-Type: application/json" \
${platform}/api/v2/jobs/ \
-d "${rescaleJson}"
}
_my_jobanalyses()
{
cat << EOF
{
"name": "Hellow world",
"jobanalyses": [
{
"useMpi": "true",
"command": "./sample.sh",
"analysis": {
"code": "user_included_platformmpi",
"name": "Bring Your Own MPI Software",
"version": "platformmpi-9.1.4"
},
"hardware": {
"coresPerSlot": 2,
"slots": 1,
"coreType": "hpc-plus"
}
}
],
"isLowPriority": "true"
}
EOF
}
_create_rescaleJson()
{
if [ $# -gt 0 ];then
buff=$(_my_jobanalyses | jq '.jobanalyses[0] |= .+ {"inputFiles": []}')
for filename in $*
do
buff=$(echo ${buff} | jq ".jobanalyses[0].inputFiles |= .+[{"id": \"${filename}\"}]")
done
echo ${buff}
elif [ $# -eq 0 ];then
_my_jobanalyses
else
exit 1
fi
}
#
# Rescaleに送るためのJSONを作る
# 普段ブラウザ上で行う作業をJSONで表現される
#
jobAnalysesJson=$(_create_rescaleJson $*)
#
# バラバラにならないように、" " で囲むこと。
# スペースが入っているため、引数1で全てを送る必要がある
r=$(_create_job "${jobAnalysesJson}")
echo $r
実行権限付与
chmod +x ${script}/rescale-createJob.sh
1.2 実行例: ジョブを生成しjobIdを取得する
job_idとは、ブラウザでアクセスした時、そのURLが https://platform.rescale.jp/jobs/htgchb/runs/1/results/ JOB_ID="htgchb"
であれば、"htgchb" がジョブIDに相当します
変数の確認
cat << ETX
RESCALE_API_TOKEN: ${RESCALE_API_TOKEN}
fileId: ${fileId}
ETX
createJob
createJson=$(rescale-createJob.sh ${fileId})
jobId=$(echo ${createJson} | jq -r .id) && echo ${jobId}
zDQAo