def getfirstnotpreserved(dmfilestats, action, threshdate): '''QuerySet of DMFileStat objects. Returns first instance of an object with preserve_data set to False and passes the action_validation test''' logger.debug("Function: %s()" % sys._getframe().f_code.co_name, extra=logid) logger.debug("Looking at %d dmfilestat objects" % dmfilestats.count(), extra=logid) for archiveme in dmfilestats: if not archiveme.getpreserved(): try: dmactions.action_validation(archiveme, action) return archiveme except(DMExceptions.FilesInUse, DMExceptions.FilesMarkedKeep): logger.debug("%s Failed action_validation. Try next fileset" % archiveme.result.resultsName, extra=logid) except DMExceptions.BaseInputLinked: # want to allow Basecalling Input delete if all results are expired related_objs = DMFileStat.objects.filter( result__experiment=archiveme.result.experiment, dmfileset__type=dmactions_types.BASE) if related_objs.count() == related_objs.filter(created__lt=threshdate).count(): archiveme.allow_delete = True return archiveme else: logger.debug("%s Failed action_validation. Try next fileset" % archiveme.result.resultsName, extra=logid) except: logger.error(traceback.format_exc(), extra=logid) else: logger.debug("Skipped a preserved fileset: %s" % archiveme.result.resultsName, extra=logid) logger.info("%d filestat objects are preserved." % dmfilestats.count(), extra=logid) raise DMExceptions.NoDMFileStat("NONE FOUND")
def getfirstmanualaction(): manual_selects = DMFileStat.objects.filter( action_state__in=['SA', 'SE', 'SD']).order_by('created') for item in manual_selects: try: dmactions.action_validation(item, item.dmfileset.auto_action) return item except (DMExceptions.FilesInUse, DMExceptions.FilesMarkedKeep): logger.debug("%s Failed action_validation. Try next fileset" % item.result.resultsName, extra=logid) except DMExceptions.BaseInputLinked: # want to allow Basecalling Input delete if all results are expired related_objs = DMFileStat.objects.filter( result__experiment=item.result.experiment, dmfileset__type=dmactions_types.BASE) if related_objs.count() == related_objs.filter( created__lt=threshdate).count(): item.allow_delete = True return item else: logger.debug( "%s Failed action_validation. Try next fileset" % item.result.resultsName, extra=logid) except: logger.error(traceback.format_exc(), extra=logid) raise DMExceptions.NoDMFileStat("NONE FOUND")
def getfirstnotpreserved(dmfilestats, action): '''QuerySet of DMFileStat objects. Returns first instance of an object with preserve_data set to False and passes the action_validation test''' logger.debug("Function: %s()" % sys._getframe().f_code.co_name) logger.debug("Looking at %d dmfilestat objects" % dmfilestats.count()) for archiveme in dmfilestats: if not archiveme.getpreserved(): try: dmactions.action_validation(archiveme,action) return archiveme except: logger.debug("%s Failed action_validation. Try next fileset" % archiveme.result.resultsName) else: logger.debug("Skipped a preserved fileset: %s" % archiveme.result.resultsName) logger.info("%d filestat objects are preserved." % dmfilestats.count()) raise DMExceptions.NoDMFileStat("NONE FOUND")
def getfirstmanualaction(): manual_selects = DMFileStat.objects.filter(action_state__in=['SA', 'SE', 'SD']).order_by('created') for item in manual_selects: try: dmactions.action_validation(item, item.dmfileset.auto_action) return item except(DMExceptions.FilesInUse, DMExceptions.FilesMarkedKeep): logger.debug("%s Failed action_validation. Try next fileset" % item.result.resultsName, extra = logid) except DMExceptions.BaseInputLinked: # want to allow Basecalling Input delete if all results are expired related_objs = DMFileStat.objects.filter(result__experiment=item.result.experiment, dmfileset__type=dmactions_types.BASE) if related_objs.count() == related_objs.filter(created__lt=threshdate).count(): item.allow_delete = True return item else: logger.debug("%s Failed action_validation. Try next fileset" % item.result.resultsName, extra = logid) except: logger.error(traceback.format_exc(), extra = logid) raise DMExceptions.NoDMFileStat("NONE FOUND")
def getfirstnotpreserved(dmfilestats, action): '''QuerySet of DMFileStat objects. Returns first instance of an object with preserve_data set to False and passes the action_validation test''' logger.debug("Function: %s()" % sys._getframe().f_code.co_name) logger.debug("Looking at %d dmfilestat objects" % dmfilestats.count()) for archiveme in dmfilestats: if not archiveme.getpreserved(): try: dmactions.action_validation(archiveme, action) return archiveme except (DMExceptions.FilesInUse, DMExceptions.FilesMarkedKeep, DMExceptions.BaseInputLinked): logger.debug( "%s Failed action_validation. Try next fileset" % archiveme.result.resultsName) except: logger.error(traceback.format_exc()) else: logger.debug("Skipped a preserved fileset: %s" % archiveme.result.resultsName) logger.info("%d filestat objects are preserved." % dmfilestats.count()) raise DMExceptions.NoDMFileStat("NONE FOUND")