示例#1
0
        protected void ValidateSufficientDiskSpaceToCopyTarget(string target, string destination)
        {
            long availableDiskSpace = DiskSpaceHelper.GetAvailableFreeSpace(destination);
            long requiredDiskSpace  = GetRequiredDiskSpace(target);

            if (requiredDiskSpace > availableDiskSpace)
            {
                throw new InsufficientDiskSpaceException(String.Format("Failed to copy target '{0}' to local temp directory: Not enough free disk space available! ({1} available, {2} required)",
                                                                       target, availableDiskSpace.ToPrettySize(), requiredDiskSpace.ToPrettySize()));
            }
        }
示例#2
0
        /// <summary>
        /// Validates that sufficient disk space exists to unpack a target archive. Throws exception if space is insufficient.
        /// </summary>
        protected void ValidateSufficientDiskSpaceToUnpack(string archive, string destinationDirectory)
        {
            long availableBytes = DiskSpaceHelper.GetAvailableFreeSpace(destinationDirectory);
            long requiredBytes  = GetRequiredUnpackedSize(archive, destinationDirectory);

            if (availableBytes < requiredBytes)
            {
                throw new InsufficientDiskSpaceException(String.Format("Not enough free disk space available to unpack '{0}'! ({1} available, {2} required)",
                                                                       Path.GetFileName(archive), availableBytes.ToPrettySize(), requiredBytes.ToPrettySize()));
            }
        }
示例#3
0
        private static void ValidateSufficientDiskSpaceToCopyTargetLocally(LogsharkRequest request, ISet<Regex> whitelistPatterns)
        {
            long availableDiskSpace = DiskSpaceHelper.GetAvailableFreeSpace(GetUnpackTempDirectory());

            long requiredDiskSpace = 0;
            if (request.Target.IsDirectory)
            {
                foreach (string requiredFile in GetRequiredFilesInDirectory(request, whitelistPatterns))
                {
                    requiredDiskSpace += DiskSpaceHelper.GetSize(requiredFile);
                }
            }
            else if (request.Target.IsFile)
            {
                requiredDiskSpace = DiskSpaceHelper.GetSize(request.Target);
            }

            if (requiredDiskSpace > availableDiskSpace)
            {
                throw new InsufficientDiskSpaceException(String.Format("Failed to copy target '{0}' to local temp directory: Not enough free disk space available! ({1} available, {2} required)",
                                                                        request.Target, availableDiskSpace.ToPrettySize(), requiredDiskSpace.ToPrettySize()));
            }
        }