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()); }
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); }
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); }
public override async Task <IEnumerable <StorageListItem> > List(CancellationToken cancellationToken) { var files = await _directory.ListBlobsAsync(cancellationToken); return(files.Select(GetStorageListItem).AsEnumerable()); }
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)); }