def OkToShareSpace(desiredSharedSpaceMB): """ Make sure a user really has the space they claim they want to share. """ dataDir = settings.getCustomersFilesDir() dataDriveFreeSpace, dataDriveTotalSpace = GetDriveSpace(dataDir) if dataDriveFreeSpace is None: return False currentlySharedSpace = GetDirectorySize(dataDir) if (currentlySharedSpace + dataDriveFreeSpace/(1024*1024)) < desiredSharedSpaceMB: return False else: return True
def main(): """ This method is for tests. Need to move all things here to unit tests. TODO. """ dataDir = settings.getCustomersFilesDir() tempDir = settings.TempDir() dataDriveFreeSpace = 0 dataDriveTotalSpace = 0 tempDriveFreeSpace = 0 tempDriveTotalSpace = 0 dataDriveFreeSpace, dataDriveTotalSpace = GetDriveSpace(dataDir) tempDriveFreeSpace, tempDriveTotalSpace = GetDriveSpace(tempDir) print "data dir =", dataDir print "tep dir =", tempDir print "data dir: " + str(dataDriveFreeSpace/(1024*1024)) +"MB free/" + str(dataDriveTotalSpace/(1024*1024)) +"MB total" print "temp dir: " + str(tempDriveFreeSpace/(1024*1024)) +"MB free/" + str(tempDriveTotalSpace/(1024*1024)) +"MB total" print time.time() print "our temp files: " + str(GetOurTempFileSizeTotal(tempDir)/(1024*1024)) + "MB" ourFileMasks = ['*-Data', '*-Parity', '*dhn*', '*.controloutbox', 'newblock-*', '*.backup'] for mask in ourFileMasks: print time.time() print mask + "=" + str(SumFileSizes(glob.glob(os.path.join(tempDir, mask)))) print time.time() GetDirectorySize(dataDir) ds = diskspace.DiskSpace() print ds.getValueBest(dataDriveFreeSpace) print "at OkToShareSpace ..." print "ok to share 100MB - should be true" print OkToShareSpace(100) print "ok to share 12345678MB - should be false" print OkToShareSpace(12345678)