public CloudFileDataAdaptor(TestAccount testAccount, string shareName, SourceOrDest sourceOrDest)
 {
     this.testAccount      = testAccount;
     this.fileHelper       = new CloudFileHelper(testAccount.Account);
     this.shareName        = shareName;
     this.defaultShareName = shareName;
     this.tempFolder       = Guid.NewGuid().ToString();
     this.SourceOrDest     = sourceOrDest;
 }
Beispiel #2
0
        public static void MyClassInitialize(TestContext testContext)
        {
            TestBase.TestClassInitialize(testContext);

            BlobHelper = new CloudBlobHelper(StorageAccount);
            FileHelper = new CloudFileHelper(StorageAccount);

            //set the ConcurrentTaskCount field
            PowerShellAgent.ConcurrentTaskCount = Environment.ProcessorCount * 8;
        }
Beispiel #3
0
        protected override void GenerateDataImp(DMLibDataInfo dataInfo)
        {
            fileHelper.CreateShare(this.shareName);

            using (TemporaryTestFolder localTemp = new TemporaryTestFolder(this.tempFolder))
            {
                CloudFileDirectory rootCloudFileDir = this.fileHelper.GetDirReference(this.shareName, dataInfo.RootPath);
                this.GenerateDir(dataInfo.RootNode, rootCloudFileDir, this.tempFolder);

                if (dataInfo.IsFileShareSnapshot)
                {
                    CloudFileShare baseShare = this.fileHelper.FileClient.GetShareReference(this.shareName);
                    this.snapshotTime = baseShare.SnapshotAsync().Result.SnapshotTime;
                    CloudFileHelper.CleanupFileDirectory(baseShare.GetRootDirectoryReference());
                }
            }
        }
        private void PrepareCloudFileWithDifferentSizeRange(CloudFile cloudFile)
        {
            List <int> ranges = new List <int>();
            List <int> gaps   = new List <int>();

            // Add one 4MB - 16MB range
            ranges.Add(random.Next(4 * 1024 * 1024, 16 * 1024 * 1024));

            // Add one 1B range
            ranges.Add(1);

            int remainingPageNumber = random.Next(10, 20);

            // Add ten - twenty 1B - 4MB range
            for (int i = 0; i < remainingPageNumber; ++i)
            {
                ranges.Add(random.Next(1, 4 * 1024 * 1024));
            }

            // Add one 4M - 8M gap
            gaps.Add(random.Next(4 * 1024 * 1024, 8 * 1024 * 1024));

            // Add 512B - 2048B gaps
            for (int i = 1; i < ranges.Count - 1; ++i)
            {
                gaps.Add(random.Next(1, 512 * 4));
            }

            if (DMLibTestContext.DestType == DMLibDataType.PageBlob)
            {
                int totalSize = ranges.Sum() + gaps.Sum();
                int remainder = totalSize % 512;

                if (remainder != 0)
                {
                    ranges[ranges.Count - 1] += 512 - remainder;
                }
            }

            ranges.Shuffle();
            gaps.Shuffle();

            CloudFileHelper.GenerateCloudFileWithRangedData(cloudFile, ranges, gaps);
        }
Beispiel #5
0
        public static void MyClassInitialize(TestContext testContext)
        {
            TestBase.TestClassInitialize(testContext);

            //delete perf files
            Helper.DeletePattern("testfile_*");

            BlobHelper = new CloudBlobHelper(StorageAccount);
            FileHelper = new CloudFileHelper(StorageAccount);

            FileName   = Test.Data.Get("FileName");
            FolderName = Test.Data.Get("FolderName");

            // import module
            PowerShellAgent.ImportModules(Constants.ServiceModulePaths);

            //set the ConcurrentTaskCount field
            PowerShellAgent.ConcurrentTaskCount = Environment.ProcessorCount * 8;

            Trace.WriteLine("ClassInit");
        }
Beispiel #6
0
        public static void SetCalculatedFileMD5(DMLibDataInfo dataInfo, DataAdaptor <DMLibDataInfo> destAdaptor, bool disableMD5Check = false)
        {
            foreach (FileNode fileNode in dataInfo.EnumerateFileNodes())
            {
                if (DMLibTestBase.IsCloudBlob(DMLibTestContext.DestType))
                {
                    CloudBlobDataAdaptor cloudBlobDataAdaptor = destAdaptor as CloudBlobDataAdaptor;
                    CloudBlob            cloudBlob            = cloudBlobDataAdaptor.GetCloudBlobReference(fileNode);

                    fileNode.MD5 = CloudBlobHelper.CalculateMD5ByDownloading(cloudBlob, disableMD5Check);
                }
                else if (DMLibTestContext.DestType == DMLibDataType.CloudFile)
                {
                    CloudFileDataAdaptor cloudFileDataAdaptor = destAdaptor as CloudFileDataAdaptor;
                    CloudFile            cloudFile            = cloudFileDataAdaptor.GetCloudFileReference(fileNode);

                    fileNode.MD5 = CloudFileHelper.CalculateMD5ByDownloading(cloudFile, disableMD5Check);
                }

                // No need to set md5 for local destination
            }
        }