Mercurial > repos > yufei-luo > s_mart
diff smart_toolShed/commons/core/launcher/test/expFiles/expJobScriptWithFilesCopyTemplate.py @ 0:e0f8dcca02ed
Uploaded S-MART tool. A toolbox manages RNA-Seq and ChIP-Seq data.
author | yufei-luo |
---|---|
date | Thu, 17 Jan 2013 10:52:14 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smart_toolShed/commons/core/launcher/test/expFiles/expJobScriptWithFilesCopyTemplate.py Thu Jan 17 10:52:14 2013 -0500 @@ -0,0 +1,109 @@ +#!/usr/bin/env python + +import os +import sys +import time +import shutil +from commons.core.checker.RepetException import RepetException +from commons.core.sql.TableJobAdaptator import TableJobAdaptator +from commons.core.sql.DbFactory import DbFactory +from commons.core.sql.Job import Job + +try: + newDir = None + print os.uname() + beginTime = time.time() + print 'beginTime=%f' % beginTime + print "work in dir '/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch'" + sys.stdout.flush() + if not os.path.exists("/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch"): + raise IOError("ERROR: temporary directory '/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch' doesn't exist") + + fileSize = 0 + if not os.path.exists("groupid"): + fileSize = 0.500000 + freeGigaNeededInTmpDir = float(1 + fileSize) + freeSpace = os.statvfs("/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch") + if ((freeSpace.f_bavail * freeSpace.f_frsize) / 1073741824.0 < freeGigaNeededInTmpDir): + raise RepetException("ERROR: less than %.2fG of input file in '/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch'" % freeGigaNeededInTmpDir) + + os.chdir("/home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch") + if not os.path.exists("groupid"): + try: + os.mkdir("groupid") + except OSError, e : + if e.args[0] != 17: + raise RepetException("ERROR: can't create 'groupid'") + os.chdir("groupid") + os.system("touch bank.fa") + else: + os.chdir("groupid") + + newDir = "groupid_job1_20110505-105353" + if os.path.exists(newDir): + shutil.rmtree(newDir) + os.mkdir(newDir) + os.chdir(newDir) + + iJob = Job(jobname = "job1", groupid = "groupid", launcherFile = "ClusterLauncher", node = os.getenv("HOSTNAME")) + iDb = DbFactory.createInstance() + iTJA = TableJobAdaptator(iDb, "dummyJobsTable") + print "current status: %s" % iTJA.getJobStatus(iJob) + iTJA.changeJobStatus(iJob, "running") + print "updated status: %s" % iTJA.getJobStatus(iJob) + sys.stdout.flush() + iDb.close() + + log = os.system("touch dummyFile1") + if log != 0: + raise RepetException("ERROR: job returned %i" % log) + else: + print "job finished successfully" + sys.stdout.flush() + shutil.move("dummyFile1", "/home/user/workspace/repet_pipe/commons/core/launcher/test") + + os.chdir("..") + shutil.rmtree(newDir) + + iDb = DbFactory.createInstance() + iTJA = TableJobAdaptator(iDb, "dummyJobsTable") + print "current status: %s" % iTJA.getJobStatus(iJob) + iTJA.changeJobStatus(iJob, "finished") + print "updated status: %s" % iTJA.getJobStatus(iJob) + sys.stdout.flush() + iDb.close() + + endTime = time.time() + print 'endTime=%f' % endTime + print 'executionTime=%f' % (endTime - beginTime) + print os.uname() + sys.stdout.flush() + +except IOError, e : + print e + iJob = Job(jobname = "job1", groupid = "groupid", launcherFile = "ClusterLauncher", node = os.getenv("HOSTNAME")) + iDb = DbFactory.createInstance() + iTJA = TableJobAdaptator(iDb, "dummyJobsTable") + print "current status: %s" % iTJA.getJobStatus(iJob) + iTJA.changeJobStatus(iJob, "error") + print "updated status: %s" % iTJA.getJobStatus(iJob) + sys.stdout.flush() + iDb.close() + sys.exit(1) + +except Exception, e : + print "tmpDir is : /home/user/workspace/repet_pipe/commons/core/launcher/test/dummyScratch" + print "cDir is : /home/user/workspace/repet_pipe/commons/core/launcher/test/" + print e + 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): + os.chdir("..") + shutil.move(newDir, "/home/user/workspace/repet_pipe/commons/core/launcher/test//%s" % newDir) + iJob = Job(jobname = "job1", groupid = "groupid", launcherFile = "ClusterLauncher", node = os.getenv("HOSTNAME")) + iDb = DbFactory.createInstance() + iTJA = TableJobAdaptator(iDb, "dummyJobsTable") + print "current status: %s" % iTJA.getJobStatus(iJob) + iTJA.changeJobStatus(iJob, "error") + print "updated status: %s" % iTJA.getJobStatus(iJob) + sys.stdout.flush() + iDb.close() + sys.exit(1)