def sanitizeReportList(self, reportType): if reportType == liblog.RAW_REPORT: pattern = 'logdump_*_list' else: pattern = 'logreport_*_list' files = gfile.ListDir(liblog.get_report_dir(self.entConfig)) files = fnmatch.filter(files, pattern) if not files: return if reportType == liblog.RAW_REPORT: pattern = 'logdump_(.*)_list' else: pattern = 'logreport_(.*)_list' regex = re.compile(pattern) for file in files: m = regex.match(os.path.basename(file)) collection = m.group(1) reports = self.getLogReports(collection, reportType) for i in range(len(reports)): if reports[i].completeState == PENDING: reports[i].completeState = FAILURE if reports[i].completeState == COMPLETE_REGENERATE: reports[i].isFinal = string.split(reports[i].isFinal, '|')[0] reports[i].creationDate = string.split(reports[i].creationDate, '|')[0] reports[i].completeState = COMPLETE if reports[i].completeState != FAILURE: self.reportCount[reportType] += 1 self.setLogReports(reportType, collection, reports)
def __init__(self, cfg): self.cfg = cfg # configurator object self.entConfig = cfg.globalParams # locks for updating the report lists self.logreplock = threading.RLock() self.logdir = self.cfg.getGlobalParam('LOGDIR') liblog.MakeDir(liblog.get_click_dir(self.entConfig)) liblog.MakeDir(liblog.get_collect_dir(self.entConfig)) liblog.MakeDir(liblog.get_apache_dir(self.entConfig)) liblog.MakeDir(liblog.get_partition_dir(self.entConfig)) liblog.MakeGoogleDir(self.entConfig, liblog.get_report_dir(self.entConfig)) collection_dir_map_file = liblog.get_directory_map_file(self.entConfig) if not os.path.exists(collection_dir_map_file): open(collection_dir_map_file, 'w').close() # a trick to touch a file. self.reportCount = { liblog.RAW_REPORT: 0, liblog.SUMMARY_REPORT: 0, } self.sanitizeReportList(liblog.RAW_REPORT) self.sanitizeReportList(liblog.SUMMARY_REPORT) self.joblock = threading.Lock() self.runningJobs = {}