def updateInstancePages(self, toupdate, outputDirectory=""): j = 0 for i in toupdate: j+=1 print j, filesize = os.path.getsize(i) dontskip = True if i not in self.filesizes: self.filesizes[i]=filesize else: if self.filesizes[i]==filesize: dontskip=False if dontskip: # print j pnopickle = i.replace(".pickle", "") try: # print i data = InstanceData(pnopickle, "None", i) if data.status()=="complete": self.finished.add(i) page = InstancePage(data, i, outputDirectory, self.instanceTemplate) if page.patient_id not in self.instancePagesByPatient: self.instancePagesByPatient[page.patient_id] = {} self.instancePagesByPatient[page.patient_id][page.name] = page self.patients.add(page.patient_id) self.printFile(page.generateHTML(), page.full_filename) except: print "possible pickle error:", i, self.printFile(self.PatientPage(self.instancePagesByPatient), os.path.join(outputDirectory, "index.html")) for patient in self.patients: # print outputDirectory # print os.path.join(outputDirectory, patient+".html") # print patient self.printFile(self.MainPage(self.instancePagesByPatient[patient].values()), os.path.join(outputDirectory, "patients/"+patient+".html"))
def printInstanceDataToCSV(self, pickleDirectory, filenamebase): perf_csvfile = open("performance_"+filenamebase+".csv", 'wb') perf_datawriter = csv.writer(perf_csvfile) com_csvfile = open("commands_"+filenamebase+".csv", 'wb') com_datawriter = csv.writer(com_csvfile) pickleFiles=[] for p in os.listdir(pickleDirectory): if ".pickle" in p: pickleFiles.append(p) first=True for p in pickleFiles: i = InstanceData(p.strip(".pickle"), "None", p) lines= i.performance_to_table(first) for line in lines: perf_datawriter.writerow(line) lines= i.commands_to_table(first) for line in lines: com_datawriter.writerow(line) first=False perf_csvfile.close() com_csvfile.close()
def run(self): self.instanceData=InstanceData.InstanceData(self.name, self.script_file, self.history_file) self.shutdownData=InstanceData.InstanceData(self.name, self.shutdown_file, self.history_file) # run commands task1 = monitorPerformance(self.instanceData, period=self.period) task2 = runCommands(self.instanceData, self.shutdownData) task1.daemon=True task2.daemon=True print "starting tasks" task1.start() task2.start() print "waiting for join" task1.join() task2.join() print "joined" print self.instanceData.summary() print "status:", self.instanceData.status() self.instanceData.writeSummaryToFile(self.performanceDataFile)
def getInstanceData(self, pickleDirectory): result={} for p in os.listdir(pickleDirectory): if ".pickle" in p: pnopickle = p.replace(".pickle", "") result[pnopickle] = {'data':InstanceData(pnopickle, "None", os.path.join(pickleDirectory,p))} result[pnopickle]["data"].update_status() self.instanceDataDict=result # print result.keys() return self.instanceDataDict.keys()
def printInstanceDataToCSV(self, pickleDirectory, filenamebase): perf_csvfile = open("performance_" + filenamebase + ".csv", 'wb') perf_datawriter = csv.writer(perf_csvfile) com_csvfile = open("commands_" + filenamebase + ".csv", 'wb') com_datawriter = csv.writer(com_csvfile) pickleFiles = [] for p in os.listdir(pickleDirectory): if ".pickle" in p: pickleFiles.append(p) first = True for p in pickleFiles: i = InstanceData(p.strip(".pickle"), "None", p) lines = i.performance_to_table(first) for line in lines: perf_datawriter.writerow(line) lines = i.commands_to_table(first) for line in lines: com_datawriter.writerow(line) first = False perf_csvfile.close() com_csvfile.close()
def loadInstanceData(self, instance_name): return InstanceData(instance_name, "None", self.instanceInfo[instance_name])