public static async Task <string> Run([ActivityTrigger] DurableActivityContextBase myBlob, TraceWriter log)
        {
            //log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
            log.Info("in final step......................");
            string storagePath = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
            CloudStorageAccount storageAccount       = CloudStorageAccount.Parse(storagePath);
            CloudBlobClient     blobClient           = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer  destinationContainer = blobClient.GetContainerReference(Environment.GetEnvironmentVariable("AcceptDestinationPath"));
            //await cloudBlobContainer.CreateAsync();
            await destinationContainer.CreateIfNotExistsAsync();



            // Set the permissions so the blobs are public.
            BlobContainerPermissions permissions = new BlobContainerPermissions
            {
                PublicAccess = BlobContainerPublicAccessType.Blob
            };

            await destinationContainer.SetPermissionsAsync(permissions);

            RequestApplication requestMetadata = myBlob.GetInput <RequestApplication>();

            var sourceBlob = blobClient.GetBlobReferenceFromServerAsync(new Uri(requestMetadata.LocationUrl)).Result;
            // var destinationContainer = blobClient.GetContainerReference(destinationContainer);
            var destinationBlob = destinationContainer.GetBlobReference(sourceBlob.Name);
            await destinationBlob.StartCopyAsync(sourceBlob.Uri);

            Task.Delay(TimeSpan.FromSeconds(15)).Wait();
            await sourceBlob.DeleteAsync();

            return("Copied");
        }
        public static async Task <TokenEntity> RefreshGoogleTokenActivity(
            [ActivityTrigger] DurableActivityContextBase context,
            [Table(Constants.TOKEN_TABLE, partitionKey: Constants.TOKEN_PARTITIONKEY, rowKey: Constants.GOOGLETOKEN_ROWKEY)] TokenEntity inputToken,
            ILogger log)
        {
            if (inputToken?.RefreshToken == null)
            {
                throw new ArgumentNullException($"{nameof(RefreshGoogleTokenActivity)} {nameof(inputToken.RefreshToken)}");
            }

            TokenEntity outputToken = null;

            if (inputToken.NeedsRefresh)
            {
                var tokenCreated = DateTime.UtcNow;

                var token = await AccessTokenFromRefreshToken(inputToken.RefreshToken, log);

                outputToken              = JsonConvert.DeserializeObject <TokenEntity>(token);
                outputToken.ETag         = inputToken.ETag;
                outputToken.PartitionKey = inputToken.PartitionKey;
                outputToken.RowKey       = inputToken.RowKey;
                outputToken.RefreshToken = inputToken.RefreshToken; // Google RefreshToken can be re-used
                outputToken.Created      = tokenCreated;
                outputToken.Expires      = tokenCreated.AddSeconds(outputToken.ExpiresIn);
            }

            return(outputToken);
        }
Example #3
0
        public async Task <bool> CheckTestStatus([ActivityTrigger] DurableActivityContextBase context, ILogger logger)
        {
            var regionSettings = context.GetInput <RegionSettings>();

            logger.LogInformation("Checking test status for container {name}", regionSettings.ContainerName);
            return(await _gatlingService.CheckTestStatus(regionSettings.Url, regionSettings.TestId));
        }
Example #4
0
        public static Task ActivityVerifyingInput([ActivityTrigger] DurableActivityContextBase context)
        {
            var input = context.GetInput <TestFunctionInput>();

            Assert.AreEqual("activity", input.Token);
            return(Task.CompletedTask);
        }
Example #5
0
        public async Task StartTest([ActivityTrigger] DurableActivityContextBase context, ILogger logger)
        {
            var regionSettings = context.GetInput <RegionSettings>();

            logger.LogInformation("Starting test");
            await _gatlingService.StartTest(regionSettings.Url, regionSettings.FileName, regionSettings.TestId);
        }
        public async Task <(string url, string name)> CreateAciInRegion([ActivityTrigger] DurableActivityContextBase context)
        {
            var region   = context.GetInput <string>();
            var regionId = Guid.NewGuid().ToString();

            return(await _containerInstanceService.CreateContainerGroup(
                       region, regionId));
        }
 public static async Task CheckConfigurationActivity(
     [ActivityTrigger] DurableActivityContextBase context,
     [Blob(Constants.BLOBPATHCONTAINER, FileAccess.ReadWrite)] CloudBlobContainer storageContainer,
     ILogger log
     )
 {
     await CheckStorageConfiguration(storageContainer, log);
 }
