public override void Configure(IFunctionsHostBuilder builder)
        {
            var keyVaultName  = Environment.GetEnvironmentVariable("KeyVaultName");
            var configService = new ConfigService(keyVaultName);

            configService.LoadConfigurationAsync().Wait();

            var tableStorageAccount = CloudStorageAccount.Parse(configService.TableStorageAccountConnectionString);
            var tableClient         = tableStorageAccount.CreateCloudTableClient();

            var mediaServiceInstanceHealthTable = tableClient.GetTableReference(configService.MediaServiceInstanceHealthTableName);

            mediaServiceInstanceHealthTable.CreateIfNotExists();
            var mediaServiceInstanceHealthTableStorageService = new TableStorageService(mediaServiceInstanceHealthTable);

            var jobOutputStatusTable = tableClient.GetTableReference(configService.JobOutputStatusTableName);

            jobOutputStatusTable.CreateIfNotExists();
            var jobOutputStatusTableStorageService = new TableStorageService(jobOutputStatusTable);

            var mediaServiceCallHistoryTable = tableClient.GetTableReference(configService.MediaServiceCallHistoryTableName);

            mediaServiceCallHistoryTable.CreateIfNotExists();
            var mediaServiceCallHistoryTableStorageService = new TableStorageService(mediaServiceCallHistoryTable);

            var provisioningRequestQueue = new QueueClient(configService.StorageAccountConnectionString, configService.ProvisioningRequestQueueName);

            provisioningRequestQueue.CreateIfNotExists();

            var jobVerificationRequestQueue = new QueueClient(configService.StorageAccountConnectionString, configService.JobVerificationRequestQueueName);

            jobVerificationRequestQueue.CreateIfNotExists();

            var jobOutputStatusStorageService            = new JobOutputStatusStorageService(jobOutputStatusTableStorageService);
            var mediaServiceCallHistoryStorageService    = new MediaServiceCallHistoryStorageService(mediaServiceCallHistoryTableStorageService);
            var mediaServiceInstanceHealthStorageService = new MediaServiceInstanceHealthStorageService(mediaServiceInstanceHealthTableStorageService);
            var mediaServiceInstanceHealthService        = new MediaServiceInstanceHealthService(mediaServiceInstanceHealthStorageService, jobOutputStatusStorageService, mediaServiceCallHistoryStorageService, configService);
            var provisioningRequestStorageService        = new ProvisioningRequestStorageService(provisioningRequestQueue);
            var jobVerificationRequestStorageService     = new JobVerificationRequestStorageService(jobVerificationRequestQueue);

            var jobVerificationService = new JobVerificationService(
                mediaServiceInstanceHealthService,
                jobOutputStatusStorageService,
                provisioningRequestStorageService,
                jobVerificationRequestStorageService,
                new MediaServiceInstanceFactory(mediaServiceCallHistoryStorageService, configService),
                configService);

            builder.Services.AddSingleton <IJobVerificationService>(jobVerificationService);
        }
Ejemplo n.º 2
0
        public async Task SubmitTestRequests()
        {
            var jobOutputStatusStorageService            = new JobOutputStatusStorageService(jobOutputStatusTableStorageService);
            var mediaServiceInstanceHealthStorageService = new MediaServiceInstanceHealthStorageService(mediaServiceInstanceHealthTableStorageService);
            var mediaServiceInstanceHealthService        = new MediaServiceInstanceHealthService(mediaServiceInstanceHealthStorageService, jobOutputStatusStorageService, mediaServiceCallHistoryStorageService, configService);
            var mediaServiceInstanceFactory = new MediaServiceInstanceFactory(mediaServiceCallHistoryStorageService, configService);

            foreach (var config in configService.MediaServiceInstanceConfiguration)
            {
                var client = mediaServiceInstanceFactory.GetMediaServiceInstance(config.Value.AccountName, Mock.Of <ILogger>());
                client.LongRunningOperationRetryTimeout = 2;

                await MediaServicesHelper.EnsureTransformExists(
                    client,
                    config.Value.ResourceGroup,
                    config.Value.AccountName,
                    transformName,
                    new BuiltInStandardEncoderPreset(EncoderNamedPreset.AdaptiveStreaming)).ConfigureAwait(false);

                await mediaServiceInstanceHealthService.CreateOrUpdateAsync(new MediaServiceInstanceHealthModel
                {
                    MediaServiceAccountName = config.Value.AccountName,
                    HealthState             = InstanceHealthState.Healthy,
                    LastUpdated             = DateTime.UtcNow,
                    IsEnabled = true
                },
                                                                            Mock.Of <ILogger>()).ConfigureAwait(false);

                await MediaServicesHelper.EnsureContentKeyPolicyExists(
                    client,
                    config.Value.ResourceGroup,
                    config.Value.AccountName,
                    configService.ContentKeyPolicyName,
                    configService.GetClearKeyStreamingKey(),
                    configService.TokenIssuer,
                    configService.TokenAudience).ConfigureAwait(false);
            }

            var target     = new JobRequestStorageService(jobRequestQueue);
            var uniqueness = Guid.NewGuid().ToString().Substring(0, 13);

            for (var i = 0; i < 10; i++)
            {
                Assert.IsNotNull(await target.CreateAsync(GenerateJobRequestModel(i, uniqueness), Mock.Of <ILogger>()).ConfigureAwait(false));
            }
        }