def check_finished(jobFile, tmpdir): """returns successFlag, doneFlag, doneList.""" doneFlag = ryw_upload.check_robot_finished(jobFile) if not doneFlag: return (True, False, None) try: doneList = os.listdir(tmpdir) except: ryw.give_bad_news("ReadIncomingCDStack.check_finished: listdir failed: " + tmpdir, logging.critical) return (False, True, None) logging.debug("ReadIncomingCDStack.check_finished: listdir contents: " + repr(doneList)) return (True, True, doneList)
def wait_for_robot(finishedStuff): # # monitor robot job status for all the discs to finish. # totalToWaitFor = len(finishedStuff) reallyFinished = 0 reallyFinishedList = [] ryw.give_news2('waiting for robot...', logging.info) ryw.give_news2('<BR>', logging.info) while True: for job in finishedStuff: tmpImgDir,jrq = job done = ryw_upload.check_robot_finished(jrq) if done and (not job in reallyFinishedList): reallyFinished += 1 reallyFinishedList.append(job) ryw.give_news('robot finished: ' + str(reallyFinished) + ' out of ' + str(totalToWaitFor) + ' disc(s).', logging.info) ryw.give_news(' tmp files: ' + tmpImgDir + ' ' + jrq, logging.info) ryw.give_news(' ', logging.info) if reallyFinished >= totalToWaitFor: break ryw.give_news2('*', logging.info) time.sleep(5) # # wait 60 seconds before removing temp data. # delay = 60 ryw.give_news(' ', logging.info) ryw.give_news('will delete all temporary data in ' + str(delay) + ' seconds. press esc to stop it...', logging.info) ryw.give_news(' ', logging.info) while delay > 0: ryw.give_news2(str(delay) + '...', logging.info) time.sleep(5) delay -= 5 ryw.give_news(' ', logging.info) ryw.give_news('deleting all temporary data...', logging.info) # # remove all temporary data... # for job in reallyFinishedList: tmpImgDir,jrq = job ryw_upload.cleanup_incoming(tmpImgDir, jrq) ryw.give_news('all temporary data removed.', logging.info)