public CromwellOnAzureEnvironment(ILoggerFactory loggerFactory, IAzureStorage storage, ICromwellApiClient cromwellApiClient) { logger = loggerFactory.CreateLogger <AzureStorage>(); this.storage = storage; this.cromwellApiClient = cromwellApiClient; logger.LogInformation($"Cromwell URL: {cromwellApiClient.GetUrl()}"); }
public Lab(ILoggerFactory loggerFactory, string name, IAzureStorage storage, ICromwellApiClient cromwellApiClient) { logger = loggerFactory.CreateLogger <AzureStorage>(); Name = name; this.storage = storage; this.cromwellApiClient = cromwellApiClient; logger.LogInformation($"Cromwell URL: {cromwellApiClient.GetUrl()}"); }
private static async Task <(string newTriggerName, Workflow newTriggerContent)> ProcessAbortRequestAsync(Guid workflowId, ICromwellApiClient cromwellApiClient) { string newTriggerName = null; Workflow newTriggerContent = null; var loggerFactory = new Mock <ILoggerFactory>(); var azureStorage = new Mock <IAzureStorage>(); var repository = new Mock <IRepository <TesTask> >(); loggerFactory .Setup(f => f.CreateLogger(It.IsAny <string>())) .Returns(new Mock <ILogger>().Object); azureStorage .Setup(az => az.GetWorkflowsByStateAsync(WorkflowState.Abort)) .Returns(Task.FromResult(new[] { new TriggerFile { Uri = $"http://tempuri.org/workflows/abort/{workflowId}.json", ContainerName = "workflows", Name = $"abort/{workflowId}.json", LastModified = DateTimeOffset.UtcNow } }.AsEnumerable())); azureStorage .Setup(az => az.DownloadBlobTextAsync(It.IsAny <string>(), $"abort/{workflowId}.json")) .Returns(Task.FromResult(string.Empty)); azureStorage .Setup(az => az.UploadFileTextAsync(It.IsAny <string>(), "workflows", It.IsAny <string>())) .Callback((string content, string container, string blobName) => { newTriggerName = blobName; newTriggerContent = content is not null ? JsonConvert.DeserializeObject <Workflow>(content) : null; }); var cromwellOnAzureEnvironment = new CromwellOnAzureEnvironment(loggerFactory.Object, azureStorage.Object, cromwellApiClient, repository.Object, Enumerable.Repeat(azureStorage.Object, 1)); await cromwellOnAzureEnvironment.ProcessAndAbortWorkflowsAsync(); return(newTriggerName, newTriggerContent); }