private static async Task VerifyBlobStorageContent(string someJsonContent)
        {
            CloudBlobContainer applicationsContainer =
                _blobClient.GetContainerReference(BlobStorageDeploymentRepository.ApplicationsRootFolderName);
            CloudBlobDirectory appDirectory = applicationsContainer.GetDirectoryReference(TestAppBlobRelPath);

            Assert.Equal(1, (await appDirectory.ListBlobsAsync()).Count());
            Assert.Equal(someJsonContent,
                         await appDirectory.GetBlockBlobReference(TestAppFileName).DownloadTextAsync());
        }
Beispiel #2
0
        public static async Task DeleteAsync(this CloudBlobDirectory dir)
        {
            IEnumerable <IListBlobItem> blobs = await dir.ListBlobsAsync(useFlatBlobListing : true);

            var tasks = new List <Task>();

            foreach (IListBlobItem blobItem in blobs)
            {
                CloudBlockBlob blob = (CloudBlockBlob)blobItem;
                tasks.Add(blob.DeleteAsync());
            }
            await Task.WhenAll(tasks);
        }
Beispiel #3
0
        public async Task <ClusterDeploymentStatus> FetchClusterDeploymentStatus(string clusterId, int ttlSeconds)
        {
            ClusterDeploymentStatus clusterDeploymentStatus = new ClusterDeploymentStatus();;
            CloudBlobDirectory      instancesBlobDir        = _blobContainer.GetDirectoryReference(GetClusterStatusRelativePath(clusterId));

            if (!await instancesBlobDir.ExistsAsync())
            {
                return(clusterDeploymentStatus);
            }
            IEnumerable <IListBlobItem> instancesBlobList = await instancesBlobDir.ListBlobsAsync();

            foreach (var blob in instancesBlobList)
            {
                CloudBlockBlob instanceBlob = blob as CloudBlockBlob;
                if (instanceBlob == null)
                {
                    Trace.TraceWarning($"Unexpected blob {blob.Uri} in cluster status directory");
                    continue;
                }
                double secondsSinceModified = DateTimeOffset.UtcNow.Subtract(instanceBlob.Properties.LastModified.Value).TotalSeconds;
                if (secondsSinceModified > ttlSeconds)
                {
                    continue;
                }

                try
                {
                    InstanceDeploymentStatus instanceDeploymentStatus =
                        await FetchInstanceDeploymentStatus(instanceBlob);

                    string instanceId = instanceBlob.Name;
                    clusterDeploymentStatus.SetInstanceDeploymentStatus(instanceId, instanceDeploymentStatus);
                }
                catch (Exception e)
                {
                    Trace.TraceError($"Could not read instance deployment status {instanceBlob.Uri}, Exception: {e}");
                }
            }
            return(clusterDeploymentStatus);
        }
Beispiel #4
0
        public override async Task <IEnumerable <StorageListItem> > List(CancellationToken cancellationToken)
        {
            var files = await _directory.ListBlobsAsync(cancellationToken);

            return(files.Select(GetStorageListItem).AsEnumerable());
        }
Beispiel #5
0
 public static async Task <bool> ExistsAsync(this CloudBlobDirectory dir)
 {
     return((await dir.ListBlobsAsync()).Any());
 }
 public async Task <IEnumerable <IListBlobItem> > ListBlobsAsync(CancellationToken cancellationToken)
 {
     return(await _blobDirectory.ListBlobsAsync(cancellationToken));
 }