예제 #1
0
파일: monitor_still.py 프로젝트: nkern/capo
 s = dbi.Session()
 totalobs = s.query(Observation).count()
 stdscr.addstr(curline,0,"Number of observations currently in the database: {totalobs}".format(totalobs=totalobs))
 curline += 1
 OBSs = s.query(Observation).filter(Observation.status!='NEW').filter(Observation.status!='COMPLETE').all()
 obsnums = [OBS.obsnum for OBS in OBSs]
 stdscr.addstr(curline,0," "*50)
 stdscr.addstr(curline,0,"Number of observations currently being processed {num}".format(num=len(obsnums)))
 curline += 1
 statusscr.erase()
 statusscr.addstr(0,0,"  ----  Still Idle  ----   ")
 for j,obsnum in enumerate(obsnums):
     try:
         host,path,filename= dbi.get_input_file(obsnum)
         status = dbi.get_obs_status(obsnum)
         still_host = dbi.get_obs_still_host(obsnum)
     except:
         host,path,filename = 'host','/path/to/','zen.2345672.23245.uv'
         status = 'WTF'
     col = int(j/statusscr.getmaxyx()[0])
     #print col*colwidth
     if j==0 or col==0:
         row = j
     else:
         row = j%statheight
     statusscr.addstr(row,col*colwidth,"{filename} {status} {still_host}".format(col=col,filename=os.path.basename(filename),status=status,still_host=still_host))
 s.close()
 statusscr.refresh()
 c = stdscr.getch()
 if c==ord('q'):
     break