private async Task ShouldExecute(CloudOdsApiOperationContext context) { var token = await GetAccessTokenCredentialsAsync(); var site = await GetApiWebsiteAsync(context.TargetEnvironment); var client = new WebSiteManagementClient(token) { SubscriptionId = DefaultAzureActiveDirectoryClientInfo.SubscriptionId }; var settings = await client.Sites.ListSiteAppSettingsAsync(DefaultTestCloudOdsInstance.SystemName, site.Name); settings.Properties[CloudOdsApiWebsiteSettings.BearerTokenTimeoutSettingName] = "20"; settings.Properties[CloudOdsApiWebsiteSettings.LogLevelSettingName] = LogLevel.Warn.DisplayName; await client.Sites.UpdateSiteAppSettingsAsync(DefaultTestCloudOdsInstance.SystemName, site.Name, settings); var getAzureCloudOdsHostedInstanceQuery = new GetAzureCloudOdsHostedInstanceQuery(DefaultAzureActiveDirectoryClientInfo, DefaultTokenCache); var getWebsiteQuery = new GetAzureCloudOdsHostedComponentsQuery(DefaultAzureActiveDirectoryClientInfo, DefaultTokenCache, getAzureCloudOdsHostedInstanceQuery); var query = new GetAzureCloudOdsApiWebsiteSettingsQuery(DefaultAzureActiveDirectoryClientInfo, getWebsiteQuery, DefaultTokenCache, getAzureCloudOdsHostedInstanceQuery); var result = await query.Execute(context); result.BearerTokenTimeoutInMinutes.ShouldBe(20); result.LogLevel.ShouldBe(LogLevel.Warn); }
public async Task <ProductionApiProvisioningWarnings> Execute(CloudOdsInstance cloudOdsInstance) { var result = new ProductionApiProvisioningWarnings { ResolutionUrl = "https://portal.azure.com" }; var warnings = new List <string>(); using (var conn = _rawSqlConnectionService.GetDatabaseConnectionFromConfigFile(_cloudOdsDatabaseNameProvider.GetDatabaseName(CloudOdsDatabases.ProductionOds))) { var sqlPerformanceLevel = _azureDatabaseManagementService.GetDatabasePerformanceLevel(conn, CloudOdsDatabaseNames.ProductionOds); //we have to be careful here not to output a warning in case the user is not running against an Azure Sql instance, hence the validity check if (sqlPerformanceLevel.IsValid() && sqlPerformanceLevel < _expectedDatabasePerformanceLevel) { warnings.Add($"Azure Sql performance tier '{_expectedDatabasePerformanceLevel.ServiceObjective}' or above is recommended"); } } var cloudOdsApiOperationContext = new CloudOdsApiOperationContext(cloudOdsInstance, CloudOdsEnvironment.Production); var serverPerformanceLevel = await _getAzureCloudOdsWebsitePerformanceLevelQuery.Execute(cloudOdsApiOperationContext); if (serverPerformanceLevel != null && serverPerformanceLevel < _expectedWebsitePerformanceLevel) { warnings.Add($"Azure Website performance tier '{_expectedWebsitePerformanceLevel.ServiceObjective}' or above is recommended"); } result.Warnings = warnings; return(result); }
public async Task UpdateSettings(string instanceName, CloudOdsApiWebsiteSettings newSettings) { var instance = await GetCloudOdsInstance(instanceName); var context = new CloudOdsApiOperationContext(instance); await _updateCloudOdsApiWebsiteSettingsCommand.Execute(context, newSettings); }
public async Task <CloudOdsApiWebsiteSettings> GetSettings(string instanceName) { var instance = await GetCloudOdsInstance(instanceName); var context = new CloudOdsApiOperationContext(instance); return(await _getCloudOdsApiWebsiteSettingsQuery.Execute(context)); }
public async Task Execute(CloudOdsApiOperationContext context, CloudOdsApiWebsiteSettings newSettings) { var website = (await _getAzureCloudOdsHostedComponentsQuery.Execute(context)).Single(); var azureSettings = await _getAzureCloudOdsComponentApiWebsiteSettingsQuery.ExecuteRaw(context); foreach (var setting in newSettings.AsDictionary()) { azureSettings.Properties[setting.Key] = setting.Value; } var instance = await _getCloudOdsHostedInstanceQuery.Execute(context.Instance); await _armClient.SaveWebsiteSettingsAsync(_azureActiveDirectoryClientInfo.SubscriptionId, instance?.SystemName, website.SystemName, azureSettings); }
public async Task<StringDictionary> ExecuteRaw(CloudOdsApiOperationContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); if (context.TargetEnvironment == null) throw new InvalidOperationException("You must provide a TargetEnvironment for this operation"); var website = Enumerable.Single<CloudOdsWebsite>((await _getAzureCloudOdsHostedComponentsQuery.Execute(context))); var instance = await _getCloudOdsHostedInstanceQuery.Execute(context.Instance); var settings = await _armClient.GetWebsiteSettingsAsync(_azureActiveDirectoryClientInfo.SubscriptionId, instance?.SystemName, website.SystemName); return settings; }
public async Task<CloudOdsApiWebsiteSettings> Execute(CloudOdsApiOperationContext context) { var settings = await ExecuteRaw(context); return new CloudOdsApiWebsiteSettings(settings.Properties); }
public Task <CloudOdsApiWebsiteSettings> Execute(CloudOdsApiOperationContext context) { throw new System.NotImplementedException(); }