Mercurial > repos > yufei-luo > s_mart
comparison commons/core/launcher/test/expFiles/expJobScriptSQLiteWithFilesCopyTemplate.py @ 6:769e306b7933
Change the repository level.
author | yufei-luo |
---|---|
date | Fri, 18 Jan 2013 04:54:14 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5:ea3082881bf8 | 6:769e306b7933 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 import os | |
4 import sys | |
5 import time | |
6 import shutil | |
7 from commons.core.checker.RepetException import RepetException | |
8 from commons.core.sql.TableJobAdaptator import TableJobAdaptator | |
9 from commons.core.sql.DbMySql import DbMySql | |
10 from commons.core.sql.DbSQLite import DbSQLite | |
11 from commons.core.sql.Job import Job | |
12 | |
13 try: | |
14 newDir = None | |
15 print os.uname() | |
16 beginTime = time.time() | |
17 print 'beginTime=%f' % beginTime | |
18 print "work in dir '/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch'" | |
19 sys.stdout.flush() | |
20 if not os.path.exists("/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch"): | |
21 raise IOError("ERROR: temporary directory '/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch' doesn't exist") | |
22 | |
23 fileSize = 0 | |
24 if not os.path.exists("groupid"): | |
25 fileSize = 0.500000 | |
26 freeGigaNeededInTmpDir = float(1 + fileSize) | |
27 freeSpace = os.statvfs("/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch") | |
28 if ((freeSpace.f_bavail * freeSpace.f_frsize) / 1073741824.0 < freeGigaNeededInTmpDir): | |
29 raise RepetException("ERROR: less than %.2fG of input file in '/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch'" % freeGigaNeededInTmpDir) | |
30 | |
31 os.chdir("/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch") | |
32 if not os.path.exists("groupid"): | |
33 try: | |
34 os.mkdir("groupid") | |
35 except OSError, e : | |
36 if e.args[0] != 17: | |
37 raise RepetException("ERROR: can't create 'groupid'") | |
38 os.chdir("groupid") | |
39 os.system("touch bank.fa") | |
40 else: | |
41 os.chdir("groupid") | |
42 | |
43 newDir = "groupid_job1_20110505-105353" | |
44 if os.path.exists(newDir): | |
45 shutil.rmtree(newDir) | |
46 os.mkdir(newDir) | |
47 os.chdir(newDir) | |
48 | |
49 queue = "main.q" | |
50 iJob = Job("jobs", jobname = "job1", groupid = "groupid", queue = queue, node = os.getenv("HOSTNAME")) | |
51 iDb = DbSQLite("/home/user/workspace/repet_pipe/commons/core/launcher/test/jobs") | |
52 iTJA = TableJobAdaptator(iDb, "jobs") | |
53 print "current status: %s" % iTJA.getJobStatus(iJob) | |
54 iTJA.changeJobStatus(iJob, "running") | |
55 print "updated status: %s" % iTJA.getJobStatus(iJob) | |
56 iDb.close() | |
57 | |
58 log = os.system("touch dummyFile1") | |
59 if log != 0: | |
60 raise RepetException("ERROR: job returned %i" % log) | |
61 else: | |
62 print "job finished successfully" | |
63 shutil.move("dummyFile1", "/home/user/workspace/repet_pipe/commons/core/launcher/test") | |
64 | |
65 os.chdir("..") | |
66 shutil.rmtree(newDir) | |
67 | |
68 iDb = DbSQLite("/home/user/workspace/repet_pipe/commons/core/launcher/test/jobs") | |
69 iTJA = TableJobAdaptator(iDb, "jobs") | |
70 print "current status: %s" % iTJA.getJobStatus(iJob) | |
71 iTJA.changeJobStatus(iJob, "finished") | |
72 print "updated status: %s" % iTJA.getJobStatus(iJob) | |
73 iDb.close() | |
74 | |
75 endTime = time.time() | |
76 print 'endTime=%f' % endTime | |
77 print 'executionTime=%f' % (endTime - beginTime) | |
78 print os.uname() | |
79 | |
80 except IOError, e : | |
81 print e | |
82 queue = "main.q" | |
83 iJob = Job("jobs", jobname = "job1", groupid = "groupid", queue = queue, node = os.getenv("HOSTNAME")) | |
84 iDb = DbSQLite("/home/user/workspace/repet_pipe/commons/core/launcher/test/jobs") | |
85 iTJA = TableJobAdaptator(iDb, "jobs") | |
86 print "current status: %s" % iTJA.getJobStatus(iJob) | |
87 iTJA.changeJobStatus(iJob, "error") | |
88 print "updated status: %s" % iTJA.getJobStatus(iJob) | |
89 iDb.close() | |
90 sys.exit(1) | |
91 | |
92 except Exception, e : | |
93 print "tmpDir is : /home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch" | |
94 print "cDir is : /home/user/workspace/repet_pipe/commons/core/launcher/test/" | |
95 print e | |
96 if newDir != None and os.path.exists("../%s" % newDir) and not os.path.exists("/home/user/workspace/repet_pipe/commons/core/launcher/test//%s" % newDir): | |
97 os.chdir("..") | |
98 shutil.move(newDir, "/home/user/workspace/repet_pipe/commons/core/launcher/test//%s" % newDir) | |
99 queue = "main.q" | |
100 iJob = Job("jobs", jobname = "job1", groupid = "groupid", queue = queue, node = os.getenv("HOSTNAME")) | |
101 iDb = DbSQLite("/home/user/workspace/repet_pipe/commons/core/launcher/test/jobs") | |
102 iTJA = TableJobAdaptator(iDb, "jobs") | |
103 print "current status: %s" % iTJA.getJobStatus(iJob) | |
104 iTJA.changeJobStatus(iJob, "error") | |
105 print "updated status: %s" % iTJA.getJobStatus(iJob) | |
106 iDb.close() | |
107 sys.exit(1) |