Example #8
0
        internal static async Task <int> GetCount([ActivityTrigger] DurableActivityContextBase context, string countFunctionName, Func <string, Task <int> > countFunction, ILogger log)
        {
            var runId = context.GetInput <string>();
            var count = await countFunction(runId);

            log.LogInformation($"{countFunctionName} - {count}");
            return(count);
        }
Example #9
0
        public async Task <string> GetResult([ActivityTrigger] DurableActivityContextBase context, ILogger logger)
        {
            var regionSettings = context.GetInput <RegionSettings>();

            logger.LogInformation("Getting test result for {name}", regionSettings.ContainerName);

            return(await _gatlingService.GetResult(regionSettings.Url,
                                                   regionSettings.TestId, regionSettings.ContainerName));
        }
Example #10
0
        public async Task <StatusHelper> LoadOrganizations([ActivityTrigger] DurableActivityContextBase context, ILogger log)
        {
            var runId  = context.GetInput <string>();
            var result = new StatusHelper {
                Name = FunctionNames.LoadOrganizations, Status = await WaterAllocationManager.LoadOrganizations(runId)
            };

            log.LogInformation(JsonConvert.SerializeObject(result));
            return(result);
        }
Example #11
0
        internal static async Task <StatusHelper> LoadBatch(DurableActivityContextBase context, string batchFunctionName, Func <string, int, int, Task <bool> > loadFunction, ILogger log)
        {
            var batchData = context.GetInput <BatchData>();
            var result    = new StatusHelper {
                Name = batchFunctionName, Status = await loadFunction(batchData.RunId, batchData.StartIndex, batchData.Count)
            };

            log.LogInformation($"{batchFunctionName} [{batchData.StartIndex}] - {JsonConvert.SerializeObject(result)}");
            return(result);
        }
 public static Task UpdateImageActivity(
     [ActivityTrigger] DurableActivityContextBase context,
     [SignalR(HubName = HUBNAME)] IAsyncCollector <SignalRMessage> signalRMessages)
 {
     return(signalRMessages.AddAsync(
                new SignalRMessage
     {
         Target = SIGNALRMESSAGEUPDATEIMAGE,
         Arguments = new[] { context.GetInput <string>() }
     }));
 }
        public static Task FailAtGivenCallNoActivity([ActivityTrigger] DurableActivityContextBase context)
        {
            var activitySetup = context.GetInput <RetryingActivitySetup>();

            activitySetup.Increment();

            if (activitySetup.ShouldSucceed())
            {
                return(Task.CompletedTask);
            }

            throw new Exception("Failing call no " + activitySetup.CallNo);
        }
Example #14
0
        public static Task <Response> Run2([ActivityTrigger] DurableActivityContextBase context)
        {
            var elapsed = DummyCPULoad();

            return(Task.FromResult(new Response()
            {
                Hosts = new Dictionary <string, int> {
                    { Environment.MachineName, Environment.ProcessorCount }
                },
                Volume = elapsed,
                Elapsed = elapsed,
            }));
        }
