def compdate(x, y): COMPARE_COL = self.__REPLICA_CREATION_DATE_COL if epochTime(x[COMPARE_COL]) > epochTime(y[COMPARE_COL]): return 1 elif epochTime(x[COMPARE_COL]) < epochTime(y[COMPARE_COL]): return -1 else: return 0
def __filterDatasetsToDelete(self, site, spacetoclean, datasetsinfo): ''' It takes datasets from datasetsinfo and append it to deletion queue (datasetstodelete), while targetspace is not reached/ or the end of datasetsinfo is reached ''' datasetstodelete = [] spacefordataset = [] dates = [] naccs = [] cputimes = [] nBlocks = [] maxAccsCont = [] totalAccsCont = [] cleanedspace = 0 cleaned = False for data in datasetsinfo: cur = data[self.__DATASET_SIZE_COL] if not isinstance(cur, int): self.__logger.info( 'Dataset: %s has invalid DATASETSIZE attribute: %s' % (data[self.__DATASET_NAME_COL], str(cur))) self.__logger.info( 'Invoking alternative method to calculate dataset size...') cur = self.__getreplicasize(data[self.__DATASET_NAME_COL]) if not isinstance(cur, int): continue self.__logger.info('The size of dataset is: %d Bytes' % cur) cleanedspace += cur datasetstodelete += [data[self.__DATASET_NAME_COL]] dt = data[self.__REPLICA_CREATION_DATE_COL] dates += [epochTime(dt)] spacefordataset += [cur] if len(data) > self.__DATASET_SIZE_COL: naccs += [data[self.__NACC_COL]] cputimes += [data[self.__CPU_COL]] nBlocks += [data[self.__NBLOCKS_COL]] maxAccsCont += [data[self.__NMAX_COL]] totalAccsCont += [data[self.__NTOTAL_COL]] else: naccs += [None] cputimes += [None] nBlocks += [None] maxAccsCont += [None] totalAccsCont += [None] if cleanedspace >= spacetoclean: cleaned = True break return datasetstodelete, spacefordataset, dates, cleaned, cleanedspace, cputimes, naccs, nBlocks, maxAccsCont, totalAccsCont
def __filterDatasetsToDelete(self, site, spacetoclean, datasetsinfo): ''' It takes datasets from datasetsinfo and append it to deletion queue (datasetstodelete), while targetspace is not reached/ or the end of datasetsinfo is reached ''' datasetstodelete = [] spacefordataset = [] dates = [] naccs = [] cputimes = [] nBlocks = [] maxAccsCont = [] totalAccsCont = [] cleanedspace=0 cleaned=False for data in datasetsinfo: cur = data[self.__DATASET_SIZE_COL] if not isinstance(cur, int): self.__logger.info('Dataset: %s has invalid DATASETSIZE attribute: %s'%(data[self.__DATASET_NAME_COL],str(cur))) self.__logger.info('Invoking alternative method to calculate dataset size...') cur=self.__getreplicasize(data[self.__DATASET_NAME_COL]) if not isinstance(cur, int): continue self.__logger.info('The size of dataset is: %d Bytes'%cur) cleanedspace += cur datasetstodelete += [data[self.__DATASET_NAME_COL]] dt = data[self.__REPLICA_CREATION_DATE_COL] dates += [epochTime(dt)] spacefordataset += [cur] if len(data) > self.__DATASET_SIZE_COL: naccs += [data[self.__NACC_COL]] cputimes += [data[self.__CPU_COL]] nBlocks += [data[self.__NBLOCKS_COL]] maxAccsCont += [data[self.__NMAX_COL]] totalAccsCont += [data[self.__NTOTAL_COL]] else: naccs += [None] cputimes += [None] nBlocks += [None] maxAccsCont += [None] totalAccsCont += [None] if cleanedspace >= spacetoclean: cleaned=True break return datasetstodelete, spacefordataset, dates, cleaned, cleanedspace, cputimes, naccs, nBlocks, maxAccsCont, totalAccsCont