forked from climate-analyser-team/climate-analyser-backend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jobScheduler.py
44 lines (36 loc) · 1.4 KB
/
jobScheduler.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import drmaa
import os
import time
import zoo
def resultOut(jobid,serverAddr):
filename = jobid + '.nc'
outputLink = "[opendap]"
outputLink += (serverAddr + "/thredds/catalog/datafiles/outputs/catalog.html?dataset=climateAnalyserStorage/outputs/" + filename)
outputLink += "[/opendap]"
outputLink += "[ncfile]"
outputLink += (serverAddr + "/thredds/fileServer/datafiles/outputs/" + filename)
outputLink += "[/ncfile]"
outputLink += "[wms]"
outputLink += (serverAddr + "/thredds/wms/datafiles/outputs/" + filename + "?service=WMS&version=1.3.0&request=GetCapabilities")
outputLink += "[/wms]"
return outputLink
def jobScheduler(conf,inputs,outputs):
serverFile = open('ThreddServer')
serverAddr = serverFile.read().strip()
urls = inputs["urls"]["value"]
jobType = inputs["selection"]["value"]
jobId = inputs["jobid"]["value"]
sess = drmaa.Session()
sess.initialize()
# 'Creating job template'
jt = sess.createJobTemplate()
jt.remoteCommand = 'python Operation2.py'
jt.args = [urls,jobType,jobId]
jt.jobName = jobId
jid = sess.runJob(jt)
#'Your job has been submitted with id ' + jobid
outputs["Status"]["value"] = sess.jobStatus(jid)
sess.deleteJobTemplate(jt)
sess.exit()
outputs["Result"]["value"]=(resultOut(jobId,serverAddr))
return zoo.SERVICE_SUCCEEDED