-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcrawldefs.py
More file actions
60 lines (52 loc) · 1.44 KB
/
crawldefs.py
File metadata and controls
60 lines (52 loc) · 1.44 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import os
import numpy as np
from identity import *
class Job:
def __init__(self,header,args,resource):
self.args = args.split()
self.pid = self.args[0]
self.model = self.args[1]
self.name = self.args[2]
self.stat = self.args[3]
self.args = self.args[4:]
self.ncores = int(self.args[0])
self.queue = self.args[1]
self.fields = header.split()[5:]
self.top = os.getcwd()
self.parameters = {}
n=0
for n in range(0,len(self.fields)):
self.parameters[self.fields[n]] = self.args[n]
self.home = resource
self.jobname = self.name+".cl"
def getID(self):
os.system("qstat -u "+USER+" > cjobs.tmp")
jf = open("cjobs.tmp","r")
jlist = jf.read().split('\n')[5:-1]
jf.close()
os.system("rm cjobs.tmp")
tag = None
if len(jlist)>0:
for j in jlist:
job = j.split()
name = job[3]
if name==self.jobname:
tag = job[0]
break
self.tag = tag
return tag
def write(self):
jf = open(self.model+"/job"+str(self.home)+"/job.crwl","w")
try:
jt = self.pid+'\n'+' '.join(self.fields)+'\n'+' '.join(self.args)+'\n'+self.name+'\n'+self.tag
except:
jt = self.pid+'\n'+' '.join(self.fields)+'\n'+' '.join(self.args)+'\n'+self.name+'\nFAILED'
jf.write(jt)
jf.close()
def kill(self):
tag = self.getID()
if tag:
os.system("qdel "+tag)
return 1
else:
return 0