From 9f5ff50a40f78ecdf25ec6bcd4e5490152db81d6 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Fri, 13 May 2016 07:56:43 +0000 Subject: [PATCH] Changed the way tsmgr is called --- python/trisurf/trisurf.py | 41 ++++++++++++++++++++++++++++++++--------- 1 files changed, 32 insertions(+), 9 deletions(-) diff --git a/python/trisurf/trisurf.py b/python/trisurf/trisurf.py index b1f99b6..9018555 100644 --- a/python/trisurf/trisurf.py +++ b/python/trisurf/trisurf.py @@ -142,7 +142,9 @@ '''Method makeifnotexist() creates directory if it does not exist.''' if(self.exists()==0): self.make() - return + return True + else: + return False def remove(self): '''Method remove() removes directory recursively. WARNING! No questions asked.''' @@ -246,13 +248,13 @@ ''' Class Runner consists of a single running or terminated instance of the trisurf. It manages starting, stopping, verifying the running process and printing the reports of the configured instances. ''' - def __init__(self, subdir='run0', tape='', snapshot='', runArgs=[]): + def __init__(self, subdir='run0', tape=None, snapshot=None, runArgs=[]): self.subdir=subdir self.runArgs=runArgs self.fromSnapshot=False - if(tape!=''): + if(tape!=None): self.initFromTape(tape) - if(snapshot!=''): + if(snapshot!=None): self.initFromSnapshot(snapshot) return @@ -260,6 +262,7 @@ def initFromTape(self, tape): self.tape=Tape() self.tape.readTape(tape) + self.tapeFile=tape def initFromSnapshot(self, snapshotfile): try: @@ -274,10 +277,10 @@ version=root.find('trisurfversion') self.tape=Tape() self.tape.setTape(tapetxt.text) - + def getPID(self): self.Dir=Directory(maindir=self.maindir,simdir=self.subdir) - self.Dir.makeifnotexist() + #self.Dir.makeifnotexist() try: fp = open(os.path.join(self.Dir.fullpath(),'.lock')) except IOError as e: @@ -292,8 +295,8 @@ return TS_NOLOCK if(psutil.pid_exists(int(pid))): proc= psutil.Process(int(pid)) - if proc.name=="trisurf": - if proc.status=="stopped": + if proc.name()=="trisurf": + if proc.status()=="stopped": return TS_STOPPED else: return TS_RUNNING @@ -305,7 +308,27 @@ def start(self): if(self.getStatus()==0): self.Dir=Directory(maindir=self.maindir,simdir=self.subdir) - self.Dir.makeifnotexist() +#Symlinks tape file to the directory or create tape file from snapshot in the direcory... + if(self.Dir.makeifnotexist()): + if(self.fromSnapshot==False): + try: + os.symlink(os.path.abspath(self.tapeFile), self.Dir.fullpath()+"/tape") + except: + print("Error while symlinking "+os.path.abspath(self.tapeFile)+" to "+self.Dir.fullpath()+"/tape") + exit(1) + else: + try: + with open (os.path.join(self.Dir.fullpath(),"tape"), "w") as myfile: + myfile.write("#This is automatically generated tape file from snapshot\n") + myfile.write(str(self.tape)) + except: + print("Error -- cannot make tapefile "+ os.path.join(self.Dir.fullpath(),"tape")+" from the snapshot in the running directory") + exit(1) + try: + os.symlink(os.path.abspath(self.snapshotFile), os.path.join(self.Dir.fullpath(),self.snapshotFile)) + except: + print("Error while symlinking "+os.path.abspath(self.snapshotFile)+" to "+os.path.join(self.Dir.fullpath(),self.snapshotFile)) + cwd=Directory(maindir=os.getcwd()) self.Dir.goto() print("Starting trisurf-ng executable at "+self.Dir.fullpath()+"\n") -- Gitblit v1.9.3