Example #15
0
        public async Task <string> GenerateMergedReport([ActivityTrigger] DurableActivityContextBase context, ILogger logger)
        {
            var regionSettings = context.GetInput <List <RegionSettings> >();

            logger.LogInformation("Generating merge report for {testId}",
                                  regionSettings.First().TestId);

            var gatlingUrl = regionSettings.First().Url;

            var mergeReportZip = $"{regionSettings.First().TestId}-merge.zip";
            await _gatlingService.MergeReports(gatlingUrl,
                                               regionSettings.Select(s => s.SimulationLogName),
                                               mergeReportZip);

            return(_fileService.GetFileUrl(FileService.TestResultsContainer, mergeReportZip));
        }
        public static async Task <string> RollImageActivity(
            [ActivityTrigger] DurableActivityContextBase context,
            [Table(Constants.TOKEN_TABLE, partitionKey: Constants.TOKEN_PARTITIONKEY, rowKey: Constants.MSATOKEN_ROWKEY)] TokenEntity msaToken,
            [Blob(Constants.BLOBPATHIMAGESPLAYED, FileAccess.ReadWrite)] CloudBlockBlob imagesPlayedStorageBlob,
            ILogger log)
        {
            var imagesPlayedStorage = await imagesPlayedStorageBlob.DownloadTextAsync();

            string updateImageMessage;

            (imagesPlayedStorage, updateImageMessage) = await ProcessNextImage(msaToken, imagesPlayedStorage);

            await imagesPlayedStorageBlob.UploadTextAsync(imagesPlayedStorage);

            return(updateImageMessage);
        }
        public static Task UpdateCalendarActivity(
            [ActivityTrigger] DurableActivityContextBase context,
            [Table(Constants.TOKEN_TABLE, partitionKey: Constants.TOKEN_PARTITIONKEY, rowKey: Constants.MSATOKEN_ROWKEY)] TokenEntity msaToken,
            [Table(Constants.TOKEN_TABLE, partitionKey: Constants.TOKEN_PARTITIONKEY, rowKey: Constants.GOOGLETOKEN_ROWKEY)] TokenEntity googleToken,
            [SignalR(HubName = HUBNAME)] IAsyncCollector <SignalRMessage> signalRMessages,
            ILogger logger)
        {
            var events = CalendarServer.GetCalendars(msaToken, googleToken, logger).GetAwaiter().GetResult();

            return(signalRMessages.AddAsync(
                       new SignalRMessage
            {
                Target = SIGNALRMESSAGEUPDATECALENDER,
                Arguments = new[] { events }
            }));
        }
        public static string SayHello([ActivityTrigger] DurableActivityContextBase context)
        {
            string name = context.GetInput <string>();

            return($"Hello {name}!");
        }
Example #19
0
 public async Task <int> GetCount([ActivityTrigger] DurableActivityContextBase context, ILogger log)
 {
     return(await Import.GetCount(context, CountFunctionName, WaterAllocationManager.GetWaterAllocationsCount, log));
 }
Example #20
0
 public async Task <StatusHelper> LoadBatch([ActivityTrigger] DurableActivityContextBase context, ILogger log)
 {
     return(await Import.LoadBatch(context, BatchFunctionName, WaterAllocationManager.LoadWaterAllocations, log));
 }
Example #21
0
        public static string Hello([ActivityTrigger] DurableActivityContextBase ctx)
        {
            string input = ctx.GetInput <string>();

            return($"Hello, {input}!");
        }
Example #22
0
 public static JToken GetInputAsJson(this DurableActivityContextBase ctx) => ctx.GetInput <JToken>();
 public static Task AnActivity([ActivityTrigger] DurableActivityContextBase context)
 {
     return(Task.CompletedTask);
 }
        public static string BookTraining([ActivityTrigger] DurableActivityContextBase context)
        {
            string name = context.GetInput <string>();

            return($"trained");
        }
        public static string RegisterDriver([ActivityTrigger] DurableActivityContextBase context)
        {
            string name = context.GetInput <string>();

            return($"Id001");
        }
        public static string BackgroundVerification([ActivityTrigger] DurableActivityContextBase context)
        {
            string name = context.GetInput <string>();

            return($"success");
        }
 public async Task DeleteAciInRegion([ActivityTrigger] DurableActivityContextBase context)
 {
     var containerName = context.GetInput <string>();
     await _containerInstanceService.DeleteContainerGroup(containerName);
 }