def _update_diskusage(dmfilestat): logger.debug("Function: %s()" % sys._getframe().f_code.co_name) if dmfilestat.dmfileset.type == dmactions_types.SIG: exp = dmfilestat.result.experiment used = getdiskusage(exp.expDir) exp.diskusage = int(used) if used != None else 0 exp.save() else: result = dmfilestat.result used = getdiskusage(result.get_report_dir()) result.diskusage = int(used) if used != None else 0 result.save()
def setRunDiskspace(experimentpk): '''Sets diskusage field in Experiment record with data returned from du command''' logger = logging.getLogger(__name__) try: from iondb.rundb import models from django.core.exceptions import ObjectDoesNotExist # Get Experiment record exp = models.Experiment.objects.get(pk=experimentpk) except ObjectDoesNotExist: pass except: raise else: # Get filesystem location of given Experiment record directory = exp.expDir used = getdiskusage(directory) logger.info("%d" % used) # Update database entry for the given Experiment record try: used = used if used != None else "0" exp.diskusage = int(used) exp.save() except: # field does not exist, cannot update pass
def setResultDiskspace(resultpk): '''Sets diskusage field in Results record with data returned from du command''' logger = logging.getLogger(__name__) try: from iondb.rundb import models from django.core.exceptions import ObjectDoesNotExist # Get Results record result = models.Results.objects.get(pk=resultpk) except ObjectDoesNotExist: logger.error("Object does not exist error") pass except: raise else: # Get filesystem location of given Results record directory = result.get_report_dir() used = getdiskusage(directory) logger.debug("%d" % used) # Update database entry for the given Experiment record try: used = used if used != None else "0" result.diskusage = int(used) result.save() except: # field does not exist, cannot update pass
def main(delete=False): # DBase objects of sigproc datasets that are deleted. dir_list = models.DMFileStat.objects.filter( action_state__in=['DD'], dmfileset__type='Signal Processing Input').values_list( 'result_id__experiment_id__expDir', flat=True) print("Number of sigproc datasets, deleted: %d" % (len(dir_list))) total_disk_space_mb = 0 exclude_list = [] for target_dir in dir_list: try: if not (target_dir in exclude_list) and os.path.isdir(target_dir): # if ("Corvette" in target_dir) and not (target_dir in exclude_list) and # os.path.isdir(target_dir): exclude_list.append(target_dir) sys.stdout.write("%s " % target_dir) sys.stdout.write("exists ") size_mb = getdiskusage(target_dir) sys.stdout.write("Size: %d MB " % (size_mb)) total_disk_space_mb += size_mb if delete: if os.path.isdir(os.path.join(target_dir, 'thumbnail')): # Recursively remove thumbnail directory shutil.rmtree(os.path.join(target_dir, 'thumbnail')) sys.stdout.write("thumbnail deleted ") # Here determine if any other files can be deleted # If onboard_results exists, leave it alone. if os.path.isdir( os.path.join(target_dir, 'onboard_results')): # Do nothing pass else: # Delete everything else if not os.path.isdir( os.path.join(target_dir, 'sigproc_results')): shutil.rmtree(target_dir) sys.stdout.write("rawdata dir deleted\n") continue # Here remove empty rawdata directory if len(os.listdir(target_dir)) == 0: shutil.rmtree(target_dir) sys.stdout.write("rawdata dir deleted ") sys.stdout.write("\n") except: traceback.print_exc() else: pass print("Total disk usage (MB): %d" % (total_disk_space_mb))
def main(delete=False): # DBase objects of sigproc datasets that are deleted. dir_list = models.DMFileStat.objects.filter(action_state__in=['DD'], dmfileset__type='Signal Processing Input').values_list( 'result_id__experiment_id__expDir', flat=True) print ("Number of sigproc datasets, deleted: %d" % (len(dir_list))) total_disk_space_mb = 0 exclude_list = [] for target_dir in dir_list: try: if not (target_dir in exclude_list) and os.path.isdir(target_dir): # if ("Corvette" in target_dir) and not (target_dir in exclude_list) and # os.path.isdir(target_dir): exclude_list.append(target_dir) sys.stdout.write("%s " % target_dir) sys.stdout.write("exists ") size_mb = getdiskusage(target_dir) sys.stdout.write("Size: %d MB " % (size_mb)) total_disk_space_mb += size_mb if delete: if os.path.isdir(os.path.join(target_dir, 'thumbnail')): # Recursively remove thumbnail directory shutil.rmtree(os.path.join(target_dir, 'thumbnail')) sys.stdout.write("thumbnail deleted ") # Here determine if any other files can be deleted # If onboard_results exists, leave it alone. if os.path.isdir(os.path.join(target_dir, 'onboard_results')): # Do nothing pass else: # Delete everything else if not os.path.isdir(os.path.join(target_dir, 'sigproc_results')): shutil.rmtree(target_dir) sys.stdout.write("rawdata dir deleted\n") continue # Here remove empty rawdata directory if len(os.listdir(target_dir)) == 0: shutil.rmtree(target_dir) sys.stdout.write("rawdata dir deleted ") sys.stdout.write("\n") except: traceback.print_exc() else: pass print ("Total disk usage (MB): %d" % (total_disk_space_mb))